Message ID | 20190916135630.2211714-4-sean@geanix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v10,1/5] iio: imu: st_lsm6dsx: move interrupt thread to core | expand |
On Mon, 16 Sep 2019 15:56:29 +0200 Sean Nyekjaer <sean@geanix.com> wrote: > The interrupt source can come from multiple sources, > fifo and wake interrupts. > Enter interrupt thread to check which interrupt that has fired. > > Signed-off-by: Sean Nyekjaer <sean@geanix.com> Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. thanks, Jonathan > --- > Changes since v8: > * Remove st_lsm6dsx_handler_irq function to enter interrupt thread > at every interrupt > > Changes since v9: > * None > > drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > > diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c > index a7f12cf57f11..6b03c50f4732 100644 > --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c > +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c > @@ -1715,13 +1715,6 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw, > return iio_dev; > } > > -static irqreturn_t st_lsm6dsx_handler_irq(int irq, void *private) > -{ > - struct st_lsm6dsx_hw *hw = private; > - > - return hw->sip > 0 ? IRQ_WAKE_THREAD : IRQ_NONE; > -} > - > static irqreturn_t st_lsm6dsx_handler_thread(int irq, void *private) > { > struct st_lsm6dsx_hw *hw = private; > @@ -1779,7 +1772,7 @@ static int st_lsm6dsx_irq_setup(struct st_lsm6dsx_hw *hw) > } > > err = devm_request_threaded_irq(hw->dev, hw->irq, > - st_lsm6dsx_handler_irq, > + NULL, > st_lsm6dsx_handler_thread, > irq_type | IRQF_ONESHOT, > "lsm6dsx", hw);
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c index a7f12cf57f11..6b03c50f4732 100644 --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c @@ -1715,13 +1715,6 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw, return iio_dev; } -static irqreturn_t st_lsm6dsx_handler_irq(int irq, void *private) -{ - struct st_lsm6dsx_hw *hw = private; - - return hw->sip > 0 ? IRQ_WAKE_THREAD : IRQ_NONE; -} - static irqreturn_t st_lsm6dsx_handler_thread(int irq, void *private) { struct st_lsm6dsx_hw *hw = private; @@ -1779,7 +1772,7 @@ static int st_lsm6dsx_irq_setup(struct st_lsm6dsx_hw *hw) } err = devm_request_threaded_irq(hw->dev, hw->irq, - st_lsm6dsx_handler_irq, + NULL, st_lsm6dsx_handler_thread, irq_type | IRQF_ONESHOT, "lsm6dsx", hw);
The interrupt source can come from multiple sources, fifo and wake interrupts. Enter interrupt thread to check which interrupt that has fired. Signed-off-by: Sean Nyekjaer <sean@geanix.com> --- Changes since v8: * Remove st_lsm6dsx_handler_irq function to enter interrupt thread at every interrupt Changes since v9: * None drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)