From 7d4c7f9f287374bad40978abf78531ecc8eafb06 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Wed, 29 Aug 2007 09:17:15 +0000 Subject: [PATCH] we use only 2 endpoints git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14502 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/usb/arcotg_dcd.c | 12 +++++++++++- firmware/export/config-e200.h | 4 ++-- firmware/usbstack/drivers/device/usb_storage.c | 4 ++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/firmware/drivers/usb/arcotg_dcd.c b/firmware/drivers/usb/arcotg_dcd.c index c74dad1a62..d57850f067 100644 --- a/firmware/drivers/usb/arcotg_dcd.c +++ b/firmware/drivers/usb/arcotg_dcd.c @@ -219,6 +219,8 @@ void usb_arcotg_dcd_stop(void) void usb_arcotg_dcd_irq(void) { + int i; + if (dcd_controller.stopped == true) { return; } @@ -240,9 +242,16 @@ void usb_arcotg_dcd_irq(void) UDC_ENDPTSETUPSTAT = UDC_ENDPTSETUPSTAT; setup_received_int(&dcd_controller.local_setup_buff); } - +/* if (UDC_ENDPTCOMPLETE) { UDC_ENDPTCOMPLETE = UDC_ENDPTCOMPLETE; + }*/ + } + + for (i = 0; i < USB_MAX_ENDPOINTS; i++) { + if ((UDC_ENDPTCOMPLETE & (1 << i)) == 1) { + logf("COMPLETE on %d", i); + UDC_ENDPTCOMPLETE |= (1 << i); } } @@ -605,6 +614,7 @@ int usb_arcotg_dcd_enable(struct usb_ep* ep, #endif /* set address of used ep in desc */ + logf("ep address %x", desc->bEndpointAddress); desc->bEndpointAddress |= ep->ep_num; /* here initialize variable of ep */ diff --git a/firmware/export/config-e200.h b/firmware/export/config-e200.h index fdcfa840eb..745a26f293 100644 --- a/firmware/export/config-e200.h +++ b/firmware/export/config-e200.h @@ -152,10 +152,10 @@ /* USB On-the-go */ #define CONFIG_USBOTG USBOTG_ARC -/* enable these for the experimental usb stack +/* enable these for the experimental usb stack*/ #define HAVE_USBSTACK #define USBSTACK_CAPS CONTROLLER_DEVICE -*/ + /* Virtual LED (icon) */ #define CONFIG_LED LED_VIRTUAL diff --git a/firmware/usbstack/drivers/device/usb_storage.c b/firmware/usbstack/drivers/device/usb_storage.c index 30f376b1cc..4f820fbe90 100644 --- a/firmware/usbstack/drivers/device/usb_storage.c +++ b/firmware/usbstack/drivers/device/usb_storage.c @@ -77,7 +77,7 @@ static struct usb_interface_descriptor storage_interface_desc = { .bLength = USB_DT_INTERFACE_SIZE, .bDescriptorType = USB_DT_INTERFACE, .bInterfaceNumber = 0, - .bNumEndpoints = 3, + .bNumEndpoints = 2, .bInterfaceClass = USB_CLASS_MASS_STORAGE, .bInterfaceSubClass = SUBCL_SCSI, .bInterfaceProtocol = PROTO_BULK, @@ -293,7 +293,7 @@ static int config_buf(uint8_t *buf, uint8_t type, unsigned index) static int set_config(int config) { (void)config; - + /* enable endpoints */ logf("setup %s", dev.in->name); ops->enable(dev.in, (struct usb_endpoint_descriptor*)dev.descriptors[1]);