| From 420021a395ce38b7ab2cceb52dee4038be7d8fa3 Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <jhovold@gmail.com> |
| Date: Mon, 27 May 2013 14:44:38 +0200 |
| Subject: USB: visor: fix initialisation of Treo/Kyocera devices |
| |
| From: Johan Hovold <jhovold@gmail.com> |
| |
| commit 420021a395ce38b7ab2cceb52dee4038be7d8fa3 upstream. |
| |
| Fix regression introduced by commit 214916f2e ("USB: visor: reimplement |
| using generic framework") which broke initialisation of Treo/Kyocera |
| devices that re-mapped bulk-in endpoints. |
| |
| Signed-off-by: Johan Hovold <jhovold@gmail.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/serial/visor.c | 8 ++++++++ |
| 1 file changed, 8 insertions(+) |
| |
| --- a/drivers/usb/serial/visor.c |
| +++ b/drivers/usb/serial/visor.c |
| @@ -566,9 +566,17 @@ static int treo_attach(struct usb_serial |
| */ |
| #define COPY_PORT(dest, src) \ |
| do { \ |
| + int i; \ |
| + \ |
| + for (i = 0; i < ARRAY_SIZE(src->read_urbs); ++i) { \ |
| + dest->read_urbs[i] = src->read_urbs[i]; \ |
| + dest->read_urbs[i]->context = dest; \ |
| + dest->bulk_in_buffers[i] = src->bulk_in_buffers[i]; \ |
| + } \ |
| dest->read_urb = src->read_urb; \ |
| dest->bulk_in_endpointAddress = src->bulk_in_endpointAddress;\ |
| dest->bulk_in_buffer = src->bulk_in_buffer; \ |
| + dest->bulk_in_size = src->bulk_in_size; \ |
| dest->interrupt_in_urb = src->interrupt_in_urb; \ |
| dest->interrupt_in_endpointAddress = \ |
| src->interrupt_in_endpointAddress;\ |