From 786e3dfbae8e2da422affcc1736ca1888f200a27 Mon Sep 17 00:00:00 2001 From: Bjorge Dijkstra Date: Sat, 26 Jan 2008 00:50:44 +0200 Subject: [PATCH] cdc_ether: Hardwire CDC descriptors when missing Just as ActiveSync devices, some regular RNDIS devices also lack the CDC descriptors (e.g. devices based on BCM4320 WLAN chip). This patch hardwires the CDC descriptors for all RNDIS style devices when they are missing. Signed-off-by: Bjorge Dijkstra Signed-off-by: Jussi Kivilinna Acked-by: David Brownell Signed-off-by: John W. Linville Signed-off-by: David S. Miller --- drivers/net/usb/cdc_ether.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c index a42acc3cc609..97c17bb560ac 100644 --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c @@ -228,15 +228,16 @@ next_desc: buf += buf [0]; } - /* Microsoft ActiveSync based RNDIS devices lack the CDC descriptors, - * so we'll hard-wire the interfaces and not check for descriptors. + /* Microsoft ActiveSync based and some regular RNDIS devices lack the + * CDC descriptors, so we'll hard-wire the interfaces and not check + * for descriptors. */ - if (is_activesync(&intf->cur_altsetting->desc) && !info->u) { + if (rndis && !info->u) { info->control = usb_ifnum_to_if(dev->udev, 0); info->data = usb_ifnum_to_if(dev->udev, 1); if (!info->control || !info->data) { dev_dbg(&intf->dev, - "activesync: master #0/%p slave #1/%p\n", + "rndis: master #0/%p slave #1/%p\n", info->control, info->data); goto bad_desc; @@ -316,7 +317,6 @@ void usbnet_cdc_unbind(struct usbnet *dev, struct usb_interface *intf) } EXPORT_SYMBOL_GPL(usbnet_cdc_unbind); - /*------------------------------------------------------------------------- * * Communications Device Class, Ethernet Control model -- 2.34.1