usb: Add LED triggers for USB activity
With this patch, USB activity can be signaled by blinking a LED. There are two triggers, one for activity on USB host and one for USB gadget. Both triggers should work with all host/device controllers. Tested only with musb. Performace: I measured performance overheads on ARM Cortex-A8 (TI AM335x) running on 600 MHz. Duration of usb_led_activity(): - with no LED attached to the trigger: 2 ± 1 µs - with one GPIO LED attached to the trigger: 2 ± 1 µs or 8 ± 2 µs (two peaks in histogram) Duration of functions calling usb_led_activity() (with this patch applied and no LED attached to the trigger): - __usb_hcd_giveback_urb(): 10 - 25 µs - usb_gadget_giveback_request(): 2 - 6 µs Signed-off-by: Michal Sojka <sojka@merica.cz> Acked-by: Felipe Balbi <balbi@ti.com> Tested-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
aa923ef1aa
commit
0cfbd328d6
@@ -1862,6 +1862,18 @@ extern void usb_unregister_notify(struct notifier_block *nb);
|
||||
/* debugfs stuff */
|
||||
extern struct dentry *usb_debug_root;
|
||||
|
||||
/* LED triggers */
|
||||
enum usb_led_event {
|
||||
USB_LED_EVENT_HOST = 0,
|
||||
USB_LED_EVENT_GADGET = 1,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_USB_LED_TRIG
|
||||
extern void usb_led_activity(enum usb_led_event ev);
|
||||
#else
|
||||
static inline void usb_led_activity(enum usb_led_event ev) {}
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user