Thread (11 messages) 11 messages, 4 authors, 2012-05-02

Re: [PATCH 2/3] usb: cp210x: Added in support to get and store part number

From: Sergei Shtylyov <hidden>
Date: 2012-05-01 16:18:00
Also in: lkml

Hello.

On 01-05-2012 8:06, Preston Fick wrote:
This change gets the part number of the device when the driver is loaded and
stores it in the private portion of the port structure. This addition will
allow for part specific functionality to be added to the driver if needed.
Signed-off-by: Preston Fick<redacted>
---
  drivers/usb/serial/cp210x.c |   24 ++++++++++++++++++++++++
  1 files changed, 24 insertions(+), 0 deletions(-)
quoted hunk ↗ jump to hunk
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
index e67ccf3..b3646b8 100644
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
[...]
quoted hunk ↗ jump to hunk
@@ -862,6 +874,7 @@ static int cp210x_startup(struct usb_serial *serial)
  {
  	struct cp210x_port_private *port_priv;
  	int i;
+	unsigned int partNum;

  	/* cp210x buffers behave strangely unless device is reset */
  	usb_reset_device(serial->dev);
@@ -876,6 +889,17 @@ static int cp210x_startup(struct usb_serial *serial)
  		    serial->interface->cur_altsetting->desc.bInterfaceNumber;

  		usb_set_serial_port_data(serial->port[i], port_priv);
+
+		/* Get the 1-byte part number of the cp210x device */
+		usb_control_msg(serial->dev,
    This may involve DMA...
+			usb_rcvctrlpipe(serial->dev, 0),
+			CP210X_VENDOR_SPECIFIC,
+			REQTYPE_DEVICE_TO_HOST,
+			CP210X_GET_PARTNUM,
+			port_priv->bInterfaceNumber,
+			&partNum, 1,
    You can't do DMA to a buffer situated on stack. You should kmalloc() the 
buffer.
+			USB_CTRL_GET_TIMEOUT);
+		port_priv->bPartNumber = partNum&  0xFF;
  	}

  	return 0;
WBR, Sergei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help