Steve,

Here's a patch I did against -STABLE circa mid-June.  It probably won't
apply cleanly today -- I think the 2x MAC address read has been MFC'd. 
Pretty minor changes, though; it works great for me.

Enjoy,

Eric

Steve Logue wrote:
> 
> Sorry if this is a duplicate....
> 
> Hello,
> 
> Does anyone have any patches for preliminary support of the Linksys
> WDT11/WPC11 wireless ethernet combo?  The WDT card uses the PLX PCI9052
> chipset and shows up under -STABLE's dmesg as:
> 
> pci0: <unknown card> (vendor=0x16ab, dev=0x1102) at 19.0 irq 12
> 
> With what I have been reading so far on the PLX thread, I appear to have
> a different dev number.  Most people have talked about dev=1101, but I
> have dev=1102.  Is this a new rev of the board?  How can I get this
> working?
> 
> Patches for -CURRENT or -STABLE would be appreciated.
> 
> -STEVEl
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
--- share/man/man4/wi.save      Sun Jun 10 06:13:04 2001
+++ share/man/man4/wi.4 Sun Jun 10 06:09:01 2001
@@ -53,6 +53,12 @@ Both the original
 2Mbps WaveLAN/IEEE cards and the newer 6Mbps WaveLAN/IEEE Turbo
 adapters are supported.
 .Pp
+Additionally, the
+.Nm
+driver supports PCI adapters for the cards based PLX Techology's PCI 9052,
+such as the Linksys WDT11 Wireless PCI Adapter which works in conjunction
+with the WPC11 Wireless Network PC Card.
+.Pp
 The core of the WaveLAN/IEEE is the Lucent Hermes controller.
 All
 host/device interaction is via programmed I/O with the Hermes.


--- sys/i386/isa/if_wi.save     Sat Jun  9 23:51:31 2001
+++ sys/i386/isa/if_wi.c        Sun Jun 10 06:31:10 2001
@@ -230,6 +230,7 @@ wi_pci_probe(dev)
        struct wi_softc         *sc;
 
        sc = device_get_softc(dev);
+       /* XXX Getting a little unwieldy... */
        if ((pci_get_vendor(dev) == WI_PCI_VENDOR_EUMITCOM) &&
                (pci_get_device(dev) == WI_PCI_DEVICE_PRISM2STA)) {
                        sc->wi_prism2 = 1;
@@ -237,6 +238,20 @@ wi_pci_probe(dev)
                            "PRISM2STA PCI WaveLAN/IEEE 802.11");
                        return (0);
        }
+       if ((pci_get_vendor(dev) == WI_PCI_VENDOR_LINKSYS) &&
+               (pci_get_device(dev) == WI_PCI_DEVICE_WDT11)) {
+                       sc->wi_prism2 = 1;
+                       device_set_desc(dev,
+                           "Linksys WDT11 Wireless PCI Adapter");
+                       return (0);
+       }
+       if ((pci_get_vendor(dev) == WI_PCI_VENDOR_GLOBALSUN) &&
+               (pci_get_device(dev) == WI_PCI_DEVICE_GL24110P)) {
+                       sc->wi_prism2 = 1;
+                       device_set_desc(dev,
+                           "Global Sun GL24110P Wireless PCI Adapter");
+                       return (0);
+       }
        return(ENXIO);
 }
 
@@ -399,9 +414,15 @@ wi_generic_attach(device_t dev)
        /* Reset the NIC. */
        wi_reset(sc);
 
-       /* Read the station address. */
+       /*
+        * Read the station address.
+        * And do it twice. I've seen PRISM-based cards that return
+        * an error when trying to read it the first time, which causes
+        * the probe to fail.
+        */
        mac.wi_type = WI_RID_MAC_NODE;
        mac.wi_len = 4;
+       wi_read_record(sc, (struct wi_ltv_gen *)&mac);
        if ((error = wi_read_record(sc, (struct wi_ltv_gen *)&mac)) != 0) {
                device_printf(dev, "mac read failed %d\n", error);
                wi_free(dev);


--- sys/i386/isa/if_wireg.save  Sat Jun  9 23:51:41 2001
+++ sys/i386/isa/if_wireg.h     Sun Jun 10 06:27:17 2001
@@ -147,7 +147,12 @@ struct wi_softc    {
 #define WI_PCI_IORES   0x1C
 
 #define WI_PCI_VENDOR_EUMITCOM         0x1638
-#define WI_PCI_DEVICE_PRISM2STA                0x1100
+#define WI_PCI_DEVICE_PRISM2STA                0x1100  /* Eumitcom PCI WL11000 */
+#define WI_PCI_VENDOR_LINKSYS          0x16AB
+#define WI_PCI_DEVICE_WDT11            0x1102  /* Linksys PCI WPC11 */
+#define WI_PCI_VENDOR_GLOBALSUN                0x16AB
+#define WI_PCI_DEVICE_GL24110P         0x1101  /* Global Sun GL24110P */
+
 #define WI_HFA384X_SWSUPPORT0_OFF      0x28
 #define WI_PRISM2STA_MAGIC             0x4A2D
 


Reply via email to