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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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<preston.fick@xxxxxxxxxx>
---
  drivers/usb/serial/cp210x.c |   24 ++++++++++++++++++++++++
  1 files changed, 24 insertions(+), 0 deletions(-)

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
[...]
@@ -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
--
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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux