summaryrefslogtreecommitdiff
path: root/firmware/usbstack/usb_storage.c
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2009-05-16 15:30:09 +0000
committerFrank Gevaerts <frank@gevaerts.be>2009-05-16 15:30:09 +0000
commit69a4117c1d15d91836de91abe5f8f93b868ec808 (patch)
treea3d47f51a0998506ef7b0f5332ddecae3e2106d2 /firmware/usbstack/usb_storage.c
parente435e4d976757f8436484a5b4d158ab7545fcdb6 (diff)
downloadrockbox-69a4117c1d15d91836de91abe5f8f93b868ec808.tar.gz
rockbox-69a4117c1d15d91836de91abe5f8f93b868ec808.zip
Add working USB HID driver, by Tomer Shalev (part of his GSoC work).
This needs support for usb interrupt transfers, so there are some changes in various USB drivers as well (only usb-drv-arc supports it at this point, others won't have working HID yet). HID is disabled for now, as the apps/ part is not included yet. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20962 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/usbstack/usb_storage.c')
-rw-r--r--firmware/usbstack/usb_storage.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c
index 464283551a..73176ee93e 100644
--- a/firmware/usbstack/usb_storage.c
+++ b/firmware/usbstack/usb_storage.c
@@ -349,12 +349,13 @@ void usb_storage_init(void)
349 349
350int usb_storage_request_endpoints(struct usb_class_driver *drv) 350int usb_storage_request_endpoints(struct usb_class_driver *drv)
351{ 351{
352 ep_in = usb_core_request_endpoint(USB_DIR_IN, drv); 352 ep_in = usb_core_request_endpoint(USB_ENDPOINT_XFER_BULK, USB_DIR_IN, drv);
353 353
354 if(ep_in<0) 354 if(ep_in<0)
355 return -1; 355 return -1;
356 356
357 ep_out = usb_core_request_endpoint(USB_DIR_OUT, drv); 357 ep_out = usb_core_request_endpoint(USB_ENDPOINT_XFER_BULK, USB_DIR_OUT,
358 drv);
358 359
359 if(ep_out<0) { 360 if(ep_out<0) {
360 usb_core_release_endpoint(ep_in); 361 usb_core_release_endpoint(ep_in);
@@ -375,15 +376,15 @@ int usb_storage_get_config_descriptor(unsigned char *dest,int max_packet_size)
375 unsigned char *orig_dest = dest; 376 unsigned char *orig_dest = dest;
376 377
377 interface_descriptor.bInterfaceNumber = usb_interface; 378 interface_descriptor.bInterfaceNumber = usb_interface;
378 PACK_DESCRIPTOR(dest, interface_descriptor); 379 PACK_DATA(dest, interface_descriptor);
379 380
380 endpoint_descriptor.wMaxPacketSize = max_packet_size; 381 endpoint_descriptor.wMaxPacketSize = max_packet_size;
381 382
382 endpoint_descriptor.bEndpointAddress = ep_in; 383 endpoint_descriptor.bEndpointAddress = ep_in;
383 PACK_DESCRIPTOR(dest, endpoint_descriptor); 384 PACK_DATA(dest, endpoint_descriptor);
384 385
385 endpoint_descriptor.bEndpointAddress = ep_out; 386 endpoint_descriptor.bEndpointAddress = ep_out;
386 PACK_DESCRIPTOR(dest, endpoint_descriptor); 387 PACK_DATA(dest, endpoint_descriptor);
387 388
388 return (dest - orig_dest); 389 return (dest - orig_dest);
389} 390}