summaryrefslogtreecommitdiff
path: root/firmware/usbstack/usb_core.c
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2008-03-03 12:51:32 +0000
committerFrank Gevaerts <frank@gevaerts.be>2008-03-03 12:51:32 +0000
commitc270b7a28983bd2b39c7449473a52725009c668c (patch)
tree25df734c623c026d1d96d44909a26365abb6200e /firmware/usbstack/usb_core.c
parenta9afca99a8385d42612543b0bdb6ce3ba97ed4c3 (diff)
downloadrockbox-c270b7a28983bd2b39c7449473a52725009c668c.tar.gz
rockbox-c270b7a28983bd2b39c7449473a52725009c668c.zip
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.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c
index eef963cf8a..64690a1d32 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)
631 } 631 }
632 size = sizeof(struct usb_config_descriptor); 632 size = sizeof(struct usb_config_descriptor);
633 633
634#ifdef USB_CHARGING_ONLY
635 if(usb_core_charging_enabled){
636 charging_interface_descriptor.bInterfaceNumber=interface_number;
637 interface_number++;
638 memcpy(&response_data[size],&charging_interface_descriptor,sizeof(struct usb_interface_descriptor));
639 size += sizeof(struct usb_interface_descriptor);
640 }
641#endif
642#ifdef USB_STORAGE 634#ifdef USB_STORAGE
643 if(usb_core_storage_enabled){ 635 if(usb_core_storage_enabled){
644 mass_storage_ep_in_descriptor.wMaxPacketSize=max_packet_size; 636 mass_storage_ep_in_descriptor.wMaxPacketSize=max_packet_size;
@@ -682,6 +674,14 @@ static void usb_core_control_request_handler(struct usb_ctrlrequest* req)
682 size += sizeof(struct usb_endpoint_descriptor); 674 size += sizeof(struct usb_endpoint_descriptor);
683 } 675 }
684#endif 676#endif
677#ifdef USB_CHARGING_ONLY
678 if(usb_core_charging_enabled && interface_number == 0){
679 charging_interface_descriptor.bInterfaceNumber=interface_number;
680 interface_number++;
681 memcpy(&response_data[size],&charging_interface_descriptor,sizeof(struct usb_interface_descriptor));
682 size += sizeof(struct usb_interface_descriptor);
683 }
684#endif
685 config_descriptor.bNumInterfaces=interface_number; 685 config_descriptor.bNumInterfaces=interface_number;
686 config_descriptor.wTotalLength = size; 686 config_descriptor.wTotalLength = size;
687 memcpy(&response_data[0],&config_descriptor,sizeof(struct usb_config_descriptor)); 687 memcpy(&response_data[0],&config_descriptor,sizeof(struct usb_config_descriptor));