summaryrefslogtreecommitdiff
path: root/firmware/usbstack/usb_serial.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_serial.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_serial.c')
-rw-r--r--firmware/usbstack/usb_serial.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/firmware/usbstack/usb_serial.c b/firmware/usbstack/usb_serial.c
index 370afcb7f1..246938a1ef 100644
--- a/firmware/usbstack/usb_serial.c
+++ b/firmware/usbstack/usb_serial.c
@@ -77,11 +77,12 @@ static int usb_interface;
77 77
78int usb_serial_request_endpoints(struct usb_class_driver *drv) 78int usb_serial_request_endpoints(struct usb_class_driver *drv)
79{ 79{
80 ep_in = usb_core_request_endpoint(USB_DIR_IN, drv); 80 ep_in = usb_core_request_endpoint(USB_ENDPOINT_XFER_BULK, USB_DIR_IN, drv);
81 if (ep_in < 0) 81 if (ep_in < 0)
82 return -1; 82 return -1;
83 83
84 ep_out = usb_core_request_endpoint(USB_DIR_OUT, drv); 84 ep_out = usb_core_request_endpoint(USB_ENDPOINT_XFER_BULK, USB_DIR_OUT,
85 drv);
85 if (ep_out < 0) { 86 if (ep_out < 0) {
86 usb_core_release_endpoint(ep_in); 87 usb_core_release_endpoint(ep_in);
87 return -1; 88 return -1;
@@ -101,15 +102,15 @@ int usb_serial_get_config_descriptor(unsigned char *dest, int max_packet_size)
101 unsigned char *orig_dest = dest; 102 unsigned char *orig_dest = dest;
102 103
103 interface_descriptor.bInterfaceNumber = usb_interface; 104 interface_descriptor.bInterfaceNumber = usb_interface;
104 PACK_DESCRIPTOR(dest, interface_descriptor); 105 PACK_DATA(dest, interface_descriptor);
105 106
106 endpoint_descriptor.wMaxPacketSize = max_packet_size; 107 endpoint_descriptor.wMaxPacketSize = max_packet_size;
107 108
108 endpoint_descriptor.bEndpointAddress = ep_in; 109 endpoint_descriptor.bEndpointAddress = ep_in;
109 PACK_DESCRIPTOR(dest, endpoint_descriptor); 110 PACK_DATA(dest, endpoint_descriptor);
110 111
111 endpoint_descriptor.bEndpointAddress = ep_out; 112 endpoint_descriptor.bEndpointAddress = ep_out;
112 PACK_DESCRIPTOR(dest, endpoint_descriptor); 113 PACK_DATA(dest, endpoint_descriptor);
113 114
114 return (dest - orig_dest); 115 return (dest - orig_dest);
115} 116}