Skip to content

Commit

Permalink
iio: adis: do not disabe IRQs in 'adis_init()'
Browse files Browse the repository at this point in the history
[ Upstream commit b600bd7 ]

With commit ecb010d ("iio: imu: adis: Refactor adis_initial_startup")
we are doing a HW or SW reset to the device which means that we'll get
the default state of the data ready pin (which is enabled). Hence there's
no point in disabling the IRQ in the init function. Moreover, this
function is intended to initialize internal data structures and not
really do anything on the device.

As a result of this, some devices were left with the data ready pin enabled
after probe which was not the desired behavior. Thus, we move the call to
'adis_enable_irq()' to the initial startup function where it makes more
sense for it to be.

Note that for devices that cannot mask/unmask the pin, it makes no sense
to call the function at this point since the IRQ should not have been
yet requested. This will be improved in a follow up change.

Fixes: ecb010d ("iio: imu: adis: Refactor adis_initial_startup")
Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20210903141423.517028-2-nuno.sa@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
nunojsa authored and gregkh committed Nov 17, 2021
1 parent 1cc004b commit 4e599aa
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/iio/imu/adis.c
Expand Up @@ -430,6 +430,8 @@ int __adis_initial_startup(struct adis *adis)
if (ret)
return ret;

adis_enable_irq(adis, false);

if (!adis->data->prod_id_reg)
return 0;

Expand Down Expand Up @@ -526,7 +528,7 @@ int adis_init(struct adis *adis, struct iio_dev *indio_dev,
adis->current_page = 0;
}

return adis_enable_irq(adis, false);
return 0;
}
EXPORT_SYMBOL_GPL(adis_init);

Expand Down

0 comments on commit 4e599aa

Please sign in to comment.