Bug 42811

Summary: The current cp210x driver does not include full support for CP2105
Product: Drivers Reporter: Preston Fick (preston.fick)
Component: USBAssignee: Greg Kroah-Hartman (greg)
Status: RESOLVED CODE_FIX    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.2.7 Subsystem:
Regression: No Bisected commit-id:

Description Preston Fick 2012-02-22 20:12:31 UTC
The existing cp210x driver does not fully support the CP2105 device, which is a dual interface device.

Currently the existing cp210x driver supports only interface 0, which is hardcoded into the get and set control pipe functions, usb_control_msg(), hardcodes the wIndex parameter to 0. This value specifies which interface to talk to, so by setting it to 1, it will talk to interface 1, etc. This allows for only one of the ports to work on the CP2105 device, while the other one enumerates and shows up in /dev as a ttyUSBx device.

The change for this will require the startup function to grab each interface and store the interface of the device in the port's private data. Then, it just retrieves and uses this value at the time of the transfer. A release function should be added as well to clean up the private space for each port when the driver is unloaded.

If this change is implemented it will allow for support of all Silicon Lab's multi-interface devices since it will dynamically populate the interface number.
Comment 1 Greg Kroah-Hartman 2012-02-22 20:35:11 UTC
This is already done in the linux-next tree and will show up in the 3.4 kernel release.
Comment 2 Preston Fick 2012-02-22 20:49:56 UTC
Great - I had a patch I was ready to submit, I'll be looking for it.
Comment 3 Greg Kroah-Hartman 2012-02-22 20:54:44 UTC
Is the patch against linux-next?

Please discuss this on the linux-usb@vger.kernel.org mailing list, not in bugzilla.