cbp will be count up, but only with low speed devices (except my usb
[ppcskel.git] / usb / core / usb.c
index 072dff74137b35d61f41be8babe458e72b704f85..1665abf131ff4b1ba75ea1f28f4be57fa9cecc07 100644 (file)
@@ -135,6 +135,7 @@ u8 usb_reset(usb_device *dev)
  */
 u8 usb_control_msg(usb_device *dev, u8 requesttype, u8 request, u16 value, u16 index, u16 length,char *buf, u16 size, u16 timeout)
 {
+       //usb_control_msg(dev, 0x80, GET_DESCRIPTOR, 1, 0, 8, buf, 8, 0);
        usb_irp *irp = (usb_irp*)malloc(sizeof(usb_irp));
        irp->dev = dev;
        irp->endpoint = 0;
@@ -153,8 +154,8 @@ u8 usb_control_msg(usb_device *dev, u8 requesttype, u8 request, u16 value, u16 i
        buf[6]=(char)(length);
        buf[7]=(char)(length >> 8);
 #endif
-       //stupid hack?
 #if 0
+       //should be the right way around? :O
        buf[0]=(char)requesttype;
        buf[1]=(char)request;
        buf[2]=(char)(value);
@@ -162,8 +163,8 @@ u8 usb_control_msg(usb_device *dev, u8 requesttype, u8 request, u16 value, u16 i
        buf[4]=(char)(index);
        buf[5]=(char)(index >> 8);
        // lenght buf are the only where the order is inverted
-       buf[6]=(char)(length >> 8);
-       buf[7]=(char)(length);
+       buf[6]=(char)(length);
+       buf[7]=(char)(length >> 8);
 #endif
 
        irp->buffer = buf;