Hi guys,

Attached you'll find my last patches to pegasus.c
and pegasus.h files. It's good to double check them
before i send them to Linus.


Comments?


later,
Petko

PS: should apply clean to pre5
--- linux-2.4.5/drivers/usb/pegasus.c.orig      Tue Jun 12 18:59:35 2001
+++ linux/drivers/usb/pegasus.c Tue Jun 12 19:02:04 2001
@@ -53,8 +53,8 @@
 /*
  * Version Information
  */
-#define DRIVER_VERSION "v0.4.18 2001/03/18 (C) 1999-2000"
-#define DRIVER_AUTHOR "Petko Manolov <[EMAIL PROTECTED]>"
+#define DRIVER_VERSION "v0.4.19 2001/06/07 (C) 1999-2001"
+#define DRIVER_AUTHOR "Petko Manolov <[EMAIL PROTECTED]>"
 #define DRIVER_DESC "ADMtek AN986 Pegasus USB Ethernet driver"
 
 #define        PEGASUS_USE_INTR
@@ -117,8 +117,7 @@
                        warn( __FUNCTION__ " status %d", urb->status);
        }
        pegasus->flags &= ~ETH_REGS_CHANGED;
-       if ( pegasus->flags & CTRL_URB_SLEEP ) {
-               pegasus->flags &= ~CTRL_URB_SLEEP;
+       if ( waitqueue_active(&pegasus->ctrl_wait) ) {
                wake_up_interruptible( &pegasus->ctrl_wait );
        }
 }
@@ -137,10 +136,9 @@
        }
        memcpy(buffer,data,size);
        
-       while ( pegasus->flags & ETH_REGS_CHANGED ) {
-               pegasus->flags |= CTRL_URB_SLEEP;
+       while ( pegasus->flags & ETH_REGS_CHANGED )
                interruptible_sleep_on( &pegasus->ctrl_wait );
-       }
+
        pegasus->dr.requesttype = PEGASUS_REQT_READ;
        pegasus->dr.request = PEGASUS_REQ_GET_REGS;
        pegasus->dr.value = cpu_to_le16 (0);
@@ -155,7 +153,6 @@
 
        add_wait_queue( &pegasus->ctrl_wait, &wait );
        set_current_state( TASK_INTERRUPTIBLE );
-       pegasus->flags |= CTRL_URB_SLEEP;
 
        if ( (ret = usb_submit_urb( &pegasus->ctrl_urb )) ) {
                err( __FUNCTION__ " BAD CTRLs %d", ret);
@@ -163,11 +160,12 @@
        }
 
        schedule();
-       remove_wait_queue( &pegasus->ctrl_wait, &wait );
 out:
+       remove_wait_queue( &pegasus->ctrl_wait, &wait );
        memcpy(data,buffer,size);
        kfree(buffer);
-       return  ret;
+
+       return ret;
 }
 
 
@@ -184,10 +182,9 @@
        }
        memcpy(buffer, data, size);
 
-       while ( pegasus->flags & ETH_REGS_CHANGED ) {
-               pegasus->flags |= CTRL_URB_SLEEP ;
+       while ( pegasus->flags & ETH_REGS_CHANGED )
                interruptible_sleep_on( &pegasus->ctrl_wait );
-       }
+
        pegasus->dr.requesttype = PEGASUS_REQT_WRITE;
        pegasus->dr.request = PEGASUS_REQ_SET_REGS;
        pegasus->dr.value = cpu_to_le16 (0);
@@ -202,19 +199,18 @@
                          
        add_wait_queue( &pegasus->ctrl_wait, &wait );
        set_current_state( TASK_INTERRUPTIBLE );
-       pegasus->flags |= CTRL_URB_SLEEP;
 
        if ( (ret = usb_submit_urb( &pegasus->ctrl_urb )) ) {
                err( __FUNCTION__ " BAD CTRL %d", ret);
-               kfree(buffer);
-               return  ret;
+               goto out;
        }
-
+       
        schedule();
+out:
        remove_wait_queue( &pegasus->ctrl_wait, &wait );
-
        kfree(buffer);
-       return  ret;
+       
+       return ret;
 }
 
 
@@ -232,10 +228,9 @@
        }
        memcpy(buffer, &data, 1);
 
-       while ( pegasus->flags & ETH_REGS_CHANGED ) {
-               pegasus->flags |= CTRL_URB_SLEEP;
+       while ( pegasus->flags & ETH_REGS_CHANGED )
                interruptible_sleep_on( &pegasus->ctrl_wait );
-       }
+
        pegasus->dr.requesttype = PEGASUS_REQT_WRITE;
        pegasus->dr.request = PEGASUS_REQ_SET_REG;
        pegasus->dr.value = cpu_to_le16p( &dat);
@@ -250,19 +245,18 @@
 
        add_wait_queue( &pegasus->ctrl_wait, &wait );
        set_current_state( TASK_INTERRUPTIBLE );
-       pegasus->flags |= CTRL_URB_SLEEP;
 
        if ( (ret = usb_submit_urb( &pegasus->ctrl_urb )) ) {
                err( __FUNCTION__ " BAD CTRL %d", ret);
-               kfree(buffer);
-               return  ret;
+               goto out;
        }
 
        schedule();
+out:
        remove_wait_queue( &pegasus->ctrl_wait, &wait );
-
        kfree(buffer);
-       return  ret;
+
+       return ret;
 }
 
 
@@ -451,7 +445,7 @@
                return 1;
 
        if ( usb_dev_id[pegasus->dev_index].vendor == VENDOR_LINKSYS ||
-            usb_dev_id[pegasus->dev_index].vendor == VENDOR_DLINK1 ) {
+            usb_dev_id[pegasus->dev_index].vendor == VENDOR_DLINK ) {
                __u16   auxmode;
 
                read_mii_word( pegasus, 0, 0x1b, &auxmode );
@@ -797,7 +791,6 @@
        } else {
                pegasus->eth_regs[EthCtrl0] &= ~RX_MULTICAST;
                pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
-               info("%s: set Rx mode", net->name);
        }
 
        pegasus->flags |= ETH_REGS_CHANGE;
--- linux-2.4.5/drivers/usb/pegasus.h.orig      Tue Jun 12 18:59:43 2001
+++ linux/drivers/usb/pegasus.h Tue Jun 12 19:00:08 2001
@@ -128,30 +128,51 @@
 };
 
 #define        VENDOR_3COM             0x0506
-#define VENDOR_ACCTON           0x083a
-#define VENDOR_ADMTEK           0x07a6
-#define VENDOR_BILLIONTON       0x08dd
-#define VENDOR_COREGA           0x07aa
-#define VENDOR_DLINK1           0x2001
-#define VENDOR_DLINK2           0x07b8
-#define VENDOR_IODATA           0x04bb
-#define VENDOR_LANEED           0x056e
-#define VENDOR_LINKSYS          0x066b
-#define VENDOR_MELCO            0x0411
-#define VENDOR_SMARTBRIDGES    0x08d1
-#define VENDOR_SMC              0x0707
-#define VENDOR_SOHOWARE         0x15e8
+#define        VENDOR_ABOCOM           0x07b8
+#define        VENDOR_ACCTON           0x083a
+#define        VENDOR_ADMTEK           0x07a6
+#define        VENDOR_BILLIONTON       0x08dd
+#define        VENDOR_COREGA           0x07aa
+#define        VENDOR_DLINK            0x2001
+#define        VENDOR_ELSA             0x05cc
+#define        VENDOR_IODATA           0x04bb
+#define        VENDOR_LANEED           0x056e
+#define        VENDOR_LINKSYS          0x066b
+#define        VENDOR_MELCO            0x0411
+#define        VENDOR_SMARTBRIDGES     0x08d1
+#define        VENDOR_SMC              0x0707
+#define        VENDOR_SOHOWARE         0x15e8
 
 #else  /* PEGASUS_DEV */
 
 PEGASUS_DEV( "3Com USB Ethernet 3C460B", VENDOR_3COM, 0x4601,
                DEFAULT_GPIO_RESET | PEGASUS_II )
+PEGASUS_DEV( "USB HPNA/Ethernet", VENDOR_ABOCOM, 0x110c,
+               DEFAULT_GPIO_RESET | PEGASUS_II | HAS_HOME_PNA )
+PEGASUS_DEV( "USB HPNA/Ethernet", VENDOR_ABOCOM, 0x4104,
+               DEFAULT_GPIO_RESET | HAS_HOME_PNA )
+PEGASUS_DEV( "USB HPNA/Ethernet", VENDOR_ABOCOM, 0x4004,
+               DEFAULT_GPIO_RESET | HAS_HOME_PNA )
+PEGASUS_DEV( "USB HPNA/Ethernet", VENDOR_ABOCOM, 0x4007,
+               DEFAULT_GPIO_RESET | HAS_HOME_PNA )
+PEGASUS_DEV( "USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x4102,
+               DEFAULT_GPIO_RESET | PEGASUS_II )
+PEGASUS_DEV( "USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x4002,
+               DEFAULT_GPIO_RESET )
+PEGASUS_DEV( "USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x400b,
+               DEFAULT_GPIO_RESET | PEGASUS_II )
+PEGASUS_DEV( "USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x400c,
+               DEFAULT_GPIO_RESET | PEGASUS_II )
+PEGASUS_DEV( "USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0xabc1,
+               DEFAULT_GPIO_RESET )
+PEGASUS_DEV( "USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x200c,
+               DEFAULT_GPIO_RESET | PEGASUS_II )       
 PEGASUS_DEV( "Accton USB 10/100 Ethernet Adapter", VENDOR_ACCTON, 0x1046,
                DEFAULT_GPIO_RESET )
 PEGASUS_DEV( "ADMtek ADM8511 \"Pegasus II\" USB Ethernet",
                VENDOR_ADMTEK, 0x8511,
                DEFAULT_GPIO_RESET | PEGASUS_II )
-PEGASUS_DEV( "ADMtek AN986 \"Pegasus\" USB Ethernet (eval board)",
+PEGASUS_DEV( "ADMtek AN986 \"Pegasus\" USB Ethernet (eval. board)",
                VENDOR_ADMTEK, 0x0986,
                DEFAULT_GPIO_RESET | HAS_HOME_PNA )
 PEGASUS_DEV( "Billionton USB-100", VENDOR_BILLIONTON, 0x0986,
@@ -164,24 +185,32 @@
                DEFAULT_GPIO_RESET | PEGASUS_II )
 PEGASUS_DEV( "Corega FEter USB-TX", VENDOR_COREGA, 0x0004,
                DEFAULT_GPIO_RESET )
-PEGASUS_DEV( "D-Link DSB-650TX", VENDOR_DLINK1, 0x4001,
+PEGASUS_DEV( "D-Link DSB-650TX", VENDOR_DLINK, 0x4001,
                LINKSYS_GPIO_RESET )
-PEGASUS_DEV( "D-Link DSB-650TX", VENDOR_DLINK1, 0x4002,
+PEGASUS_DEV( "D-Link DSB-650TX", VENDOR_DLINK, 0x4002,
                LINKSYS_GPIO_RESET )
-PEGASUS_DEV( "D-Link DSB-650TX(PNA)", VENDOR_DLINK1, 0x4003,
+PEGASUS_DEV( "D-Link DSB-650TX", VENDOR_DLINK, 0x4102,
+               LINKSYS_GPIO_RESET | PEGASUS_II )
+PEGASUS_DEV( "D-Link DSB-650TX", VENDOR_DLINK, 0x400b,
+               LINKSYS_GPIO_RESET | PEGASUS_II )
+PEGASUS_DEV( "D-Link DSB-650TX", VENDOR_DLINK, 0x200c,
+               LINKSYS_GPIO_RESET | PEGASUS_II )
+PEGASUS_DEV( "D-Link DSB-650TX(PNA)", VENDOR_DLINK, 0x4003,
                DEFAULT_GPIO_RESET | HAS_HOME_PNA )
-PEGASUS_DEV( "D-Link DSB-650", VENDOR_DLINK1, 0xabc1,
+PEGASUS_DEV( "D-Link DSB-650", VENDOR_DLINK, 0xabc1,
                DEFAULT_GPIO_RESET )
-PEGASUS_DEV( "D-Link DU-E10", VENDOR_DLINK2, 0xabc1,
+PEGASUS_DEV( "Elsa Micolink USB2Ethernet", VENDOR_ELSA, 0x3000,
                DEFAULT_GPIO_RESET )
-PEGASUS_DEV( "D-Link DU-E100", VENDOR_DLINK2, 0x4002,
-               DEFAULT_GPIO_RESET )
-PEGASUS_DEV( "FiberLine USB", VENDOR_DLINK2, 0x4102,
-               DEFAULT_GPIO_RESET | PEGASUS_II )
 PEGASUS_DEV( "IO DATA USB ET/TX", VENDOR_IODATA, 0x0904,
                DEFAULT_GPIO_RESET )
 PEGASUS_DEV( "LANEED USB Ethernet LD-USB/TX", VENDOR_LANEED, 0x4002,
                DEFAULT_GPIO_RESET )
+PEGASUS_DEV( "LANEED USB Ethernet LD-USB/TX", VENDOR_LANEED, 0x400b,
+               DEFAULT_GPIO_RESET | PEGASUS_II )
+PEGASUS_DEV( "LANEED USB Ethernet LD-USB/T", VENDOR_LANEED, 0xabc1,
+               DEFAULT_GPIO_RESET )
+PEGASUS_DEV( "LANEED USB Ethernet LD-USB/TX", VENDOR_LANEED, 0x200c,
+               DEFAULT_GPIO_RESET | PEGASUS_II )
 PEGASUS_DEV( "Linksys USB10TX", VENDOR_LINKSYS, 0x2202,
                LINKSYS_GPIO_RESET )
 PEGASUS_DEV( "Linksys USB100TX", VENDOR_LINKSYS, 0x2203,
@@ -190,8 +219,16 @@
                LINKSYS_GPIO_RESET | HAS_HOME_PNA )
 PEGASUS_DEV( "Linksys USB Ethernet Adapter", VENDOR_LINKSYS, 0x2206,
                LINKSYS_GPIO_RESET )
+PEGASUS_DEV( "Linksys USB USB10TX", VENDOR_LINKSYS, 0x400b,
+               LINKSYS_GPIO_RESET | PEGASUS_II )
+PEGASUS_DEV( "Linksys USB10TX", VENDOR_LINKSYS, 0x200c,
+               LINKSYS_GPIO_RESET | PEGASUS_II )       
 PEGASUS_DEV( "MELCO/BUFFALO LUA-TX", VENDOR_MELCO, 0x0001,
                DEFAULT_GPIO_RESET )
+PEGASUS_DEV( "MELCO/BUFFALO LUA-TX", VENDOR_MELCO, 0x0005,
+               DEFAULT_GPIO_RESET )
+PEGASUS_DEV( "MELCO/BUFFALO LUA2-TX", VENDOR_MELCO, 0x0009,
+               DEFAULT_GPIO_RESET | PEGASUS_II )
 PEGASUS_DEV( "smartNIC 2 PnP Adapter", VENDOR_SMARTBRIDGES, 0x0003,
                DEFAULT_GPIO_RESET | PEGASUS_II )
 PEGASUS_DEV( "SMC 202 USB Ethernet", VENDOR_SMC, 0x0200,

Reply via email to