diff options
author | Michal Nazarewicz <mina86@mina86.com> | 2011-08-30 11:11:19 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-09-18 04:29:04 -0400 |
commit | e538dfdae85244fd2c4231725d82cc1f1bc4942c (patch) | |
tree | f8471dd9af305b95557d29a30f427c85418b1621 /drivers/usb/usb-common.c | |
parent | c58a76cdd7ab5a945a44fd2d64f6faf40323f95b (diff) |
usb: Provide usb_speed_string() function
In a few places in the kernel, the code prints
a human-readable USB device speed (eg. "high speed").
This involves a switch statement sometimes wrapped
around in ({ ... }) block leading to code repetition.
To mitigate this issue, this commit introduces
usb_speed_string() function, which returns
a human-readable name of provided speed.
It also changes a few places switch was used to use
this new function. This changes a bit the way the
speed is printed in few instances at the same time
standardising it.
Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/usb-common.c')
-rw-r--r-- | drivers/usb/usb-common.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/drivers/usb/usb-common.c b/drivers/usb/usb-common.c new file mode 100644 index 000000000000..d29503e954ab --- /dev/null +++ b/drivers/usb/usb-common.c | |||
@@ -0,0 +1,35 @@ | |||
1 | /* | ||
2 | * Provides code common for host and device side USB. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License as | ||
6 | * published by the Free Software Foundation, version 2. | ||
7 | * | ||
8 | * If either host side (ie. CONFIG_USB=y) or device side USB stack | ||
9 | * (ie. CONFIG_USB_GADGET=y) is compiled in the kernel, this module is | ||
10 | * compiled-in as well. Otherwise, if either of the two stacks is | ||
11 | * compiled as module, this file is compiled as module as well. | ||
12 | */ | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/module.h> | ||
16 | #include <linux/usb/ch9.h> | ||
17 | |||
18 | const char *usb_speed_string(enum usb_device_speed speed) | ||
19 | { | ||
20 | static const char *const names[] = { | ||
21 | [USB_SPEED_UNKNOWN] = "UNKNOWN", | ||
22 | [USB_SPEED_LOW] = "low-speed", | ||
23 | [USB_SPEED_FULL] = "full-speed", | ||
24 | [USB_SPEED_HIGH] = "high-speed", | ||
25 | [USB_SPEED_WIRELESS] = "wireless", | ||
26 | [USB_SPEED_SUPER] = "super-speed", | ||
27 | }; | ||
28 | |||
29 | if (speed < 0 || speed >= ARRAY_SIZE(names)) | ||
30 | speed = USB_SPEED_UNKNOWN; | ||
31 | return names[speed]; | ||
32 | } | ||
33 | EXPORT_SYMBOL_GPL(usb_speed_string); | ||
34 | |||
35 | MODULE_LICENSE("GPL"); | ||