|
@@ -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);
|
|
err = usb_string_sub(dev, 0, 0, tbuf);
|
|
if (err < 0) {
|
|
if (err < 0) {
|
|
USB_PRINTF("error getting string descriptor 0 " \
|
|
USB_PRINTF("error getting string descriptor 0 " \
|
|
- "(error=%x)\n", dev->status);
|
|
|
|
|
|
+ "(error=%lx)\n", dev->status);
|
|
return -1;
|
|
return -1;
|
|
} else if (tbuf[0] < 4) {
|
|
} else if (tbuf[0] < 4) {
|
|
USB_PRINTF("string descriptor 0 too short\n");
|
|
USB_PRINTF("string descriptor 0 too short\n");
|
|
@@ -1041,6 +1041,16 @@ struct usb_hub_device *usb_hub_allocate(void)
|
|
|
|
|
|
#define MAX_TRIES 5
|
|
#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,
|
|
static int hub_port_reset(struct usb_device *dev, int port,
|
|
unsigned short *portstat)
|
|
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",
|
|
USB_HUB_PRINTF("portstatus %x, change %x, %s\n",
|
|
portstatus, portchange,
|
|
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_HUB_PRINTF("STAT_C_CONNECTION = %d STAT_CONNECTION = %d" \
|
|
" USB_PORT_STAT_ENABLE %d\n",
|
|
" 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);
|
|
portstatus = le16_to_cpu(portsts.wPortStatus);
|
|
portchange = le16_to_cpu(portsts.wPortChange);
|
|
portchange = le16_to_cpu(portsts.wPortChange);
|
|
USB_HUB_PRINTF("portstatus %x, change %x, %s\n",
|
|
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 */
|
|
/* Clear the connection change status */
|
|
usb_clear_port_feature(dev, port + 1, USB_PORT_FEAT_C_CONNECTION);
|
|
usb_clear_port_feature(dev, port + 1, USB_PORT_FEAT_C_CONNECTION);
|