From c270b7a28983bd2b39c7449473a52725009c668c Mon Sep 17 00:00:00 2001 From: Frank Gevaerts Date: Mon, 3 Mar 2008 12:51:32 +0000 Subject: 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 --- firmware/usbstack/usb_core.c | 16 ++++++++-------- 1 file 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) } 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; @@ -681,6 +673,14 @@ static void usb_core_control_request_handler(struct usb_ctrlrequest* req) memcpy(&response_data[size],&benchmark_ep_out_descriptor,sizeof(struct usb_endpoint_descriptor)); 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; -- cgit v1.2.3