-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Michal Sojka
authored and
Greg Kroah-Hartman
committed
Sep 25, 2014
1 parent
aa923ef
commit 0cfbd32
Showing
6 changed files
with
86 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* | ||
* LED Triggers for USB Activity | ||
* | ||
* Copyright 2014 Michal Sojka <sojka@merica.cz> | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
*/ | ||
|
||
#include <linux/module.h> | ||
#include <linux/kernel.h> | ||
#include <linux/init.h> | ||
#include <linux/leds.h> | ||
#include <linux/usb.h> | ||
|
||
#define BLINK_DELAY 30 | ||
|
||
static unsigned long usb_blink_delay = BLINK_DELAY; | ||
|
||
DEFINE_LED_TRIGGER(ledtrig_usb_gadget); | ||
DEFINE_LED_TRIGGER(ledtrig_usb_host); | ||
|
||
void usb_led_activity(enum usb_led_event ev) | ||
{ | ||
struct led_trigger *trig = NULL; | ||
|
||
switch (ev) { | ||
case USB_LED_EVENT_GADGET: | ||
trig = ledtrig_usb_gadget; | ||
break; | ||
case USB_LED_EVENT_HOST: | ||
trig = ledtrig_usb_host; | ||
break; | ||
} | ||
/* led_trigger_blink_oneshot() handles trig == NULL gracefully */ | ||
led_trigger_blink_oneshot(trig, &usb_blink_delay, &usb_blink_delay, 0); | ||
} | ||
EXPORT_SYMBOL_GPL(usb_led_activity); | ||
|
||
|
||
static int __init ledtrig_usb_init(void) | ||
{ | ||
led_trigger_register_simple("usb-gadget", &ledtrig_usb_gadget); | ||
led_trigger_register_simple("usb-host", &ledtrig_usb_host); | ||
return 0; | ||
} | ||
|
||
static void __exit ledtrig_usb_exit(void) | ||
{ | ||
led_trigger_unregister_simple(ledtrig_usb_gadget); | ||
led_trigger_unregister_simple(ledtrig_usb_host); | ||
} | ||
|
||
module_init(ledtrig_usb_init); | ||
module_exit(ledtrig_usb_exit); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters