lkml.org 
[lkml]   [2021]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 11/16] iio: adc: max1027: Separate the IRQ handler from the read logic
    Date
    Create a max1027_read_scan() helper which will make clearer the future IRQ
    handler updates (no functional change).

    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    ---
    drivers/iio/adc/max1027.c | 23 +++++++++++++++++++----
    1 file changed, 19 insertions(+), 4 deletions(-)

    diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c
    index c7663e5dd38a..a044f4b598e0 100644
    --- a/drivers/iio/adc/max1027.c
    +++ b/drivers/iio/adc/max1027.c
    @@ -439,22 +439,37 @@ static int max1027_set_cnvst_trigger_state(struct iio_trigger *trig, bool state)
    return 0;
    }

    -static irqreturn_t max1027_trigger_handler(int irq, void *private)
    +static int max1027_read_scan(struct iio_dev *indio_dev)
    {
    - struct iio_poll_func *pf = private;
    - struct iio_dev *indio_dev = pf->indio_dev;
    struct max1027_state *st = iio_priv(indio_dev);
    unsigned int scanned_chans;
    + int ret;

    scanned_chans = fls(*indio_dev->active_scan_mask) - 1;
    if (*indio_dev->active_scan_mask & MAX1X27_SCAN_MASK_TEMP)
    scanned_chans++;

    /* fill buffer with all channel */
    - spi_read(st->spi, st->buffer, scanned_chans * 2);
    + ret = spi_read(st->spi, st->buffer, scanned_chans * 2);
    + if (ret < 0)
    + return ret;

    iio_push_to_buffers(indio_dev, st->buffer);

    + return 0;
    +}
    +
    +static irqreturn_t max1027_trigger_handler(int irq, void *private)
    +{
    + struct iio_poll_func *pf = private;
    + struct iio_dev *indio_dev = pf->indio_dev;
    + int ret;
    +
    + ret = max1027_read_scan(indio_dev);
    + if (ret)
    + dev_err(&indio_dev->dev,
    + "Cannot read scanned values (%d)\n", ret);
    +
    iio_trigger_notify_done(indio_dev->trig);

    return IRQ_HANDLED;
    --
    2.27.0
    \
     
     \ /
      Last update: 2021-09-21 13:55    [W:4.057 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site