This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SDIO IRQ mode for hsmmc driver

Other Parts Discussed in Thread: DM3730

Hi,

I'm working with a DM3730 based board quite similar to beagleboard xM with a Marvell 88W8686 connected in SDIO mode (4 bits)

I'm using a Linux kernel 3.0.47 and it seems the SDIO IRQ mode is not supported in omap_hsmmc driver (neither in newer kernels).

The WLAN performances are so quite poor : about 1MBit/s with 40% CPU usage.

However, I found some patches like this one :

http://article.gmane.org/gmane.linux.kernel.mmc/967/match=

or this one :

http://lists.goldelico.com/pipermail/gta04-owner/2012-June/002484.html

They improve behavior if we monitor CPU usage but not performance : From 1MBit/s with 40% CPU used to 820kbit/s with less than 1% CPU use.

Is there any work on this issue from TI team ?

Is someone successfully use a SDIO WLAN chip on OMAP35xx ?

Regards,

Martin

  • Hi Martin,

    It seem that after applying the patch the throughput of the WLAN is decreased  insignificantly. It may be due to some signal fluctuations, but the cpu usage is optimized.

    I'll check what is the possible maximum of throughput of the WLAN on beagleboard xm.

    BR

    Tsvetolin Shulev

  • Hi Tsvetolin,

    I've forgotten a little additional patch needed in sdio_irq.c (mmc core layer) :

    In sdio_irq_thread, I've modified default wait period for next irq.

    It was initially set to MAX_SCHEDULE_TIMEOUT in SDIO irq mode but I've encountered timeout issues with this timeout so I've set it to 10ms.

    Yesterday, I've tried to set it to 1 jiffie and throughput was significantly improved.

    Here are now my test results :

    1,5 Mbps Up and 3 Mbps down (with less than 1% CPU usage again)

    Impact of this timeout on throughput make me think that some IRQs are "missed" and there is still some polling.

    Ideally, this timeout should not be used as it is an interruptible timeout (interruptible by SDIO irq).

    I'm so looking for what is "locking" this IRQ.

    I've yet disabled all Power management and autoidle code without any impovement ...

    Regarding throughputs, my goal is to reproduce Phaneendra's results : 13Mbps (Downlink), 10.5 Mbps(Uplink)

    http://article.gmane.org/gmane.linux.kernel.mmc/967

    In any ways, my present results improve bandwith and CPU usage using Wlan chips (and hopefully, all "SDIO irq" able chips). I so suggest to OMAP Linux Team to integrate this patch in mainline.

    If you can give me a contact, I can try to clean up this first patch and send it.

    BR,

    Martin