DWL 520

Pavel Roskin proski at gnu.org
Fri Dec 12 15:32:59 EST 2003


On Fri, 12 Dec 2003, mrcool at stupidgamerz.com wrote:

> Well, after an hour on the phone to dlink... and 3 diff techs... one
> finally came on and answered my question... according to him the
> revision E1 DWL 520 is a prism2.5.  Can anyone confirm this...  I
> thought maybe the card was defective, as both the hostap and orinoco_pci
> drivers detect it as a prism but wont initialize it.

Yes, that's a good argument.  The card must have vendor ID of
Intersil or Samsung to be recognized.  The later is unlikely, so we are
left with Intersil.

> And the Win98 machine i had handy crashed when it tried to load the
> driver (although it may have other issues not related that could cause
> that).  This XP machine loads the driver fine, and the card works fine
> in it, so I guess the card is physically fine.  Does anyone have any
> more info on the "DWL 520 rev. E1" card? (perhaps it has a weird
> propriatary firmware on it?)

Google is your friend.  The same problem was reported here just days ago:
http://lists.shmoo.com/pipermail/hostap/2003-December/004880.html

You can test the attached patch.  It preserves the COR register instead of
overwriting it.  Also, you can replace "HFA384X_INB(HFA384X_PCICOR_OFF)"
in the patch with 0x45 - that's the value used in linux-wlan-ng.

You could further tweak prism2_pci_cor_sreset function in
driver/modules/hostap_pci.c, maybe add longer delays or comment it out.
And you could try linux-wlan-ng driver too just in case.

-- 
Regards,
Pavel Roskin
-------------- next part --------------
--- driver/modules/hostap_pci.c
+++ driver/modules/hostap_pci.c
@@ -190,9 +190,13 @@ static void prism2_pci_cor_sreset(local_
 
 #else /* PRISM2_PCI_USE_LONG_DELAYS */
 
-	HFA384X_OUTW(0x0080, HFA384X_PCICOR_OFF);
+	u16 reg;
+
+	reg = HFA384X_INB(HFA384X_PCICOR_OFF);
+	printk(KERN_INFO "%s: Original COR value: 0x%0x\n", dev->name, reg);
+	HFA384X_OUTW(reg | 0x0080, HFA384X_PCICOR_OFF);
 	mdelay(1);
-	HFA384X_OUTW(0x0, HFA384X_PCICOR_OFF);
+	HFA384X_OUTW(reg & ~0x0080, HFA384X_PCICOR_OFF);
 	mdelay(1);
 
 #endif /* PRISM2_PCI_USE_LONG_DELAYS */


More information about the HostAP mailing list