iio: imu: st_lsm6dsx: always enter interrupt thread
authorSean Nyekjaer <sean@geanix.com>
Mon, 16 Sep 2019 13:56:29 +0000 (15:56 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 5 Oct 2019 11:36:54 +0000 (12:36 +0100)
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>
Reviewed-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c

index dcac131..26acc85 100644 (file)
@@ -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);