Moving setting of data interface in CDC NCM driver

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

 



Hi,

I've been looking into an issue with network interfaces failing to come up on a particular NCM device, a Nokia 701 mobile phone. The issue is that the phone does not send the ConnectionSpeedChange and NetworkConnection notifications (NCM specification section 6.3) if the host isn't trying to read from the control interrupt endpoint in the first few seconds after the data interface alternate setting is selected.

This results in the behavior of the network interface always remaining disconnected unless you bring the interface up immediately after the device is connected.

Before I submit a patch I wanted to check the preferred solution for the Linux CDC NCM driver. I can think of a few solutions and thought it best to get feedback instead of just submitting a patch without discussion.

The way I'm currently working around this issue is to add a cdc_ncm_reset to the cdc_ncm_info and moving the setting of the data interface alternate setting (and related code) from cdc_ncm_bind to cdc_ncm_reset. Does this seem the sensible solution?

The other possibility I was thinking of was to add a list of quirky devices to the NCM driver, much like the mass storage unusual device table, but this seems like it would needlessly complicate the driver.

Or are both of these suggestions undesirable and we should just work around this issue in user-space by making sure to bring up the interface quickly enough.

Regards,

Toby
--
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