From: Dan Williams <hidden> Date: 2013-05-06 21:14:38
A rebranded Novatel E371 for AT&T's LTE bands. qmi_wwan should drive this
device, while cdc_ether should ignore it. Even though the USB descriptors
are plain CDC-ETHER that USB interface is a QMI interface.
Cc: <redacted>
Signed-off-by: Dan Williams <redacted>
---
drivers/net/usb/cdc_ether.c | 7 +++++++
drivers/net/usb/qmi_wwan.c | 7 +++++++
2 files changed, 14 insertions(+)
From: Dan Williams <hidden> Date: 2013-05-06 21:17:37
A rebranded Novatel E371 for AT&T's LTE bands. qmi_wwan should drive this
device, while cdc_ether should ignore it. Even though the USB descriptors
are plain CDC-ETHER that USB interface is a QMI interface.
Cc: <redacted>
Signed-off-by: Dan Williams <redacted>
---
drivers/net/usb/cdc_ether.c | 7 +++++++
drivers/net/usb/qmi_wwan.c | 7 +++++++
2 files changed, 14 insertions(+)
A rebranded Novatel E371 for AT&T's LTE bands. qmi_wwan should drive this
device, while cdc_ether should ignore it. Even though the USB descriptors
are plain CDC-ETHER that USB interface is a QMI interface.
Cc: <redacted>
Signed-off-by: Dan Williams <redacted>
---
drivers/net/usb/cdc_ether.c | 7 +++++++
drivers/net/usb/qmi_wwan.c | 7 +++++++
2 files changed, 14 insertions(+)
A rebranded Novatel E371 for AT&T's LTE bands. qmi_wwan should drive this
device, while cdc_ether should ignore it. Even though the USB descriptors
are plain CDC-ETHER that USB interface is a QMI interface.
Cc: <redacted>
Signed-off-by: Dan Williams <redacted>
---
drivers/net/usb/cdc_ether.c | 7 +++++++
drivers/net/usb/qmi_wwan.c | 7 +++++++
2 files changed, 14 insertions(+)
Just a side note on this. By default for this device, modprobe won't
load and assign the option driver. However, if cdc_ether is
blacklisted and you try to load option onto the device, it will try to
load the option driver onto where cdc_ether was being used, which will
cause the system to lock up. I'm not sure what needs to be done to
force qmi_wwan to take over cdc_ether without option grabbing these
IDs...
On Wed, May 8, 2013 at 2:08 PM, David Miller [off-list ref] wrote:
A rebranded Novatel E371 for AT&T's LTE bands. qmi_wwan should drive this
device, while cdc_ether should ignore it. Even though the USB descriptors
are plain CDC-ETHER that USB interface is a QMI interface.
Cc: <redacted>
Signed-off-by: Dan Williams <redacted>
---
drivers/net/usb/cdc_ether.c | 7 +++++++
drivers/net/usb/qmi_wwan.c | 7 +++++++
2 files changed, 14 insertions(+)
From: David Miller <davem@davemloft.net> Date: 2013-05-08 19:19:22
From: dag dg <redacted>
Date: Wed, 8 May 2013 14:11:48 -0500
Just a side note on this. By default for this device, modprobe won't
load and assign the option driver. However, if cdc_ether is
blacklisted and you try to load option onto the device, it will try to
load the option driver onto where cdc_ether was being used, which will
cause the system to lock up. I'm not sure what needs to be done to
force qmi_wwan to take over cdc_ether without option grabbing these
IDs...
From: Dan Williams <hidden> Date: 2013-05-08 19:25:50
On Wed, 2013-05-08 at 12:19 -0700, David Miller wrote:
From: dag dg <redacted>
Date: Wed, 8 May 2013 14:11:48 -0500
quoted
Just a side note on this. By default for this device, modprobe won't
load and assign the option driver. However, if cdc_ether is
blacklisted and you try to load option onto the device, it will try to
load the option driver onto where cdc_ether was being used, which will
cause the system to lock up. I'm not sure what needs to be done to
force qmi_wwan to take over cdc_ether without option grabbing these
IDs...
This is a consequence of "new_id" not being flexible enough to handle
class/subclass/protocol in addition to USB IDs. Thus when you use it,
the driver binds to *all* USB interfaces, even ones that the driver
shouldn't ever control
So the issue you refer to is actually user error, helped by a
too-coarse-grained kernel API. It's not an issue when things are all
done correctly, which is to say when the USB IDs and interface
class/subclass/protocol are properly added to the kernel drivers.
The option patch I posted earlier will fix this issue correctly.
Dan
cool, just wanted to make sure. When I set up a startup script to load
up the option driver I freaked when my machine locked up. Good to know
you have this covered, looking forward to seeing it implemented down
the road. Thanks.
On Wed, May 8, 2013 at 2:25 PM, Dan Williams [off-list ref] wrote:
On Wed, 2013-05-08 at 12:19 -0700, David Miller wrote:
quoted
From: dag dg <redacted>
Date: Wed, 8 May 2013 14:11:48 -0500
quoted
Just a side note on this. By default for this device, modprobe won't
load and assign the option driver. However, if cdc_ether is
blacklisted and you try to load option onto the device, it will try to
load the option driver onto where cdc_ether was being used, which will
cause the system to lock up. I'm not sure what needs to be done to
force qmi_wwan to take over cdc_ether without option grabbing these
IDs...
This is a consequence of "new_id" not being flexible enough to handle
class/subclass/protocol in addition to USB IDs. Thus when you use it,
the driver binds to *all* USB interfaces, even ones that the driver
shouldn't ever control
So the issue you refer to is actually user error, helped by a
too-coarse-grained kernel API. It's not an issue when things are all
done correctly, which is to say when the USB IDs and interface
class/subclass/protocol are properly added to the kernel drivers.
The option patch I posted earlier will fix this issue correctly.
Dan