public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* 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