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