diff mbox series

[v1] iio: adc: ads1119: Fix IRQ flags

Message ID 20240731140657.88265-1-francesco@dolcini.it (mailing list archive)
State Accepted
Headers show
Series [v1] iio: adc: ads1119: Fix IRQ flags | expand

Commit Message

Francesco Dolcini July 31, 2024, 2:06 p.m. UTC
From: Francesco Dolcini <francesco.dolcini@toradex.com>

Remove IRQF_TRIGGER_FALLING flag from irq request, this should come from
the platform firmware and should not be hard-coded into the driver.

Add IRQF_ONESHOT flag to the irq request, the interrupt should not be
re-activated in interrupt context, it should be done only after the
device irq handler run.

Fixes: a9306887eba4 ("iio: adc: ti-ads1119: Add driver")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
---
 drivers/iio/adc/ti-ads1119.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

João Paulo Gonçalves July 31, 2024, 2:20 p.m. UTC | #1
On Wed, Jul 31, 2024 at 04:06:57PM +0200, Francesco Dolcini wrote:
> From: Francesco Dolcini <francesco.dolcini@toradex.com>
> 
> Remove IRQF_TRIGGER_FALLING flag from irq request, this should come from
> the platform firmware and should not be hard-coded into the driver.
> 
> Add IRQF_ONESHOT flag to the irq request, the interrupt should not be
> re-activated in interrupt context, it should be done only after the
> device irq handler run.
>

Reviwed-by: João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com>
Jonathan Cameron Aug. 3, 2024, 11:21 a.m. UTC | #2
On Wed, 31 Jul 2024 11:20:16 -0300
João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com> wrote:

> On Wed, Jul 31, 2024 at 04:06:57PM +0200, Francesco Dolcini wrote:
> > From: Francesco Dolcini <francesco.dolcini@toradex.com>
> > 
> > Remove IRQF_TRIGGER_FALLING flag from irq request, this should come from
> > the platform firmware and should not be hard-coded into the driver.
> > 
> > Add IRQF_ONESHOT flag to the irq request, the interrupt should not be
> > re-activated in interrupt context, it should be done only after the
> > device irq handler run.
> >  
> 
> Reviwed-by: João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com>

For the direction, there is a risk that we will break someone who
has a firmware that isn't setting this correctly.
I don't mind doing that if we have another board that needs control
(and is setting it appropriately) though.  Is that true here, or is
this just cleanup?

If it's cleanup we tend to leave these alone (but not introduce them
into new code!)

Jonathan
Francesco Dolcini Aug. 3, 2024, 12:12 p.m. UTC | #3
Hello Jonathan,

On Sat, Aug 03, 2024 at 12:21:27PM +0100, Jonathan Cameron wrote:
> On Wed, 31 Jul 2024 11:20:16 -0300
> João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com> wrote:
> 
> > On Wed, Jul 31, 2024 at 04:06:57PM +0200, Francesco Dolcini wrote:
> > > From: Francesco Dolcini <francesco.dolcini@toradex.com>
> > > 
> > > Remove IRQF_TRIGGER_FALLING flag from irq request, this should come from
> > > the platform firmware and should not be hard-coded into the driver.
> > > 
> > > Add IRQF_ONESHOT flag to the irq request, the interrupt should not be
> > > re-activated in interrupt context, it should be done only after the
> > > device irq handler run.
> > >  
> > 
> > Reviwed-by: João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com>
> 
> For the direction, there is a risk that we will break someone who
> has a firmware that isn't setting this correctly.

> I don't mind doing that if we have another board that needs control
> (and is setting it appropriately) though.  Is that true here, or is
> this just cleanup?
> 
> If it's cleanup we tend to leave these alone (but not introduce them
> into new code!)

The driver was just introduced by me in v6.11, I assume that the only
user is a board that is not yet available in the upstream Linux kernel
(we gonna send the DT soon), with that said I am relatively confident we
are not going to break any user.

The reason for sending this patch is that we just stumbled across
a different driver that was hard-coding the IRQ flags and it was not working
for our hardware, at that moment I realized that the decision on the just
added ti-ads1119 was not the best one.

The idea of this patch is to clean this up _before_ any user is
affected.

Francesco
Jonathan Cameron Aug. 3, 2024, 3:48 p.m. UTC | #4
On Sat, 3 Aug 2024 14:12:52 +0200
Francesco Dolcini <francesco@dolcini.it> wrote:

> Hello Jonathan,
> 
> On Sat, Aug 03, 2024 at 12:21:27PM +0100, Jonathan Cameron wrote:
> > On Wed, 31 Jul 2024 11:20:16 -0300
> > João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com> wrote:
> >   
> > > On Wed, Jul 31, 2024 at 04:06:57PM +0200, Francesco Dolcini wrote:  
> > > > From: Francesco Dolcini <francesco.dolcini@toradex.com>
> > > > 
> > > > Remove IRQF_TRIGGER_FALLING flag from irq request, this should come from
> > > > the platform firmware and should not be hard-coded into the driver.
> > > > 
> > > > Add IRQF_ONESHOT flag to the irq request, the interrupt should not be
> > > > re-activated in interrupt context, it should be done only after the
> > > > device irq handler run.
> > > >    
> > > 
> > > Reviwed-by: João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com>  
> > 
> > For the direction, there is a risk that we will break someone who
> > has a firmware that isn't setting this correctly.  
> 
> > I don't mind doing that if we have another board that needs control
> > (and is setting it appropriately) though.  Is that true here, or is
> > this just cleanup?
> > 
> > If it's cleanup we tend to leave these alone (but not introduce them
> > into new code!)  
> 
> The driver was just introduced by me in v6.11, I assume that the only
> user is a board that is not yet available in the upstream Linux kernel
> (we gonna send the DT soon), with that said I am relatively confident we
> are not going to break any user.

ah! I'd missed the timeline detail completely.  Too many drivers and they
all have similar names :)

> 
> The reason for sending this patch is that we just stumbled across
> a different driver that was hard-coding the IRQ flags and it was not working
> for our hardware, at that moment I realized that the decision on the just
> added ti-ads1119 was not the best one.
> 
> The idea of this patch is to clean this up _before_ any user is
> affected.
> 
Excellent.  Applied to the fixes-togreg branch of iio.git.

Thanks,

Jonathan


> Francesco
>
diff mbox series

Patch

diff --git a/drivers/iio/adc/ti-ads1119.c b/drivers/iio/adc/ti-ads1119.c
index 630f5d5f9a60..d649980479e4 100644
--- a/drivers/iio/adc/ti-ads1119.c
+++ b/drivers/iio/adc/ti-ads1119.c
@@ -735,7 +735,7 @@  static int ads1119_probe(struct i2c_client *client)
 	if (client->irq > 0) {
 		ret = devm_request_threaded_irq(dev, client->irq,
 						ads1119_irq_handler,
-						NULL, IRQF_TRIGGER_FALLING,
+						NULL, IRQF_ONESHOT,
 						"ads1119", indio_dev);
 		if (ret)
 			return dev_err_probe(dev, ret,