mbox series

[v3,0/6] Adis IRQ fixes and minor improvements

Message ID 20210427085454.30616-1-nuno.sa@analog.com (mailing list archive)
Headers show
Series Adis IRQ fixes and minor improvements | expand

Message

Nuno Sa April 27, 2021, 8:54 a.m. UTC
The primary goal of this series was to fix the return value on some
trigger handlers as spotted in [1]. While doing it, I found some minor
improvements that I think are simple enough to include in this series.

As for the first 2 patches, I opted to not do any functional change so
I'm keeping the 'if (!adis->buffer)' check. However, 'adis-buffer' is
allocated in 'update_scan_mode' hook which means we should be sure that
the buffer is allocated and the check is really not needed. I did not
went into the details but is there any way for the trigger handler to be
called before the 'update_scan_mode' hook? If not, I'm happy in sending
a v2 where we just remove the 'if'...


Changes in v2:
 * Remove the 'if' check for the allocated buffer;
 * Make sure the adis 'state_lock' is unlocked on error paths;
 * Fixed the commit message on the first 3 patches.
 * Dropped ("iio: adis16475: re-set max spi transfer") and added 3 new
patches (last 3 in the series ) to fix a potential race with the spi core
as discussed in [2].

Changes in v3:
 * Improved commit description on ("iio: adis16475: do not return ints in
irq handlers");
 * Reordered patch 2 and 3 so that patch 3 is easier to apply;
 * Re-arranged the error handling on 'spi_sync()' error path.

[1]: https://marc.info/?l=linux-iio&m=161815197426882&w=2
[2]: https://marc.info/?l=linux-iio&m=161884696722142&w=2

Nuno Sa (6):
  iio: adis16475: do not return ints in irq handlers
  iio: adis_buffer: update device page after changing it
  iio: adis_buffer: don't push data to buffers on failure
  iio: adis: add burst_max_speed_hz variable
  iio: adis16475: do not directly change spi 'max_speed_hz'
  iio: adis16400: do not directly change spi 'max_speed_hz'

 drivers/iio/imu/adis16400.c   | 15 ++-------------
 drivers/iio/imu/adis16475.c   |  9 +++------
 drivers/iio/imu/adis_buffer.c | 16 ++++++++++------
 include/linux/iio/imu/adis.h  |  2 ++
 4 files changed, 17 insertions(+), 25 deletions(-)

Comments

Jonathan Cameron April 27, 2021, 5:26 p.m. UTC | #1
On Tue, 27 Apr 2021 10:54:48 +0200
Nuno Sa <nuno.sa@analog.com> wrote:

> The primary goal of this series was to fix the return value on some
> trigger handlers as spotted in [1]. While doing it, I found some minor
> improvements that I think are simple enough to include in this series.
> 
> As for the first 2 patches, I opted to not do any functional change so
> I'm keeping the 'if (!adis->buffer)' check. However, 'adis-buffer' is
> allocated in 'update_scan_mode' hook which means we should be sure that
> the buffer is allocated and the check is really not needed. I did not
> went into the details but is there any way for the trigger handler to be
> called before the 'update_scan_mode' hook? If not, I'm happy in sending
> a v2 where we just remove the 'if'...
> 
> 
> Changes in v2:
>  * Remove the 'if' check for the allocated buffer;
>  * Make sure the adis 'state_lock' is unlocked on error paths;
>  * Fixed the commit message on the first 3 patches.
>  * Dropped ("iio: adis16475: re-set max spi transfer") and added 3 new
> patches (last 3 in the series ) to fix a potential race with the spi core
> as discussed in [2].
> 
> Changes in v3:
>  * Improved commit description on ("iio: adis16475: do not return ints in
> irq handlers");
>  * Reordered patch 2 and 3 so that patch 3 is easier to apply;
>  * Re-arranged the error handling on 'spi_sync()' error path.
> 
> [1]: https://marc.info/?l=linux-iio&m=161815197426882&w=2
> [2]: https://marc.info/?l=linux-iio&m=161884696722142&w=2

Not rushing these in as not comfortable with marking them for stable.
If we want to do a specific stable request at a later date that can
easily explain we need all of them.

Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to poke at them and see if they can find anything we
missed.

Thanks,

Jonathan

> 
> Nuno Sa (6):
>   iio: adis16475: do not return ints in irq handlers
>   iio: adis_buffer: update device page after changing it
>   iio: adis_buffer: don't push data to buffers on failure
>   iio: adis: add burst_max_speed_hz variable
>   iio: adis16475: do not directly change spi 'max_speed_hz'
>   iio: adis16400: do not directly change spi 'max_speed_hz'
> 
>  drivers/iio/imu/adis16400.c   | 15 ++-------------
>  drivers/iio/imu/adis16475.c   |  9 +++------
>  drivers/iio/imu/adis_buffer.c | 16 ++++++++++------
>  include/linux/iio/imu/adis.h  |  2 ++
>  4 files changed, 17 insertions(+), 25 deletions(-)
>