WLAN Horrible Roaming Performance (N800, OS2008), Software or Hardware Problem ?

Frantisek Dufka dufkaf at seznam.cz
Fri Feb 22 13:39:21 EET 2008


Kalle Valo wrote:
> "ext Siarhei Siamashka" <siarhei.siamashka at gmail.com> writes:
> 
>> A while ago I looked for various kernel docs to see what's happening in the
>> wlan driver and what can be done to reduce cpu load. My impression was that
>> tasklet can be only preempted by hardware interrupts, so it is impossible to

Thanks for enlightement to both of you, that was the part I was missing.

>> sleep in it and give cpu resources to userland applications. If that is true,
>> no matter if n800 driver looks nicer, it must end up busylooping too.
> 
> Nope, on N800 cx3110x and omap2_mcspi do not busyloop during the DMA
> transfer. They use workqueues to allow sleeping, and completions for
> signalling.
> 

How is it so when you cannot sleep inside cx3110x_spi_dma_read and 
cx3110x_spi_dma_write? There appears to be same code for N800 too just 
the body of those functions does not use McBSP but SPI API:

spi_message_add_tail(&t[1], &m); 

spi_sync(lp->spi_device, &m); 


Does it mean we can wrap McBSP usage into similar api and leave cx3110x 
otherwise alone without restructuring it?

But still I don't get it, either spi_sync bysyloops or the semantics of 
cx3110x_spi_dma_write changed and it can return when the transfer is not 
yet done (??).

Frantisek

BTW, let's remove maemo-developers at maemo.org and move just to 
cx3110x-devel at garage.maemo.org



More information about the cx3110x-devel mailing list