--- a/drivers/usb/net/usbnet.c  2003-09-12 13:53:44.022426336 -0400
+++ b/drivers/usb/net/usbnet.c  2003-09-12 13:55:02.947427912 -0400
@@ -252,6 +252,8 @@
        /* for new devices, use the descriptor-reading code instead */
        int             in;             /* rx endpoint */
        int             out;            /* tx endpoint */
+
+       unsigned long   data;           /* Misc driver specific data */
 };
 
 // we record the state for each of our queued skbs
@@ -561,10 +563,20 @@
        u8 buf[6];
        u16 *buf16 = (u16 *) buf;
        int i;
+       unsigned long gpio_bits = dev->driver_info->data;
 
        dev->in = usb_rcvbulkpipe(dev->udev, 3);
        dev->out = usb_sndbulkpipe(dev->udev, 2);
 
+       /* Toggle the GPIOs in a manufacturer/model specific way */
+       for (i = 2; i >= 0; i--) {
+               if ((ret = ax8817x_write_cmd(dev, AX_CMD_WRITE_GPIOS,
+                                       (gpio_bits >> (i * 8)) & 0xff, 0, 0,
+                                       buf)) < 0)
+                       return ret;
+               wait_ms(5);
+       }
+
        if ((ret = ax8817x_write_cmd(dev, AX_CMD_WRITE_RX_CTL, 0x80, 0, 0, buf)) < 0) {
                dbg("send AX_CMD_WRITE_RX_CTL failed: %d", ret);
                return ret;
@@ -649,7 +661,30 @@
        .description = "ASIX AX8817x USB 2.0 Ethernet",
        .bind = ax8817x_bind,
        .flags =  FLAG_ETHER,
+       .data = 0x00130103,
+};
+
+static const struct driver_info dlink_dub_e100_info = {
+       .description = "DLink DUB-E100 USB Ethernet",
+       .bind = ax8817x_bind,
+       .flags =  FLAG_ETHER,
+       .data = 0x009f9d9f,
+};
+
+static const struct driver_info netgear_fa120_info = {
+       .description = "Netgear FA-120 USB Ethernet",
+       .bind = ax8817x_bind,
+       .flags =  FLAG_ETHER,
+       .data = 0x00130103,
+};
+
+static const struct driver_info hawking_uf200_info = {
+       .description = "Hawking UF200 USB Ethernet",
+       .bind = ax8817x_bind,
+       .flags =  FLAG_ETHER,
+       .data = 0x001f1d1f,
 };
+
 #endif /* CONFIG_USB_AX8817X */
 
 
@@ -2967,19 +3002,19 @@
 }, {
        // Netgear FA120
        USB_DEVICE (0x0846, 0x1040),
-       .driver_info =  (unsigned long) &ax8817x_info,
+       .driver_info =  (unsigned long) &netgear_fa120_info,
 }, {
        // DLink DUB-E100
        USB_DEVICE (0x2001, 0x1a00),
-       .driver_info =  (unsigned long) &ax8817x_info,
+       .driver_info =  (unsigned long) &dlink_dub_e100_info,
 }, {
        // Intellinet, ST Lab USB Ethernet
        USB_DEVICE (0x0b95, 0x1720),
-       .driver_info =  (unsigned long) &ax8817x_info,
+       .driver_info =  (unsigned long) &ax8817x_info,
 }, {
        // Hawking UF200, TrendNet TU2-ET100
        USB_DEVICE (0x07b8, 0x420a),
-       .driver_info =  (unsigned long) &ax8817x_info,
+       .driver_info =  (unsigned long) &hawking_uf200_info,
 }, 
 #endif
 



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to