On 10/12/2010 12:07 AM, Johan Hovold wrote:
Fix regression introduced by commit
214916f2ec6701e1c9972f26c60b3dc37d3153c6 (USB: visor: reimplement using
generic framework) which broke initialisation of UX50/TH55 devices that
used re-mapped bulk-out endpoint addresses.
Compile-only tested.
Cc: stable<stable@xxxxxxxxxx>
Signed-off-by: Johan Hovold<jhovold@xxxxxxxxx>
---
Hi Greg and Robert,
I missed the implications of the end-point remapping that was made for the
UX50/TH55 devices (write urbs are now initialised prior to attach). If Robert
confirms this patch solves the problem he's experiencing then this one should
go to stable as well.
Thanks,
Johan
drivers/usb/serial/visor.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
index eb76aae..15a5d89 100644
--- a/drivers/usb/serial/visor.c
+++ b/drivers/usb/serial/visor.c
@@ -606,6 +606,10 @@ static int treo_attach(struct usb_serial *serial)
static int clie_5_attach(struct usb_serial *serial)
{
+ struct usb_serial_port *port;
+ unsigned int pipe;
+ int j;
+
dbg("%s", __func__);
/* TH55 registers 2 ports.
@@ -621,9 +625,14 @@ static int clie_5_attach(struct usb_serial *serial)
return -1;
/* port 0 now uses the modified endpoint Address */
- serial->port[0]->bulk_out_endpointAddress =
+ port = serial->port[0];
+ port->bulk_out_endpointAddress =
serial->port[1]->bulk_out_endpointAddress;
+ pipe = usb_sndbulkpipe(serial->dev, port->bulk_out_endpointAddress);
+ for (j = 0; j< ARRAY_SIZE(port->write_urbs); ++j)
+ port->write_urbs[j]->pipe = pipe;
+
return 0;
}
Hi Johan and Greg,
I have just tested the visor.c patch applied to 2.6.35.6, and the sync
works correctly now.
I also tested with 2.6.36-rc7, and the patch fixes the problem on that
version as well.
Many thanks.
Robert.
(sent via another email MTA, as bayarea.net doesn't want to send to
gmail addresses!)
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html