2023-01-03 13:17:59

by Vladimir Oltean

[permalink] [raw]
Subject: [PATCH] iio: imu: st_lsm6dsx: fix build when CONFIG_IIO_TRIGGERED_BUFFER=m

The following kernel linkage error:

st_lsm6dsx_core.o: in function `st_lsm6dsx_sw_buffers_setup':
st_lsm6dsx_core.c:2578: undefined reference to `devm_iio_triggered_buffer_setup_ext'

is caused by the fact that the object owning devm_iio_triggered_buffer_setup_ext()
(drivers/iio/buffer/industrialio-triggered-buffer.o) is allowed to be
built as module when its user (drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c)
is built-in.

The st_lsm6dsx driver already has a "select IIO_BUFFER", so add another
select for IIO_TRIGGERED_BUFFER, to make that option follow what is set
for the st_lsm6dsx driver. This is similar to what other iio drivers do.

Fixes: 2cfb2180c3e8 ("iio: imu: st_lsm6dsx: introduce sw trigger support")
Signed-off-by: Vladimir Oltean <[email protected]>
---
drivers/iio/imu/st_lsm6dsx/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/iio/imu/st_lsm6dsx/Kconfig b/drivers/iio/imu/st_lsm6dsx/Kconfig
index f6660847fb58..8c16cdacf2f2 100644
--- a/drivers/iio/imu/st_lsm6dsx/Kconfig
+++ b/drivers/iio/imu/st_lsm6dsx/Kconfig
@@ -4,6 +4,7 @@ config IIO_ST_LSM6DSX
tristate "ST_LSM6DSx driver for STM 6-axis IMU MEMS sensors"
depends on (I2C || SPI || I3C)
select IIO_BUFFER
+ select IIO_TRIGGERED_BUFFER
select IIO_KFIFO_BUF
select IIO_ST_LSM6DSX_I2C if (I2C)
select IIO_ST_LSM6DSX_SPI if (SPI_MASTER)
--
2.34.1


2023-01-08 12:18:51

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH] iio: imu: st_lsm6dsx: fix build when CONFIG_IIO_TRIGGERED_BUFFER=m

On Tue, 3 Jan 2023 15:03:48 +0200
Vladimir Oltean <[email protected]> wrote:

> The following kernel linkage error:
>
> st_lsm6dsx_core.o: in function `st_lsm6dsx_sw_buffers_setup':
> st_lsm6dsx_core.c:2578: undefined reference to `devm_iio_triggered_buffer_setup_ext'
>
> is caused by the fact that the object owning devm_iio_triggered_buffer_setup_ext()
> (drivers/iio/buffer/industrialio-triggered-buffer.o) is allowed to be
> built as module when its user (drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c)
> is built-in.
>
> The st_lsm6dsx driver already has a "select IIO_BUFFER", so add another
> select for IIO_TRIGGERED_BUFFER, to make that option follow what is set
> for the st_lsm6dsx driver. This is similar to what other iio drivers do.
>
> Fixes: 2cfb2180c3e8 ("iio: imu: st_lsm6dsx: introduce sw trigger support")
> Signed-off-by: Vladimir Oltean <[email protected]>
Applied to the fixes-togreg branch of iio.git and marked for stable.

Thanks,

Jonathan

> ---
> drivers/iio/imu/st_lsm6dsx/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/iio/imu/st_lsm6dsx/Kconfig b/drivers/iio/imu/st_lsm6dsx/Kconfig
> index f6660847fb58..8c16cdacf2f2 100644
> --- a/drivers/iio/imu/st_lsm6dsx/Kconfig
> +++ b/drivers/iio/imu/st_lsm6dsx/Kconfig
> @@ -4,6 +4,7 @@ config IIO_ST_LSM6DSX
> tristate "ST_LSM6DSx driver for STM 6-axis IMU MEMS sensors"
> depends on (I2C || SPI || I3C)
> select IIO_BUFFER
> + select IIO_TRIGGERED_BUFFER
> select IIO_KFIFO_BUF
> select IIO_ST_LSM6DSX_I2C if (I2C)
> select IIO_ST_LSM6DSX_SPI if (SPI_MASTER)