John Rigby wrote:
All,
Sorry for the delay, I have been without internet access until just now.
I added the cptl bit and I don't get continuous cirqs anymore.
Right now I have a hacked driver that still does timed polling in sdio_irq.c
and also wakes up on cirq. With this config the libertas works well. A
flood ping of 1000 packets loses 2. Previously it was dropping about 30% of
the packets from a flood ping.
Great!! :)
Without the polling in sdio_irq.c I get timeouts in libertas driver so I
suspect that we may need to add checks of the DAT1 line in other places like
the davinci driver does. As I said before, my kernel is a few months old so
my issues may not be the same as current head of tree.
Do you like to send your changes anyway? Just for reference...
Thanks to all who helped on this.
Now, the job will be to do this with recent kernel, make it stable and
in the mid term get it applied.
Anybody likes to help with this?
Many thanks and best regards
Dirk
On Mon, Oct 19, 2009 at 11:24 AM, Madhusudhan <madhu.cr@xxxxxx> wrote:
Hi John,
So does the SDIO card interrupt mode work fine now?
Regards,
Madhu
------------------------------
*From:* John Rigby [mailto:jcrigby@xxxxxxxxx]
*Sent:* Sunday, October 18, 2009 7:24 PM
*To:* Woodruff, Richard
*Cc:* Dirk Behme; Chikkature Rajashekar, Madhusudhan;
linux-mmc@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; Steve Sakoman
*Subject:* Re: MMC_CAP_SDIO_IRQ for omap 3430
Ok I was going to ask where you found that but I just rechecked the TRM and
there it is in plain site:
When this bit is set to 1, the host controller automatically disables all
the input buffers except the buffer of mmci_dat[1] outside of a transaction
in order to detect asynchronous card interrupt on mmci_dat[1] line and
minimize the leakage current of the buffers.
In my defence, I did search the TRM for every occurance of dat1 but not
dat[1]. Oh well live and learn and forget and repeat.
John
On Sun, Oct 18, 2009 at 6:17 PM, John Rigby <jcrigby@xxxxxxxxx> wrote:
Richard,
MMCHS_CON.CPTL = 1 < Don't disable input buffer on DAT1 after
completion to allow seeing SDIO interrupt>
Sounds exactly like what we need.
Thanks
John
On Sun, Oct 18, 2009 at 5:12 PM, Woodruff, Richard <r-woodruff2@xxxxxx>
wrote:
From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap-
owner@xxxxxxxxxxxxxxx] On Behalf Of Dirk Behme
Sent: Sunday, October 18, 2009 11:45 AM
It would be funny if the TRM was wrong and the CIRQ bit is really
cleared by writing 1 to it. I'll try that.
A while back I hunted down a few of the bits for this. Maybe this will
help some.
SYSCONFIG.ENAWAKEUP = 1 < allow ocp wrapper to generate an interrupt to
prcm>
MMCHS_HCTL.IWE = 1 < route wake up to module ocp wrapper>
MMCHS_CON.CPTL = 1 < Don't disable input buffer on DAT1 after
completion to allow seeing SDIO interrupt>
MMCHS_HCTL.IWE
MMCHS_ISE.CIRQ_ENABLE <bit to write to enable interrupt at pin>
MMCHS_STAT<bit to write for clear of SDIO interrupt>
CCCCR - IRQ_ENABLE (think host stack will do this)
Regards,
Richard W.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html