diff options
| author | Frank Gevaerts <frank@gevaerts.be> | 2008-03-03 12:51:32 +0000 |
|---|---|---|
| committer | Frank Gevaerts <frank@gevaerts.be> | 2008-03-03 12:51:32 +0000 |
| commit | c270b7a28983bd2b39c7449473a52725009c668c (patch) | |
| tree | 25df734c623c026d1d96d44909a26365abb6200e /firmware/usbstack/usb_core.c | |
| parent | a9afca99a8385d42612543b0bdb6ce3ba97ed4c3 (diff) | |
| download | rockbox-c270b7a28983bd2b39c7449473a52725009c668c.zip rockbox-c270b7a28983bd2b39c7449473a52725009c668c.tar.gz rockbox-c270b7a28983bd2b39c7449473a52725009c668c.tar.bz2 rockbox-c270b7a28983bd2b39c7449473a52725009c668c.tar.xz | |
only send a Charging Only interface if nothing else is sent
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16499 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/usbstack/usb_core.c')
| -rw-r--r-- | firmware/usbstack/usb_core.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c index eef963c..64690a1 100644 --- a/firmware/usbstack/usb_core.c +++ b/firmware/usbstack/usb_core.c @@ -631,14 +631,6 @@ static void usb_core_control_request_handler(struct usb_ctrlrequest* req) } size = sizeof(struct usb_config_descriptor); -#ifdef USB_CHARGING_ONLY - if(usb_core_charging_enabled){ - charging_interface_descriptor.bInterfaceNumber=interface_number; - interface_number++; - memcpy(&response_data[size],&charging_interface_descriptor,sizeof(struct usb_interface_descriptor)); - size += sizeof(struct usb_interface_descriptor); - } -#endif #ifdef USB_STORAGE if(usb_core_storage_enabled){ mass_storage_ep_in_descriptor.wMaxPacketSize=max_packet_size; @@ -682,6 +674,14 @@ static void usb_core_control_request_handler(struct usb_ctrlrequest* req) size += sizeof(struct usb_endpoint_descriptor); } #endif +#ifdef USB_CHARGING_ONLY + if(usb_core_charging_enabled && interface_number == 0){ + charging_interface_descriptor.bInterfaceNumber=interface_number; + interface_number++; + memcpy(&response_data[size],&charging_interface_descriptor,sizeof(struct usb_interface_descriptor)); + size += sizeof(struct usb_interface_descriptor); + } +#endif config_descriptor.bNumInterfaces=interface_number; config_descriptor.wTotalLength = size; memcpy(&response_data[0],&config_descriptor,sizeof(struct usb_config_descriptor)); |