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.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.c | 16 |
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)); |