* qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card
@ 2013-05-06 21:14 Dan Williams
2013-05-06 21:17 ` [PATCH] " Dan Williams
0 siblings, 1 reply; 8+ messages in thread
From: Dan Williams @ 2013-05-06 21:14 UTC (permalink / raw)
To: netdev; +Cc: stable, dagofthedofg, Bjørn Mork
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: <stable@vger.kernel.org>
Signed-off-by: Dan Williams <dcbw@redhat.com>
---
drivers/net/usb/cdc_ether.c | 7 +++++++
drivers/net/usb/qmi_wwan.c | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index 24fbec2..078795f 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -613,6 +613,13 @@ static const struct usb_device_id products [] = {
.driver_info = 0,
},
+/* Dell Wireless 5804 (Novatel E371) - handled by qmi_wwan */
+{
+ USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, 0x819b, USB_CLASS_COMM,
+ USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
+ .driver_info = 0,
+},
+
/* AnyDATA ADU960S - handled by qmi_wwan */
{
USB_DEVICE_AND_INTERFACE_INFO(0x16d5, 0x650a, USB_CLASS_COMM,
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 834e405..cf887c2 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -501,6 +501,13 @@ static const struct usb_device_id products[] = {
USB_CDC_PROTO_NONE),
.driver_info = (unsigned long)&qmi_wwan_info,
},
+ { /* Dell Wireless 5804 (Novatel E371) */
+ USB_DEVICE_AND_INTERFACE_INFO(0x413C, 0x819b,
+ USB_CLASS_COMM,
+ USB_CDC_SUBCLASS_ETHERNET,
+ USB_CDC_PROTO_NONE),
+ .driver_info = (unsigned long)&qmi_wwan_info,
+ },
{ /* ADU960S */
USB_DEVICE_AND_INTERFACE_INFO(0x16d5, 0x650a,
USB_CLASS_COMM,
--
1.8.1.4
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH] qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card
2013-05-06 21:14 qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card Dan Williams
@ 2013-05-06 21:17 ` Dan Williams
2013-05-06 21:22 ` Bjørn Mork
0 siblings, 1 reply; 8+ messages in thread
From: Dan Williams @ 2013-05-06 21:17 UTC (permalink / raw)
To: netdev; +Cc: stable, dagofthedofg, Bjørn Mork
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: <stable@vger.kernel.org>
Signed-off-by: Dan Williams <dcbw@redhat.com>
---
drivers/net/usb/cdc_ether.c | 7 +++++++
drivers/net/usb/qmi_wwan.c | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index 24fbec2..078795f 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -613,6 +613,13 @@ static const struct usb_device_id products [] = {
.driver_info = 0,
},
+/* Dell Wireless 5804 (Novatel E371) - handled by qmi_wwan */
+{
+ USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, 0x819b, USB_CLASS_COMM,
+ USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
+ .driver_info = 0,
+},
+
/* AnyDATA ADU960S - handled by qmi_wwan */
{
USB_DEVICE_AND_INTERFACE_INFO(0x16d5, 0x650a, USB_CLASS_COMM,
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 834e405..cf887c2 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -501,6 +501,13 @@ static const struct usb_device_id products[] = {
USB_CDC_PROTO_NONE),
.driver_info = (unsigned long)&qmi_wwan_info,
},
+ { /* Dell Wireless 5804 (Novatel E371) */
+ USB_DEVICE_AND_INTERFACE_INFO(0x413C, 0x819b,
+ USB_CLASS_COMM,
+ USB_CDC_SUBCLASS_ETHERNET,
+ USB_CDC_PROTO_NONE),
+ .driver_info = (unsigned long)&qmi_wwan_info,
+ },
{ /* ADU960S */
USB_DEVICE_AND_INTERFACE_INFO(0x16d5, 0x650a,
USB_CLASS_COMM,
--
1.8.1.4
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH] qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card
2013-05-06 21:17 ` [PATCH] " Dan Williams
@ 2013-05-06 21:22 ` Bjørn Mork
2013-05-08 19:08 ` David Miller
0 siblings, 1 reply; 8+ messages in thread
From: Bjørn Mork @ 2013-05-06 21:22 UTC (permalink / raw)
To: Dan Williams; +Cc: netdev, stable, dagofthedofg
Dan Williams <dcbw@redhat.com> writes:
> 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: <stable@vger.kernel.org>
> Signed-off-by: Dan Williams <dcbw@redhat.com>
> ---
> drivers/net/usb/cdc_ether.c | 7 +++++++
> drivers/net/usb/qmi_wwan.c | 7 +++++++
> 2 files changed, 14 insertions(+)
Acked-by: Bjørn Mork <bjorn@mork.no>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card
2013-05-06 21:22 ` Bjørn Mork
@ 2013-05-08 19:08 ` David Miller
2013-05-08 19:11 ` dag dg
0 siblings, 1 reply; 8+ messages in thread
From: David Miller @ 2013-05-08 19:08 UTC (permalink / raw)
To: bjorn; +Cc: dcbw, netdev, stable, dagofthedofg
From: Bjørn Mork <bjorn@mork.no>
Date: Mon, 06 May 2013 23:22:50 +0200
> Dan Williams <dcbw@redhat.com> writes:
>
>> 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: <stable@vger.kernel.org>
>> Signed-off-by: Dan Williams <dcbw@redhat.com>
>> ---
>> drivers/net/usb/cdc_ether.c | 7 +++++++
>> drivers/net/usb/qmi_wwan.c | 7 +++++++
>> 2 files changed, 14 insertions(+)
>
> Acked-by: Bjørn Mork <bjorn@mork.no>
Applied.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card
2013-05-08 19:08 ` David Miller
@ 2013-05-08 19:11 ` dag dg
2013-05-08 19:19 ` David Miller
0 siblings, 1 reply; 8+ messages in thread
From: dag dg @ 2013-05-08 19:11 UTC (permalink / raw)
To: David Miller; +Cc: Bjørn Mork, Dan Williams, Network Development, stable
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 <davem@davemloft.net> wrote:
> From: Bjørn Mork <bjorn@mork.no>
> Date: Mon, 06 May 2013 23:22:50 +0200
>
>> Dan Williams <dcbw@redhat.com> writes:
>>
>>> 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: <stable@vger.kernel.org>
>>> Signed-off-by: Dan Williams <dcbw@redhat.com>
>>> ---
>>> drivers/net/usb/cdc_ether.c | 7 +++++++
>>> drivers/net/usb/qmi_wwan.c | 7 +++++++
>>> 2 files changed, 14 insertions(+)
>>
>> Acked-by: Bjørn Mork <bjorn@mork.no>
>
> Applied.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card
2013-05-08 19:11 ` dag dg
@ 2013-05-08 19:19 ` David Miller
2013-05-08 19:25 ` Dan Williams
0 siblings, 1 reply; 8+ messages in thread
From: David Miller @ 2013-05-08 19:19 UTC (permalink / raw)
To: dagofthedofg; +Cc: bjorn, dcbw, netdev, stable
From: dag dg <dagofthedofg@gmail.com>
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...
I'm sure that Bjørn can answer this question.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card
2013-05-08 19:19 ` David Miller
@ 2013-05-08 19:25 ` Dan Williams
2013-05-08 19:27 ` dag dg
0 siblings, 1 reply; 8+ messages in thread
From: Dan Williams @ 2013-05-08 19:25 UTC (permalink / raw)
To: David Miller; +Cc: dagofthedofg, bjorn, netdev, stable
On Wed, 2013-05-08 at 12:19 -0700, David Miller wrote:
> From: dag dg <dagofthedofg@gmail.com>
> 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...
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card
2013-05-08 19:25 ` Dan Williams
@ 2013-05-08 19:27 ` dag dg
0 siblings, 0 replies; 8+ messages in thread
From: dag dg @ 2013-05-08 19:27 UTC (permalink / raw)
To: Dan Williams; +Cc: David Miller, Bjørn Mork, Network Development, stable
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 <dcbw@redhat.com> wrote:
> On Wed, 2013-05-08 at 12:19 -0700, David Miller wrote:
>> From: dag dg <dagofthedofg@gmail.com>
>> 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...
>
> 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
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-05-08 19:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-06 21:14 qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card Dan Williams
2013-05-06 21:17 ` [PATCH] " Dan Williams
2013-05-06 21:22 ` Bjørn Mork
2013-05-08 19:08 ` David Miller
2013-05-08 19:11 ` dag dg
2013-05-08 19:19 ` David Miller
2013-05-08 19:25 ` Dan Williams
2013-05-08 19:27 ` dag dg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox