[PATCH] DWL-650P + PLX really works

Pavel Roskin proski at gnu.org
Wed Jan 21 19:27:34 EST 2004


Hello!

Finally I have DWL-650P working for real as an access point.  I can
actually transmit the data.  At the moment it only works in the PLX
adapter.  The problem was timing related.  The delay in
prism2_plx_cor_sreset() was insufficient.

prism2_enable_genesis() calls local->func->cor_sreset and then writes 4
bytes to 0x7e0038 using hfa384x_to_aux().  Since prism2_plx_cor_sreset()
exits before the reset is complete, something wrong happens when that data
is written.  The result is the continuous messages in the kernel log:

wifi0: Command completion event, but no pending commands

It turns out the time actually needed after unsetting the COR_SRESET bit
at the end of prism2_plx_cor_sreset() is about 1020 microseconds, just 2%
more than the currently used 1 millisecond.  I think we shouldn't be so
greedy.  It's just microseconds.  The patch increases all delays to 2
milliseconds.

Also, the patch adds the ID of DWL-650 rev. P to the table of known IDs.
It's quite reasonable.  Some PLX based adapters are sold separately, and
users may expect them to work with their wireless cards.  (Maybe we'll
have a flag in that table to set no_primary automatically, but it will be
the next step.)

Now I'm going to try to make DWL-650P work in the TI socket.  Maybe it's a
timing issue as well.

-- 
Regards,
Pavel Roskin



More information about the HostAP mailing list