usb: cdc_ether: Add rmnet device info to ZM5250
[linux-2.6.git] / drivers / net / usb / cx82310_eth.c
index 6fbe032..8969f12 100644 (file)
@@ -138,11 +138,9 @@ static int cx82310_bind(struct usbnet *dev, struct usb_interface *intf)
        struct usb_device *udev = dev->udev;
 
        /* avoid ADSL modems - continue only if iProduct is "USB NET CARD" */
-       if (udev->descriptor.iProduct &&
-           usb_string(udev, udev->descriptor.iProduct, buf, sizeof(buf)) &&
-           strcmp(buf, "USB NET CARD")) {
-               dev_err(&udev->dev,
-                       "probably an ADSL modem, use cxacru driver instead\n");
+       if (usb_string(udev, udev->descriptor.iProduct, buf, sizeof(buf)) > 0
+           && strcmp(buf, "USB NET CARD")) {
+               dev_info(&udev->dev, "ignoring: probably an ADSL modem\n");
                return -ENODEV;
        }
 
@@ -152,11 +150,11 @@ static int cx82310_bind(struct usbnet *dev, struct usb_interface *intf)
 
        /*
         * this must not include ethernet header as the device can send partial
-        * packets with no header (URB is at least 2 bytes long, so 2 is OK)
+        * packets with no header (and sometimes even empty URBs)
         */
-       dev->net->hard_header_len = 2;
+       dev->net->hard_header_len = 0;
        /* we can send at most 1514 bytes of data (+ 2-byte header) per URB */
-       dev->hard_mtu = CX82310_MTU + dev->net->hard_header_len;
+       dev->hard_mtu = CX82310_MTU + 2;
        /* we can receive URBs up to 4KB from the device */
        dev->rx_urb_size = 4096;
 
@@ -230,12 +228,6 @@ static int cx82310_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
                        return 1;
        }
 
-       if (skb->len < 2) {
-               dev_err(&dev->udev->dev, "RX frame too short: %d B\n",
-                       skb->len);
-               return 0;
-       }
-
        /* a skb can contain multiple packets */
        while (skb->len > 1) {
                /* first two bytes are packet length */