again a "funny" problem @ u/c/core.c: #{un,}define WTF and see
authorBernhard Urban <lewurm@gmx.net>
Tue, 22 Sep 2009 12:56:11 +0000 (14:56 +0200)
committerBernhard Urban <lewurm@gmx.net>
Tue, 22 Sep 2009 12:58:08 +0000 (14:58 +0200)
yourself

also look at "LOAD" messages and their values on gecko output

usb/core/core.c
usb/core/usb.c
usb/core/usb.h

index c3574283e0610562cfc13bf7b26d61aad61e8d0a..5a7c45ef9c5fc1f2e0416ccdfd9f68687cca0f6c 100644 (file)
@@ -108,20 +108,69 @@ struct usb_device *usb_add_device()
                return (void*) -1;
        }
 
-       /* set MaxPacketSize */
-
+       u8 buf[8];
+//#define WTF
+#ifdef WTF
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololol PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lolololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lolololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lollllool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+       printf("lololololool PADDING WTF :O lolololololo \n");
+#endif
        u8 address = usb_next_address();
        ret = usb_set_address(dev, address);
        dev->address = address;
        printf("set address to %d\n", dev->address);
 
+       /* get device descriptor&co */
        ret = usb_get_desc_dev(dev);
+       if(ret < 0)
+               return (void*) -1;
+
+       /* print device info */
+       lsusb(dev);
 
        /* select configuration */
        ret = usb_set_configuration(dev, dev->conf->bConfigurationValue);
        printf("=============\nusb_set_configuration(ret: %d) %d\n", ret, dev->conf->bConfigurationValue);
+       printf("=============\nusb_get_configuration: %d\n", usb_get_configuration(dev));
 
-       lsusb(dev);
+       memset(buf, 0, 8);
+       usb_control_msg(dev, 0x00, SET_INTERFACE, 0, dev->conf->intf->bInterfaceNumber, 8, buf, 0);
+       printf("=============\nusb_set_interface: %d\n", dev->conf->intf->bInterfaceNumber);
+       hexdump((void*)buf, 8);
+
+       memset(buf, 0, 8);
+       usb_control_msg(dev, 0x80, GET_INTERFACE, 0, 0, 8, buf, 0);
+       printf("=============\nusb_get_interface: %d\n", buf[0]);
+       hexdump((void*)buf, 8);
 
 #if 0
        /* add device to device list */
index 6a7562e60a90afdbe84b46ffc3331e59dfed2586..35460a5b0be76ec8ed5fdb865998ea1eb0b0bd60 100644 (file)
@@ -299,6 +299,14 @@ s8 usb_set_address(struct usb_device *dev, u8 address)
        return 0;
 }
 
+
+u8 usb_get_configuration(struct usb_device *dev)
+{
+       cleargbuf();
+       usb_control_msg(dev, 0x80, GET_CONFIGURATION, 0, 0, 8, gbuf, 0);
+       return gbuf[0];
+}
+
 s8 usb_set_configuration(struct usb_device *dev, u8 configuration)
 {
        cleargbuf();
index cf7dc315fbfdbf3eae9f6b829f89116e8cae2155..2e9c0a421f07789656ecf311fcd39f8154731ac3 100644 (file)
@@ -70,6 +70,7 @@ char *usb_get_string_simple(struct usb_device *dev, u8 index);
 s8 usb_get_string(struct usb_device *dev, u8 index, u8 langid);
 
 s8 usb_set_address(struct usb_device *dev, u8 address);
+u8 usb_get_configuration(struct usb_device *dev);
 s8 usb_set_configuration(struct usb_device *dev, u8 configuration);
 s8 usb_set_altinterface(struct usb_device *dev, u8 alternate);