>On our SPARC platforms, it is dealt with entirely in hardware and low
>level platform firmware.  Most miniPCI adapters have a special pin on
>them that can be tied to an RF button, and they usually do something
>sensible with it.  So with miniPCI it is *almost* automatic.  The
>problem is that on x86 hardware there is often ACPI getting in the way.
>  
>
understood.

>Does the new code properly ensure that overlapping accesses to buffer
>paths 0 and 1 are not used on miniPCI hardware?  There is a known errata
>in miniPCI where overlapping accesses to channels 0 and 1 can cause a
>hardware hang.  The only software workaround is to guarantee a minimum
>delay between accesses to paths, or restrict accesses to only a single
>path.  (I chose the latter approach.)
>
>  
>
I have not noticed it yet.I did not suffer with hardware hang due to the 
errata.
Just as the pcwl driver, channel 0 and 1 is separately used as cmd and 
data path.

>What about firmware updates?  There are problems with PRISM devices that
>are fixed with firmware updates, and some newer PRISM devices (PRISM 3)
>_require_ a RAM firmware upload, because they lack sufficient flash
>memory to hold the run-time firmware image ("secondary firmware" in
>Intersil parlance) on device.
>
>  
>
that driver doesn't support firmware update.

>I would like to get a copy of the code if possible. 
>
surely. I will post it on opensolaris soon.

> I may be able to
>review it for known problems and send any appropriate fixes.
>  
>
thanks.

>  
>
> Right. Thou shalt not block/sleep in STREAMs routines (including all
>
>GLD entry points) other than open and close.  (Sleep in DDI
>attach/detach is OK, of course.)
>  
>
Yes.

>This isn't the only driver that makes this mistake, and it will rarely
>cause a problem, but it should be fixed.
>
>  
>
I develop&debug realtek wifi driver recently and encounter such a deadlock.
since 'scan' is not invoked frequently, I use a spin wait--drv_usecwait().

>Because of all of these complications, I found it much easier in my code
>to split the scanning logic into two ioctls.  The first ioctl asked the
>hardware to initiate a scan.  The 2nd ioctl reads the results.
>
>  
>
wificonfig split the scan logic into two ioctls as you said. so the driver
can also fulfil it.

Thanks,
Brian

Reply via email to