Hi,<br><br> I've been having trouble with the hostap_cs driver on kernel <a href="http://2.6.19.2">2.6.19.2</a>. I'm using a D-Link 650 rev P, which needs its firmware loaded in volatile RAM. The card has worked with earlier kernel versions (I seem to remember being able to get the card recognized correctly with the default Ubuntu kernel. I've since switched back to Debian
3.1. I've shut down the pcmcia service and am manually inserting modules - should this be a problem?) <br><br> I had found a thread on this list (2006-December/014795.html) about adding the manufacturer information for this card to the hostap_cs.c file, which I did (that change should be in the attached patch. - I replaced an existing entry, rather than added a new one...)
<br><br>When I modprobe hostap_cs, after the <br><br>hostap_cs: 0.4.4 (Jouni.....)<br>hostap_cs: Registered netdevice wifi0<br>hostap_cs: index 0x0: , irq 3, io 0xe100-0xe17f<br>hostap_cs: first command failed - assuming card does not have primary firmware
<br><br>messages, the system hangs until I pull the card, at which point I get:<br><br>prism2_hw_init: initialized in 0 ms<br>wifi0: prism2_enable_aux_port - timeout - reg=0xffff<br>
wifi0: prism2_enable_aux_port - timeout - reg=0xffff<br>
SWSUPPORT0 write/read failed: FFFF != 8A32<br>hostap_cs: Initialization failed<br>hostap_cs: probe of 0.0 failed with error 1<br><br>and, although a single shell prompt is printed, the system hangs.<br><br>What I believe to be happening is that in prism2_hw_init in hostap_hw.c, around line 1332:
<br><br>start = jiffies;<br>delay = jiffies + HFA384X_INIT_TIMEOUT;<br>while (!(HFA384X_INW(HFA384X_EVSTAT_OFF) & HFA384X_EV_CMD) &&<br> time_before(jiffies, delay))<br> yield();<br>
<br>the loop never exits because jiffies isn't updating. I think that this loop is supposed to time out since my card doesn't have the firmware loaded yet. After making the changes in the attached patch (just prink-ing the jiffies value every iteration through the loop), this seems to be the case. Although I'm not sure about the details, I've read in a couple of places that yield() shouldn't be used in favor of other, more specific functions. Perhaps that's the problem?
<br><br>Thanks a lot, <br><br>Andrew Shaffer<br><a href="mailto:aeshaffer@gmail.com">aeshaffer@gmail.com</a><br>