USB: Add high-speed (480Mb/s) to all USB related outputs
authorStefan Roese <sr@denx.de>
Thu, 22 Jan 2009 09:11:21 +0000 (10:11 +0100)
committerRemy Bohmer <linux@bohmer.net>
Wed, 28 Jan 2009 18:57:31 +0000 (19:57 +0100)
With this patch the USB related connection speed output ("usb tree" command and
debug output) is now high-speed enabled.

This patch also fixes a compilation warning when debugging is enabled.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Remy Bohmer <linux@bohmer.net>
common/cmd_usb.c
common/usb.c

index c95f61b..a18e16e 100644 (file)
@@ -264,6 +264,16 @@ void usb_display_config(struct usb_device *dev)
        printf("\n");
 }
 
+static inline char *portspeed(int speed)
+{
+       if (speed == USB_SPEED_HIGH)
+               return "480 Mb/s";
+       else if (speed == USB_SPEED_LOW)
+               return "1.5 Mb/s";
+       else
+               return "12 Mb/s";
+}
+
 /* shows the device tree recursively */
 void usb_show_tree_graph(struct usb_device *dev, char *pre)
 {
@@ -310,7 +320,7 @@ void usb_show_tree_graph(struct usb_device *dev, char *pre)
        pre[index] = 0;
        printf(" %s (%s, %dmA)\n", usb_get_class_desc(
                                        dev->config.if_desc[0].bInterfaceClass),
-                                       dev->speed ? "1.5MBit/s" : "12MBit/s",
+                                       portspeed(dev->speed),
                                        dev->config.MaxPower * 2);
        if (strlen(dev->mf) || strlen(dev->prod) || strlen(dev->serial))
                printf(" %s  %s %s %s\n", pre, dev->mf, dev->prod, dev->serial);
index 3350127..5f46831 100644 (file)
@@ -681,7 +681,7 @@ int usb_string(struct usb_device *dev, int index, char *buf, size_t size)
                err = usb_string_sub(dev, 0, 0, tbuf);
                if (err < 0) {
                        USB_PRINTF("error getting string descriptor 0 " \
-                                  "(error=%x)\n", dev->status);
+                                  "(error=%lx)\n", dev->status);
                        return -1;
                } else if (tbuf[0] < 4) {
                        USB_PRINTF("string descriptor 0 too short\n");
@@ -1041,6 +1041,16 @@ struct usb_hub_device *usb_hub_allocate(void)
 
 #define MAX_TRIES 5
 
+static inline char *portspeed(int portstatus)
+{
+       if (portstatus & (1 << USB_PORT_FEAT_HIGHSPEED))
+               return "480 Mb/s";
+       else if (portstatus & (1 << USB_PORT_FEAT_LOWSPEED))
+               return "1.5 Mb/s";
+       else
+               return "12 Mb/s";
+}
+
 static int hub_port_reset(struct usb_device *dev, int port,
                        unsigned short *portstat)
 {
@@ -1064,8 +1074,7 @@ static int hub_port_reset(struct usb_device *dev, int port,
 
                USB_HUB_PRINTF("portstatus %x, change %x, %s\n",
                                portstatus, portchange,
-                               portstatus & (1 << USB_PORT_FEAT_LOWSPEED) ? \
-                                               "Low Speed" : "High Speed");
+                               portspeed(portstatus));
 
                USB_HUB_PRINTF("STAT_C_CONNECTION = %d STAT_CONNECTION = %d" \
                               "  USB_PORT_STAT_ENABLE %d\n",
@@ -1111,9 +1120,7 @@ void usb_hub_port_connect_change(struct usb_device *dev, int port)
        portstatus = le16_to_cpu(portsts.wPortStatus);
        portchange = le16_to_cpu(portsts.wPortChange);
        USB_HUB_PRINTF("portstatus %x, change %x, %s\n",
-                       portstatus, portchange,
-                       portstatus&(1 << USB_PORT_FEAT_LOWSPEED) ? \
-                                               "Low Speed" : "High Speed");
+                       portstatus, portchange, portspeed(portstatus));
 
        /* Clear the connection change status */
        usb_clear_port_feature(dev, port + 1, USB_PORT_FEAT_C_CONNECTION);