aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/usb-common.c
diff options
context:
space:
mode:
authorMichal Nazarewicz <mina86@mina86.com>2011-08-30 11:11:19 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-09-18 04:29:04 -0400
commite538dfdae85244fd2c4231725d82cc1f1bc4942c (patch)
treef8471dd9af305b95557d29a30f427c85418b1621 /drivers/usb/usb-common.c
parentc58a76cdd7ab5a945a44fd2d64f6faf40323f95b (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.c35
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
18const 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}
33EXPORT_SYMBOL_GPL(usb_speed_string);
34
35MODULE_LICENSE("GPL");