Messages in this thread | | | Date | Thu, 17 Sep 2015 18:48:11 +0900 | Subject | Re: [PATCH] genirq: Fix bad IRQ_ONSHOT in forced IRQ setting | From | Kohji Okuno <> |
| |
From: Kohji Okuno <okuno.kohji@jp.panasonic.com> Date: Thu, 17 Sep 2015 17:21:08 +0900 >> On Thu, 17 Sep 2015, Kohji Okuno wrote: >>> If handler and thread_fn have valid function pointers for each >>> in request_thread_irq(), IRQF_ONESHOT is set unnecessarily in >>> irq_setup_forces_threading() in case of threadirqs. >>> As this result, the IRQ handler will not be called. >> >> That explanation does not make sense. Which handler is not called? >> >> Thanks, >> >> tglx > > Hi tglx, > > Please refer to drivers/mmc/host/sdhci.c. sdhci uses sdhci_irq and > sdhci_thread_irq as the followings. > > 3366 sdhci_init(host, 0); > 3367 > 3368 ret = request_threaded_irq(host->irq, sdhci_irq, sdhci_thread_irq, > 3369 IRQF_SHARED, mmc_hostname(mmc), host); > > When I tested SDIO card, sdhci_irq() was not called after 1st SDIO interrupt. > After I applied my patch, this worked good. > > Best regards, > Kohji Okuno
Hi tglx,
When 1st sdio IRQ is happend, sdhci_irq() returns IRQ_WAKE_THREAD. After this, sdhci_irq() is not called in case of threadirqs.
Best regards, Kohji Okuno
| |