Bug 63432

Summary: wvlan_cs: D-Link Air DWL-650 stops being recognized after being used in WinXP.
Product: [Retired] Red Hat Linux Reporter: Aleksey Nogin <aleksey>
Component: kernelAssignee: Arjan van de Ven <arjanv>
Status: CLOSED RAWHIDE QA Contact: Brian Brock <bbrock>
Severity: high Docs Contact:
Priority: medium    
Version: 7.2   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-04-13 19:25:15 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Aleksey Nogin 2002-04-13 19:25:09 UTC
I have a D-Link Air DWL-650 wireless card and I've been succesfully using is
with RH7.2 (up to kernel-2.4.9-31) without any problems. A few weeks ago I
loaned it to a friend to use with WinXP. To my surprise, after he gave it back
to me, it would no longer work properly! Specifically, it would no longer let me
set essid in ad-hoc mode. I have noticed that the kernel log messages started
reporting different firmware vendor number and after updating the driver to
recognize the new number, I managed to get it working again.

Kernel messages before WinXP (unpatched kernel-2.4.9-31):

Mar 22 10:25:20 Clementine cardmgr[875]: initializing socket 0
Mar 22 10:25:20 Clementine cardmgr[875]: socket 0: Intersil PRISM2 11 Mbps
Wireless Adapter
Mar 22 10:25:20 Clementine cardmgr[875]: executing: 'modprobe wvlan_cs'
Mar 22 10:25:20 Clementine kernel: wvlan_cs: WaveLAN/IEEE PCMCIA driver v1.0.6
Mar 22 10:25:20 Clementine kernel: wvlan_cs: (c) Andreas Neuhaus
<andy.de>
Mar 22 10:25:20 Clementine kernel: wvlan_cs: index 0x01: Vcc 3.3, irq 3, io
0x0100-0x013f
Mar 22 10:25:20 Clementine cardmgr[875]: executing: './network start eth1'
Mar 22 10:25:20 Clementine kernel: wvlan_cs: Registered netdevice eth1
Mar 22 10:25:20 Clementine kernel: wvlan_cs: MAC address on eth1 is 00 05 5d f1
c3 b0
Mar 22 10:25:20 Clementine kernel: wvlan_cs: This is a PrismII card, not a
Wavelan IEEE card :-(
Mar 22 10:25:20 Clementine kernel: You may want report firmare revision (0x8)
and what the card support.
Mar 22 10:25:20 Clementine kernel: I will try to make it work, but you should
look for a better driver.
Mar 22 10:25:20 Clementine kernel: wvlan_cs: Found firmware 0x8 (vendor 2) -
Firmware capabilities : 1-0-0-0-1
Mar 22 10:25:20 Clementine kernel: wvlan_cs: MAC address on eth1 is 00 05 5d f1
c3 b0
Mar 22 10:25:20 Clementine kernel: wvlan_cs: This is a PrismII card, not a
Wavelan IEEE card :-(
Mar 22 10:25:20 Clementine kernel: You may want report firmare revision (0x8)
and what the card support.
Mar 22 10:25:20 Clementine kernel: I will try to make it work, but you should
look for a better driver.
Mar 22 10:25:20 Clementine kernel: wvlan_cs: Found firmware 0x8 (vendor 2) -
Firmware capabilities : 1-0-0-0-1
Mar 22 10:25:20 Clementine kernel: wvlan_cs: Valid channels: 1 2 3 4 5 6 7 8 9 10 11
Mar 22 10:25:21 Clementine /etc/hotplug/net.agent: invoke ifup eth1

Kernel messages after card was used in WinXP (unpatched kernel-2.4.9-31):

Mar 29 19:57:50 Clementine cardmgr[875]: initializing socket 0
Mar 29 19:57:50 Clementine cardmgr[875]: socket 0: Intersil PRISM2 11 Mbps
Wireless Adapter
Mar 29 19:57:50 Clementine cardmgr[875]: executing: 'modprobe wvlan_cs'
Mar 29 19:57:50 Clementine kernel: wvlan_cs: WaveLAN/IEEE PCMCIA driver v1.0.6
Mar 29 19:57:50 Clementine kernel: wvlan_cs: (c) Andreas Neuhaus
<andy.de>
Mar 29 19:57:50 Clementine kernel: wvlan_cs: index 0x01: Vcc 3.3, irq 3, io
0x0100-0x013f
Mar29 19:57:50 Clementine cardmgr[875]: executing: './network start eth1'
Mar 29 19:57:50 Clementine kernel: wvlan_cs: Registered netdevice eth1
Mar 29 19:57:50 Clementine kernel: wvlan_cs: MAC address on eth1 is 00 05 5d f1
c3 b0
Mar 29 19:57:50 Clementine kernel: wvlan_cs: Unrecognised card, card return
vendor = 0x0004, please report...
Mar 29 19:57:50 Clementine kernel: wvlan_cs: Found firmware 0x10003 (vendor 4) -
Firmware capabilities : 0-0-0-0-0
Mar 29 19:57:51 Clementine kernel: wvlan_cs: MAC address on eth1 is 00 05 5d f1
c3 b0
Mar 29 19:57:51 Clementine kernel: wvlan_cs: Unrecognised card, card return
vendor = 0x0004, please report...
Mar 29 19:57:51 Clementine kernel: wvlan_cs: Found firmware 0x10003 (vendor 4) -
Firmware capabilities : 0-0-0-0-0
Mar 29 19:57:51 Clementine kernel: wvlan_cs: This firmware doesn't support
``port_type=3'', please use iwconfig.
Mar 29 19:57:51 Clementine kernel: wvlan_cs: Initialization failed!
Mar 29 19:57:51 Clementine /etc/hotplug/net.agent: invoke ifup eth1

I made the following change to wvlan_cs.c:

--- wvlan_cs.c.orig     Tue Feb 26 05:50:48 2002
+++ wvlan_cs.c  Sat Mar 30 13:00:08 2002
@@ -1077,6 +1077,7 @@
                        /* Tested CableTron 4.32 - Anton */
                        break;
                case 0x2:
+               case 0x4:
                case 0x6:
                        /* This is a PrismII card. It is is *very* similar
                         * to the Lucent, and the driver work 95%,

Kernel messages after that:

Mar 30 14:10:06 Clementine cardmgr[874]: initializing socket 0
Mar 30 14:10:06 Clementine cardmgr[874]: socket 0: Intersil PRISM2 11 Mbps
Wireless Adapter
Mar 30 14:10:06 Clementine cardmgr[874]: executing: 'modprobe wvlan_cs'
Mar 30 14:10:06 Clementine kernel: wvlan_cs: WaveLAN/IEEE PCMCIA driver v1.0.6
Mar 30 14:10:06 Clementine kernel: wvlan_cs: (c) Andreas Neuhaus
<andy.de>
Mar 30 14:10:06 Clementine kernel: wvlan_cs: index 0x01: Vcc 3.3, irq 3, io
0x0100-0x013f
Mar 30 14:10:06 Clementine kernel: wvlan_cs: Registered netdevice eth1
Mar 30 14:10:06 Clementine kernel: wvlan_cs: MAC address on eth1 is 00 05 5d f1
c3 b0
Mar 30 14:10:06 Clementine kernel: wvlan_cs: This is a PrismII card, not a
Wavelan IEEE card :-(
Mar 30 14:10:06 Clementine kernel: You may want report firmare revision
(0x10003) and what the card support.
Mar 30 14:10:06 Clementine kernel: I will try to make it work, but you should
look for a better driver.
Mar 30 14:10:06 Clementine kernel: wvlan_cs: Found firmware 0x10003 (vendor 4) -
Firmware capabilities : 1-0-0-0-1
Mar 30 14:10:06 Clementine cardmgr[874]: executing: './network start eth1'
Mar 30 14:10:07 Clementine kernel: wvlan_cs: MAC address on eth1 is 00 05 5d f1
c3 b0
Mar 30 14:10:07 Clementine kernel: wvlan_cs: This is a PrismII card, not a
Wavelan IEEE card :-(
Mar 30 14:10:07 Clementine kernel: You may want report firmare revision
(0x10003) and what the card support.
Mar 30 14:10:07 Clementine kernel: I will try to make it work, but you should
look for a better driver.
Mar 30 14:10:07 Clementine kernel: wvlan_cs: Found firmware 0x10003 (vendor 4) -
Firmware capabilities : 1-0-0-0-1
Mar 30 14:10:07 Clementine kernel: wvlan_cs: Valid channels: 1 2 3 4 5 6 7 8 9 10 11
Mar 30 14:10:07 Clementine /etc/hotplug/net.agent: invoke ifup eth1

"cardctl ident" currently (e.g. after WinXP) shows:

Socket 0:
  product info: "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02", ""
  manfid: 0x0156, 0x0002
  function: 6 (network)

P.S. See also bug 56973 that I filed on this "This is a PrismII card, not a
Wavelan IEEE card :-(" warning.

Comment 1 Arjan van de Ven 2002-04-14 13:15:16 UTC
ok patch added; thanks

Comment 2 Aleksey Nogin 2002-04-14 15:10:40 UTC
Are you sure that just applying my patch is sufficient? Sure, this patch is a
workaround, but it just assumes that the card indeed has "Firmware capabilities
: 1-0-0-0-1" and while this is definitely a better guess than "0-0-0-0-0", is it
the right one?

Anyway, this is not really my machine and my card, so I can not test it much,
but as soon as I get a chance, I'll let you know how it works with rawhide
kernels, what happens if I use the orinoco driver instead, etc.

Comment 3 Wade Minter 2002-04-17 02:13:55 UTC
I've got the same card and the same problems, so I can test the fixes.