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/core | |
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/core')
-rw-r--r-- | drivers/usb/core/hub.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 338f91ff54c..3edc01bc41f 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
@@ -2793,7 +2793,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1, | |||
2793 | int i, j, retval; | 2793 | int i, j, retval; |
2794 | unsigned delay = HUB_SHORT_RESET_TIME; | 2794 | unsigned delay = HUB_SHORT_RESET_TIME; |
2795 | enum usb_device_speed oldspeed = udev->speed; | 2795 | enum usb_device_speed oldspeed = udev->speed; |
2796 | char *speed, *type; | 2796 | const char *speed; |
2797 | int devnum = udev->devnum; | 2797 | int devnum = udev->devnum; |
2798 | 2798 | ||
2799 | /* root hub ports have a slightly longer reset period | 2799 | /* root hub ports have a slightly longer reset period |
@@ -2853,25 +2853,16 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1, | |||
2853 | default: | 2853 | default: |
2854 | goto fail; | 2854 | goto fail; |
2855 | } | 2855 | } |
2856 | 2856 | ||
2857 | type = ""; | 2857 | if (udev->speed == USB_SPEED_WIRELESS) |
2858 | switch (udev->speed) { | 2858 | speed = "variable speed Wireless"; |
2859 | case USB_SPEED_LOW: speed = "low"; break; | 2859 | else |
2860 | case USB_SPEED_FULL: speed = "full"; break; | 2860 | speed = usb_speed_string(udev->speed); |
2861 | case USB_SPEED_HIGH: speed = "high"; break; | 2861 | |
2862 | case USB_SPEED_SUPER: | ||
2863 | speed = "super"; | ||
2864 | break; | ||
2865 | case USB_SPEED_WIRELESS: | ||
2866 | speed = "variable"; | ||
2867 | type = "Wireless "; | ||
2868 | break; | ||
2869 | default: speed = "?"; break; | ||
2870 | } | ||
2871 | if (udev->speed != USB_SPEED_SUPER) | 2862 | if (udev->speed != USB_SPEED_SUPER) |
2872 | dev_info(&udev->dev, | 2863 | dev_info(&udev->dev, |
2873 | "%s %s speed %sUSB device number %d using %s\n", | 2864 | "%s %s USB device number %d using %s\n", |
2874 | (udev->config) ? "reset" : "new", speed, type, | 2865 | (udev->config) ? "reset" : "new", speed, |
2875 | devnum, udev->bus->controller->driver->name); | 2866 | devnum, udev->bus->controller->driver->name); |
2876 | 2867 | ||
2877 | /* Set up TT records, if needed */ | 2868 | /* Set up TT records, if needed */ |