Hi everyone,
I try to porting Libertas driver of linux (http://linuxwireless.org/en/
users/Drivers/libertas) last week.
After several days working , the driver work now (2.6.26 with muru
patch).
But the performance of driver is bad. The ping RTT is ~25ms , and the
ftp throughput below 100KB/s.
I know the key problem of performance is SDIO card interrupt is not
supported by current omap
mmc host implementation (2.6.26).
I try to modify the host driver to support SDIO irq.
But the card interrupt never occur after the new initialize code to
enable SDIO card interrupt.
According the MMC/SD/SDIO manual of OMAP35X (sprfd2d.pdf) page
28,29.
I modified the host driver at following part mail. But that don't work
now.
Do anyone have OMAP3430/OMAP3530 for WinCE BSP could provide the
exmaple to enable/disable/handle
SDIO card interrupt or provide any workable patch for my experiment ?
Thanks for your advice.
Claud Yu
-------------- Enable/Disable SDIO function ------------------
#define CIRQ_ENABLE (1<<8)
static void omap_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable)
{
struct mmc_omap_host *host = mmc_priv(mmc);
unsigned long flags;
u32 reg;
reg = INT_EN_MASK;
reg &= ~CIRQ_ENABLE;
if (enable)
reg |= CIRQ_ENABLE;
OMAP_HSMMC_WRITE(host->base, ISE, reg);
OMAP_HSMMC_WRITE(host->base, IE, reg);
mmiowb();
}
-------------- Handle code of static irqreturn_t mmc_omap_irq