aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core
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/core
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/core')
-rw-r--r--drivers/usb/core/hub.c27
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 */