Hello. On 10-10-2010 10:32, Alon Ziv wrote:
OPN2001 expects write operations to arrive as a vendor-specific command through the control pipe (instead of using a separate bulk-out pipe).
Signed-off-by: Alon Ziv<alon-git@xxxxxxxxxxx> --- drivers/usb/serial/opticon.c | 30 ++++++++++++++++++++++++++---- 1 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/serial/opticon.c b/drivers/usb/serial/opticon.c index 9ff19c8..4fe7c3d 100644 --- a/drivers/usb/serial/opticon.c +++ b/drivers/usb/serial/opticon.c
[...]
@@ -237,10 +240,29 @@ static int opticon_write(struct tty_struct *tty, struct usb_serial_port *port, usb_serial_debug_data(debug,&port->dev, __func__, count, buffer); - usb_fill_bulk_urb(urb, serial->dev, - usb_sndbulkpipe(serial->dev, - port->bulk_out_endpointAddress), - buffer, count, opticon_write_bulk_callback, priv); + if (port->bulk_out_endpointAddress) { + usb_fill_bulk_urb(urb, serial->dev, + usb_sndbulkpipe(serial->dev, + port->bulk_out_endpointAddress), + buffer, count, opticon_write_bulk_callback, priv);
Please align all follow-up lines uniformly.
+ } else { + struct usb_ctrlrequest *dr; + + dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO);
sizeof(*dr) is a preferred form.
+ usb_fill_control_urb(urb, serial->dev, + usb_sndctrlpipe(serial->dev, 0), + (unsigned char *)dr, buffer, count, + opticon_write_bulk_callback, priv);
More tabs needed for alignment, I think... WBR, Sergei -- 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