On Thu, 5 Sep 2019 at 01:58, Matthias Kaehlcke <mka@xxxxxxxxxxxx> wrote: > > Hi Ulf, > > On Tue, Sep 03, 2019 at 04:21:57PM +0200, Ulf Hansson wrote: > > To avoid each host driver supporting SDIO IRQs, from keeping track > > internally about if SDIO IRQs has been enabled, let's introduce a common > > helper function, sdio_irq_enabled(). > > > > The function returns true if SDIO IRQs are enabled, via using the > > information about the number of claimed irqs. This is safe, even without > > any locks, as long as the helper function is called only from > > runtime/system suspend callbacks of the host driver. > > > > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > > --- > > include/linux/mmc/host.h | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h > > index 4a351cb7f20f..0c0a565c7ff1 100644 > > --- a/include/linux/mmc/host.h > > +++ b/include/linux/mmc/host.h > > @@ -493,6 +493,15 @@ void mmc_command_done(struct mmc_host *host, struct mmc_request *mrq); > > > > void mmc_cqe_request_done(struct mmc_host *host, struct mmc_request *mrq); > > > > +/* > > + * May be called from host driver's system/runtime suspend/resume callbacks, > > + * to know if SDIO IRQs has been enabled. > > +*/ > > +static inline bool sdio_irq_enabled(struct mmc_host *host) > > +{ > > + return host->sdio_irqs > 0; > > +} > > + > > The name of the function is a bit misleadling, since it indicates > if SDIO IRQs should be enabled, not whether they are actually enabled > by the host. The resulting code can look a bit confusing to the > uninstructed reader: > > if (sdio_irq_enabled(host->slot->mmc)) > __dw_mci_enable_sdio_irq(host->slot, 1); > > aka 'if SDIO IRQ is enabled, enable SDIO IRQ'. > > sdio_irqs_claimed() could be a possible alternative. > > No biggie though, just something I noticed. Thanks for the suggestions. It makes perfect sense to me, let me rename it. Kind regards Uffe