Message ID | YnuYoQIzJoFIyEJY@linutronix.de (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | iio: adc: stm32-adc: Use generic_handle_domain_irq() | expand |
On Wed, 11 May 2022 13:06:09 +0200 Sebastian Andrzej Siewior <bigeasy@linutronix.de> wrote: > The call chain > generic_handle_irq(irq_find_mapping(domain, x)); > > could be replaced with > generic_handle_domain_irq(domain, x); > > which looks up the struct irq_desc for the interrupt and handles it with > handle_irq_desc(). > This is a slight optimisation given that the driver invokes only one > function and the struct irq_desc is used directly instead being looked > up via irq_to_desc(). > > Use generic_handle_domain_irq(). > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +CC Fabrice, Fun following through the different checks in the two functions, but looks fine to me. Applied to the togreg branch of iio.git and pushed out as testing for 0-day to see if it can find any problems. Thanks, Jonathan > --- > drivers/iio/adc/stm32-adc-core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-core.c > index 1426562321575..c8fc97e52fef4 100644 > --- a/drivers/iio/adc/stm32-adc-core.c > +++ b/drivers/iio/adc/stm32-adc-core.c > @@ -356,7 +356,7 @@ static void stm32_adc_irq_handler(struct irq_desc *desc) > if ((status & priv->cfg->regs->eoc_msk[i] && > stm32_adc_eoc_enabled(priv, i)) || > (status & priv->cfg->regs->ovr_msk[i])) > - generic_handle_irq(irq_find_mapping(priv->domain, i)); > + generic_handle_domain_irq(priv->domain, i); > } > > chained_irq_exit(chip, desc);
On Sat, 14 May 2022 15:44:36 +0100 Jonathan Cameron <jic23@kernel.org> wrote: > On Wed, 11 May 2022 13:06:09 +0200 > Sebastian Andrzej Siewior <bigeasy@linutronix.de> wrote: > > > The call chain > > generic_handle_irq(irq_find_mapping(domain, x)); > > > > could be replaced with > > generic_handle_domain_irq(domain, x); > > > > which looks up the struct irq_desc for the interrupt and handles it with > > handle_irq_desc(). > > This is a slight optimisation given that the driver invokes only one > > function and the struct irq_desc is used directly instead being looked > > up via irq_to_desc(). > > > > Use generic_handle_domain_irq(). > > > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > > +CC Fabrice, > > Fun following through the different checks in the two functions, but looks fine > to me. > > Applied to the togreg branch of iio.git and pushed out as testing for > 0-day to see if it can find any problems. oops. I applied this to the fixes-togreg branch of iio.git. Will have to rebase that to drop it. Now applied to the togreg branch of iio.git Thanks, Jonathan > > Thanks, > > Jonathan > > > > --- > > drivers/iio/adc/stm32-adc-core.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-core.c > > index 1426562321575..c8fc97e52fef4 100644 > > --- a/drivers/iio/adc/stm32-adc-core.c > > +++ b/drivers/iio/adc/stm32-adc-core.c > > @@ -356,7 +356,7 @@ static void stm32_adc_irq_handler(struct irq_desc *desc) > > if ((status & priv->cfg->regs->eoc_msk[i] && > > stm32_adc_eoc_enabled(priv, i)) || > > (status & priv->cfg->regs->ovr_msk[i])) > > - generic_handle_irq(irq_find_mapping(priv->domain, i)); > > + generic_handle_domain_irq(priv->domain, i); > > } > > > > chained_irq_exit(chip, desc); >
diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-core.c index 1426562321575..c8fc97e52fef4 100644 --- a/drivers/iio/adc/stm32-adc-core.c +++ b/drivers/iio/adc/stm32-adc-core.c @@ -356,7 +356,7 @@ static void stm32_adc_irq_handler(struct irq_desc *desc) if ((status & priv->cfg->regs->eoc_msk[i] && stm32_adc_eoc_enabled(priv, i)) || (status & priv->cfg->regs->ovr_msk[i])) - generic_handle_irq(irq_find_mapping(priv->domain, i)); + generic_handle_domain_irq(priv->domain, i); } chained_irq_exit(chip, desc);
The call chain generic_handle_irq(irq_find_mapping(domain, x)); could be replaced with generic_handle_domain_irq(domain, x); which looks up the struct irq_desc for the interrupt and handles it with handle_irq_desc(). This is a slight optimisation given that the driver invokes only one function and the struct irq_desc is used directly instead being looked up via irq_to_desc(). Use generic_handle_domain_irq(). Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- drivers/iio/adc/stm32-adc-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)