Date: Tue, 07 Aug 2001 15:38:36 -0400 From: "Eric M. Johnston" <emj@postal.net> To: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: Re: Linksys WDT11/WPC11 Combo Message-ID: <3B7043BC.39926AD8@postal.net> References: <3B6DF2F2.9080302@nettek-llc.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
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 majordomo@FreeBSD.org
> with "unsubscribe freebsd-hackers" in the body of the message
[-- Attachment #2 --]
--- 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B7043BC.39926AD8>
