Re: sdhci : reduce irq off latency

2010-08-30 Thread Matthieu CASTET
Hi Chris, Chris Ball a écrit : Hi Matthieu, This patch didn't make it upstream. Kyungmin offered a suggestion for fixing it -- would you like to resend an updated patch? It seems http://marc.info/?l=linux-kernel&m=127911287108683&w=2 (http://marc.info/?a=127137055700010&r=1&w=2) is a better

Re: sdhci : reduce irq off latency

2010-08-27 Thread Chris Ball
Hi Matthieu, This patch didn't make it upstream. Kyungmin offered a suggestion for fixing it -- would you like to resend an updated patch? (As a minor aside, I have a fairly irrational preference for "time_after(jiffies, timeout)" over "time_is_before_jiffies(timeout)", because the latter read

Re: sdhci : reduce irq off latency

2010-06-18 Thread Kyungmin Park
The main problem is sdhci_send_command function. it loops at while function infinitely. I just modify it to use udelay at there. then it's working well. also I reduce the granularity as 1 usec instead of 10 usec (as you suggested). it's also works. Thank you, Kyungmin Park On Fri, Jun 18, 2010 a

Re: sdhci : reduce irq off latency

2010-06-18 Thread Matthieu CASTET
Hi, Thanks you for the test. here a new version of the patch. It doesn't replace mdelay with jiffies anymore. It changes mdelay to udelay (the granularity of 1 ms becomes 10 us). I didn't mesure irq off latency with this patch. Matthieu Kyungmin Park a écrit : Hi, Not good news. This pat

Re: sdhci : reduce irq off latency

2010-06-17 Thread Kyungmin Park
Hi, Not good news. This patch make a hang at probe time. it's tested against commit 7e27d6e778cd87b6f2415515d7127eba53fe5d02 Author: Linus Torvalds Date: Fri Jun 11 19:14:04 2010 -0700 Linux 2.6.35-rc3 Thank you, Kyungmin Park On Thu, Jun 17, 2010 at 6:07 PM, Matthieu CASTET wrote: > sd

sdhci : reduce irq off latency

2010-06-17 Thread Matthieu CASTET
sdhci code got tasklets (sdhci_tasklet_card and sdhci_tasklet_finish), that does : { spin_lock_irqsave if (cond) { sdhci_reset sdhci_reset } spin_unlock_irqrestore } sdhci_reset { ... while (read_reg) { if (timeout == 0) break; timeout--; mdelay(1); } ... } The problem is that sdhci_reset