diff options
Diffstat (limited to 'firmware/usbstack/usb_serial.c')
-rw-r--r-- | firmware/usbstack/usb_serial.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/firmware/usbstack/usb_serial.c b/firmware/usbstack/usb_serial.c index 520a4b3370..50e4699b28 100644 --- a/firmware/usbstack/usb_serial.c +++ b/firmware/usbstack/usb_serial.c | |||
@@ -32,7 +32,7 @@ | |||
32 | 32 | ||
33 | /* serial interface */ | 33 | /* serial interface */ |
34 | static struct usb_interface_descriptor __attribute__((aligned(2))) | 34 | static struct usb_interface_descriptor __attribute__((aligned(2))) |
35 | interface_descriptor = | 35 | interface_descriptor = |
36 | { | 36 | { |
37 | .bLength = sizeof(struct usb_interface_descriptor), | 37 | .bLength = sizeof(struct usb_interface_descriptor), |
38 | .bDescriptorType = USB_DT_INTERFACE, | 38 | .bDescriptorType = USB_DT_INTERFACE, |
@@ -46,7 +46,8 @@ static struct usb_interface_descriptor __attribute__((aligned(2))) | |||
46 | }; | 46 | }; |
47 | 47 | ||
48 | 48 | ||
49 | static struct usb_endpoint_descriptor __attribute__((aligned(2))) endpoint_descriptor = | 49 | static struct usb_endpoint_descriptor __attribute__((aligned(2))) |
50 | endpoint_descriptor = | ||
50 | { | 51 | { |
51 | .bLength = sizeof(struct usb_endpoint_descriptor), | 52 | .bLength = sizeof(struct usb_endpoint_descriptor), |
52 | .bDescriptorType = USB_DT_ENDPOINT, | 53 | .bDescriptorType = USB_DT_ENDPOINT, |
@@ -77,12 +78,10 @@ static int usb_interface; | |||
77 | int usb_serial_request_endpoints(struct usb_class_driver *drv) | 78 | int usb_serial_request_endpoints(struct usb_class_driver *drv) |
78 | { | 79 | { |
79 | ep_in = usb_core_request_endpoint(USB_DIR_IN, drv); | 80 | ep_in = usb_core_request_endpoint(USB_DIR_IN, drv); |
80 | |||
81 | if (ep_in < 0) | 81 | if (ep_in < 0) |
82 | return -1; | 82 | return -1; |
83 | |||
84 | ep_out = usb_core_request_endpoint(USB_DIR_OUT, drv); | ||
85 | 83 | ||
84 | ep_out = usb_core_request_endpoint(USB_DIR_OUT, drv); | ||
86 | if (ep_out < 0) { | 85 | if (ep_out < 0) { |
87 | usb_core_release_endpoint(ep_in); | 86 | usb_core_release_endpoint(ep_in); |
88 | return -1; | 87 | return -1; |
@@ -97,8 +96,7 @@ int usb_serial_set_first_interface(int interface) | |||
97 | return interface + 1; | 96 | return interface + 1; |
98 | } | 97 | } |
99 | 98 | ||
100 | 99 | int usb_serial_get_config_descriptor(unsigned char *dest, int max_packet_size) | |
101 | int usb_serial_get_config_descriptor(unsigned char *dest,int max_packet_size) | ||
102 | { | 100 | { |
103 | unsigned char *orig_dest = dest; | 101 | unsigned char *orig_dest = dest; |
104 | 102 | ||
@@ -186,7 +184,7 @@ void usb_serial_send(unsigned char *data,int length) | |||
186 | return; | 184 | return; |
187 | int freestart=(buffer_start+buffer_length+buffer_transitlength)%BUFFER_SIZE; | 185 | int freestart=(buffer_start+buffer_length+buffer_transitlength)%BUFFER_SIZE; |
188 | if(buffer_start+buffer_transitlength+buffer_length >= BUFFER_SIZE) | 186 | if(buffer_start+buffer_transitlength+buffer_length >= BUFFER_SIZE) |
189 | { | 187 | { |
190 | /* current buffer wraps, so new data can't */ | 188 | /* current buffer wraps, so new data can't */ |
191 | int available_space = BUFFER_SIZE - buffer_length - buffer_transitlength; | 189 | int available_space = BUFFER_SIZE - buffer_length - buffer_transitlength; |
192 | length=MIN(length,available_space); | 190 | length=MIN(length,available_space); |
@@ -245,12 +243,9 @@ void usb_serial_transfer_complete(int ep,int dir, int status, int length) | |||
245 | } | 243 | } |
246 | 244 | ||
247 | if(buffer_length>0) | 245 | if(buffer_length>0) |
248 | { | ||
249 | sendout(); | 246 | sendout(); |
250 | } | ||
251 | break; | 247 | break; |
252 | } | 248 | } |
253 | } | 249 | } |
254 | 250 | ||
255 | |||
256 | #endif /*USB_SERIAL*/ | 251 | #endif /*USB_SERIAL*/ |