iio: kx022a: Probe asynchronously
authorMatti Vaittinen <mazziesaccount@gmail.com>
Thu, 4 May 2023 07:58:52 +0000 (10:58 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 13 May 2023 16:56:06 +0000 (17:56 +0100)
Devices which may take a while to initialize during probe and which have
no strong reason to probe synchronously can request asynchronous probing
as default probe strategy. This can speed-up start times on some
platforms.

The KX022A gets probe delayed for at least two reasons. It enables the
supply regulator, (which is likely to have ramp-up delay if it was
disabled) and additionally it delays while the sensor itself is
initializing.

Changing to asynchronous probing may cause problems. Some of which are
discussed in:
https://lore.kernel.org/all/06db017f-e985-4434-8d1d-02ca2100cca0@sirena.org.uk/

Enable asynchronous probing for KX022A.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://lore.kernel.org/r/24cea76c282a28b7a4dba297ab627176f8097907.1683185765.git.mazziesaccount@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/kionix-kx022a-i2c.c
drivers/iio/accel/kionix-kx022a-spi.c

index e6fd02d..ee98220 100644 (file)
@@ -40,6 +40,7 @@ static struct i2c_driver kx022a_i2c_driver = {
        .driver = {
                .name  = "kx022a-i2c",
                .of_match_table = kx022a_of_match,
+               .probe_type = PROBE_PREFER_ASYNCHRONOUS,
          },
        .probe_new    = kx022a_i2c_probe,
 };
index 9cd047f..f45a468 100644 (file)
@@ -46,6 +46,7 @@ static struct spi_driver kx022a_spi_driver = {
        .driver = {
                .name   = "kx022a-spi",
                .of_match_table = kx022a_of_match,
+               .probe_type = PROBE_PREFER_ASYNCHRONOUS,
        },
        .probe = kx022a_spi_probe,
        .id_table = kx022a_id,