diff options
Diffstat (limited to 'drivers/usb/net/usbnet.c')
| -rw-r--r-- | drivers/usb/net/usbnet.c | 53 | 
1 files changed, 26 insertions, 27 deletions
| diff --git a/drivers/usb/net/usbnet.c b/drivers/usb/net/usbnet.c index f6bc6b3b333..85476e76b24 100644 --- a/drivers/usb/net/usbnet.c +++ b/drivers/usb/net/usbnet.c @@ -1517,6 +1517,26 @@ static void cdc_unbind (struct usbnet *dev, struct usb_interface *intf)  	}  } +#endif	/* NEED_GENERIC_CDC */ + + +#ifdef	CONFIG_USB_CDCETHER +#define	HAVE_HARDWARE + +/*------------------------------------------------------------------------- + * + * Communications Device Class, Ethernet Control model + * + * Takes two interfaces.  The DATA interface is inactive till an altsetting + * is selected.  Configuration data includes class descriptors. + * + * This should interop with whatever the 2.4 "CDCEther.c" driver + * (by Brad Hards) talked with. + * + *-------------------------------------------------------------------------*/ + +#include <linux/ctype.h> +  static void dumpspeed (struct usbnet *dev, __le32 *speeds)  { @@ -1567,26 +1587,6 @@ static void cdc_status (struct usbnet *dev, struct urb *urb)  	}  } -#endif	/* NEED_GENERIC_CDC */ - - -#ifdef	CONFIG_USB_CDCETHER -#define	HAVE_HARDWARE - -/*------------------------------------------------------------------------- - * - * Communications Device Class, Ethernet Control model - *  - * Takes two interfaces.  The DATA interface is inactive till an altsetting - * is selected.  Configuration data includes class descriptors. - * - * This should interop with whatever the 2.4 "CDCEther.c" driver - * (by Brad Hards) talked with. - * - *-------------------------------------------------------------------------*/ - -#include <linux/ctype.h> -  static u8 nibble (unsigned char c)  {  	if (likely (isdigit (c))) @@ -2765,7 +2765,7 @@ static int blan_mdlm_bind (struct usbnet *dev, struct usb_interface *intf)  			}  			/* expect bcdVersion 1.0, ignore */  			if (memcmp(&desc->bGUID, blan_guid, 16) -				    || memcmp(&desc->bGUID, blan_guid, 16) ) { +				    && memcmp(&desc->bGUID, blan_guid, 16) ) {  				/* hey, this one might _really_ be MDLM! */  				dev_dbg (&intf->dev, "MDLM guid\n");  				goto bad_desc; @@ -2797,11 +2797,13 @@ static int blan_mdlm_bind (struct usbnet *dev, struct usb_interface *intf)  			 *  - bPad (ignored, for PADAFTER -- BLAN-only)  			 * bits are:  			 *  - 0x01 -- Zaurus framing (add CRC) -			 *  - 0x02 -- PADBEFORE -			 *  - 0x04 -- PADAFTER +			 *  - 0x02 -- PADBEFORE (CRC includes some padding) +			 *  - 0x04 -- PADAFTER (some padding after CRC)  			 *  - 0x08 -- "fermat" packet mangling (for hw bugs) +			 * the PADBEFORE appears not to matter; we interop +			 * with devices that use it and those that don't.  			 */ -			if (detail->bDetailData[1] != 0x01) { +			if ((detail->bDetailData[1] & ~02) != 0x01) {  				/* bmDataCapabilites == 0 would be fine too,  				 * but framing is minidriver-coupled for now.  				 */ @@ -4071,9 +4073,6 @@ static const struct usb_device_id	products [] = {  	USB_DEVICE (0x8086, 0x07d3),	// "blob" bootloader  	.driver_info =	(unsigned long) &blob_info,  }, { -	USB_DEVICE (0x22b8, 0x600c),	// USBNET Motorola E680 -	.driver_info =	(unsigned long) &linuxdev_info, -}, {  	// Linux Ethernet/RNDIS gadget on pxa210/25x/26x  	// e.g. Gumstix, current OpenZaurus, ...  	USB_DEVICE_VER (0x0525, 0xa4a2, 0x0203, 0x0203), | 
