Linux-IIO Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v2 1/2] iio: adis16480: Fix scales factors
@ 2019-10-28 16:33 Nuno Sá
  2019-10-28 16:33 ` [PATCH v2 2/2] iio: adis16480: Add debugfs_reg_access entry Nuno Sá
  2019-11-03 11:56 ` [PATCH v2 1/2] iio: adis16480: Fix scales factors Jonathan Cameron
  0 siblings, 2 replies; 4+ messages in thread
From: Nuno Sá @ 2019-10-28 16:33 UTC (permalink / raw)
  To: linux-iio
  Cc: Jonathan Cameron, Lars-Peter Clausen, Michael Hennerich,
	Hartmut Knaack, Peter Meerwald-Stadler, Stable

This patch fixes the scales for the gyroscope, accelerometer and
barometer. The pressure scale was just wrong. For the others, the scale
factors were not taking into account that a 32bit word is being read
from the device.

Fixes: 7abad1063deb ("iio: adis16480: Fix scale factors")
Fixes: 82e7a1b25017 ("iio: imu: adis16480: Add support for ADIS1649x family of devices")
Cc: <Stable@vger.kernel.org>

Signed-off-by: Nuno Sá <nuno.sa@analog.com>
---
Changes in v2:
 * Correct the Fixes tag.

 drivers/iio/imu/adis16480.c | 77 ++++++++++++++++++++-----------------
 1 file changed, 41 insertions(+), 36 deletions(-)

diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
index b99d73887c9f..3b53bbb11bfb 100644
--- a/drivers/iio/imu/adis16480.c
+++ b/drivers/iio/imu/adis16480.c
@@ -620,9 +620,13 @@ static int adis16480_read_raw(struct iio_dev *indio_dev,
 			*val2 = (st->chip_info->temp_scale % 1000) * 1000;
 			return IIO_VAL_INT_PLUS_MICRO;
 		case IIO_PRESSURE:
-			*val = 0;
-			*val2 = 4000; /* 40ubar = 0.004 kPa */
-			return IIO_VAL_INT_PLUS_MICRO;
+			/*
+			 * max scale is 1310 mbar
+			 * max raw value is 32767 shifted for 32bits
+			 */
+			*val = 131; /* 1310mbar = 131 kPa */
+			*val2 = 32767 << 16;
+			return IIO_VAL_FRACTIONAL;
 		default:
 			return -EINVAL;
 		}
@@ -783,13 +787,14 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
 		/*
-		 * storing the value in rad/degree and the scale in degree
-		 * gives us the result in rad and better precession than
-		 * storing the scale directly in rad.
+		 * Typically we do IIO_RAD_TO_DEGREE in the denominator, which
+		 * is exactly the same as IIO_DEGREE_TO_RAD in numerator, since
+		 * it gives better approximation. However, in this case we
+		 * cannot do it since it would not fit in a 32bit variable.
 		 */
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22887),
-		.gyro_max_scale = 300,
-		.accel_max_val = IIO_M_S_2_TO_G(21973),
+		.gyro_max_val = 22887 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(300),
+		.accel_max_val = IIO_M_S_2_TO_G(21973 << 16),
 		.accel_max_scale = 18,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -799,9 +804,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 	[ADIS16480] = {
 		.channels = adis16480_channels,
 		.num_channels = ARRAY_SIZE(adis16480_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(12500),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(12500 << 16),
 		.accel_max_scale = 10,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -811,9 +816,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 	[ADIS16485] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(20000),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(20000 << 16),
 		.accel_max_scale = 5,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -823,9 +828,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 	[ADIS16488] = {
 		.channels = adis16480_channels,
 		.num_channels = ARRAY_SIZE(adis16480_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(22500),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(22500 << 16),
 		.accel_max_scale = 18,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -835,9 +840,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 	[ADIS16495_1] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 125,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(125),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 8,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -848,9 +853,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 	[ADIS16495_2] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(18000),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 18000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 8,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -861,9 +866,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 	[ADIS16495_3] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 2000,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(2000),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 8,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -874,9 +879,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 	[ADIS16497_1] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 125,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(125),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 40,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -887,9 +892,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 	[ADIS16497_2] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(18000),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 18000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 40,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -900,9 +905,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 	[ADIS16497_3] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 2000,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(2000),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 40,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
-- 
2.23.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] iio: adis16480: Add debugfs_reg_access entry
  2019-10-28 16:33 [PATCH v2 1/2] iio: adis16480: Fix scales factors Nuno Sá
@ 2019-10-28 16:33 ` Nuno Sá
  2019-11-03 11:58   ` Jonathan Cameron
  2019-11-03 11:56 ` [PATCH v2 1/2] iio: adis16480: Fix scales factors Jonathan Cameron
  1 sibling, 1 reply; 4+ messages in thread
From: Nuno Sá @ 2019-10-28 16:33 UTC (permalink / raw)
  To: linux-iio
  Cc: Jonathan Cameron, Lars-Peter Clausen, Michael Hennerich,
	Hartmut Knaack, Peter Meerwald-Stadler, Stable

The driver is defining debugfs entries by calling
`adis16480_debugfs_init()`. However, those entries are attached to the
iio_dev debugfs entry which won't exist if no debugfs_reg_access
callback is provided.

Fixes: 2f3abe6cbb6c ("iio:imu: Add support for the ADIS16480 and similar IMUs")
Cc: <Stable@vger.kernel.org>

Signed-off-by: Nuno Sá <nuno.sa@analog.com>
---
Changes in v2:
 * Add a Fixes tag and Cc stable.

 drivers/iio/imu/adis16480.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
index 3b53bbb11bfb..94aa1c57e605 100644
--- a/drivers/iio/imu/adis16480.c
+++ b/drivers/iio/imu/adis16480.c
@@ -921,6 +921,7 @@ static const struct iio_info adis16480_info = {
 	.read_raw = &adis16480_read_raw,
 	.write_raw = &adis16480_write_raw,
 	.update_scan_mode = adis_update_scan_mode,
+	.debugfs_reg_access = adis_debugfs_reg_access,
 };
 
 static int adis16480_stop_device(struct iio_dev *indio_dev)
-- 
2.23.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 1/2] iio: adis16480: Fix scales factors
  2019-10-28 16:33 [PATCH v2 1/2] iio: adis16480: Fix scales factors Nuno Sá
  2019-10-28 16:33 ` [PATCH v2 2/2] iio: adis16480: Add debugfs_reg_access entry Nuno Sá
@ 2019-11-03 11:56 ` Jonathan Cameron
  1 sibling, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2019-11-03 11:56 UTC (permalink / raw)
  To: Nuno Sá
  Cc: linux-iio, Lars-Peter Clausen, Michael Hennerich, Hartmut Knaack,
	Peter Meerwald-Stadler

On Mon, 28 Oct 2019 17:33:48 +0100
Nuno Sá <nuno.sa@analog.com> wrote:

> This patch fixes the scales for the gyroscope, accelerometer and
> barometer. The pressure scale was just wrong. For the others, the scale
> factors were not taking into account that a 32bit word is being read
> from the device.
> 
> Fixes: 7abad1063deb ("iio: adis16480: Fix scale factors")
> Fixes: 82e7a1b25017 ("iio: imu: adis16480: Add support for ADIS1649x family of devices")
> Cc: <Stable@vger.kernel.org>
> 
> Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Applied to the fixes-togreg branch of iio.git. It's possible I'll pull
these across to the togreg branch fo the next merge window depending on 
timing and what else is in my tree.

thanks,

Jonathan

> ---
> Changes in v2:
>  * Correct the Fixes tag.
> 
>  drivers/iio/imu/adis16480.c | 77 ++++++++++++++++++++-----------------
>  1 file changed, 41 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
> index b99d73887c9f..3b53bbb11bfb 100644
> --- a/drivers/iio/imu/adis16480.c
> +++ b/drivers/iio/imu/adis16480.c
> @@ -620,9 +620,13 @@ static int adis16480_read_raw(struct iio_dev *indio_dev,
>  			*val2 = (st->chip_info->temp_scale % 1000) * 1000;
>  			return IIO_VAL_INT_PLUS_MICRO;
>  		case IIO_PRESSURE:
> -			*val = 0;
> -			*val2 = 4000; /* 40ubar = 0.004 kPa */
> -			return IIO_VAL_INT_PLUS_MICRO;
> +			/*
> +			 * max scale is 1310 mbar
> +			 * max raw value is 32767 shifted for 32bits
> +			 */
> +			*val = 131; /* 1310mbar = 131 kPa */
> +			*val2 = 32767 << 16;
> +			return IIO_VAL_FRACTIONAL;
>  		default:
>  			return -EINVAL;
>  		}
> @@ -783,13 +787,14 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  		.channels = adis16485_channels,
>  		.num_channels = ARRAY_SIZE(adis16485_channels),
>  		/*
> -		 * storing the value in rad/degree and the scale in degree
> -		 * gives us the result in rad and better precession than
> -		 * storing the scale directly in rad.
> +		 * Typically we do IIO_RAD_TO_DEGREE in the denominator, which
> +		 * is exactly the same as IIO_DEGREE_TO_RAD in numerator, since
> +		 * it gives better approximation. However, in this case we
> +		 * cannot do it since it would not fit in a 32bit variable.
>  		 */
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(22887),
> -		.gyro_max_scale = 300,
> -		.accel_max_val = IIO_M_S_2_TO_G(21973),
> +		.gyro_max_val = 22887 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(300),
> +		.accel_max_val = IIO_M_S_2_TO_G(21973 << 16),
>  		.accel_max_scale = 18,
>  		.temp_scale = 5650, /* 5.65 milli degree Celsius */
>  		.int_clk = 2460000,
> @@ -799,9 +804,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  	[ADIS16480] = {
>  		.channels = adis16480_channels,
>  		.num_channels = ARRAY_SIZE(adis16480_channels),
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
> -		.gyro_max_scale = 450,
> -		.accel_max_val = IIO_M_S_2_TO_G(12500),
> +		.gyro_max_val = 22500 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
> +		.accel_max_val = IIO_M_S_2_TO_G(12500 << 16),
>  		.accel_max_scale = 10,
>  		.temp_scale = 5650, /* 5.65 milli degree Celsius */
>  		.int_clk = 2460000,
> @@ -811,9 +816,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  	[ADIS16485] = {
>  		.channels = adis16485_channels,
>  		.num_channels = ARRAY_SIZE(adis16485_channels),
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
> -		.gyro_max_scale = 450,
> -		.accel_max_val = IIO_M_S_2_TO_G(20000),
> +		.gyro_max_val = 22500 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
> +		.accel_max_val = IIO_M_S_2_TO_G(20000 << 16),
>  		.accel_max_scale = 5,
>  		.temp_scale = 5650, /* 5.65 milli degree Celsius */
>  		.int_clk = 2460000,
> @@ -823,9 +828,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  	[ADIS16488] = {
>  		.channels = adis16480_channels,
>  		.num_channels = ARRAY_SIZE(adis16480_channels),
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
> -		.gyro_max_scale = 450,
> -		.accel_max_val = IIO_M_S_2_TO_G(22500),
> +		.gyro_max_val = 22500 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
> +		.accel_max_val = IIO_M_S_2_TO_G(22500 << 16),
>  		.accel_max_scale = 18,
>  		.temp_scale = 5650, /* 5.65 milli degree Celsius */
>  		.int_clk = 2460000,
> @@ -835,9 +840,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  	[ADIS16495_1] = {
>  		.channels = adis16485_channels,
>  		.num_channels = ARRAY_SIZE(adis16485_channels),
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
> -		.gyro_max_scale = 125,
> -		.accel_max_val = IIO_M_S_2_TO_G(32000),
> +		.gyro_max_val = 20000 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(125),
> +		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
>  		.accel_max_scale = 8,
>  		.temp_scale = 12500, /* 12.5 milli degree Celsius */
>  		.int_clk = 4250000,
> @@ -848,9 +853,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  	[ADIS16495_2] = {
>  		.channels = adis16485_channels,
>  		.num_channels = ARRAY_SIZE(adis16485_channels),
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(18000),
> -		.gyro_max_scale = 450,
> -		.accel_max_val = IIO_M_S_2_TO_G(32000),
> +		.gyro_max_val = 18000 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
> +		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
>  		.accel_max_scale = 8,
>  		.temp_scale = 12500, /* 12.5 milli degree Celsius */
>  		.int_clk = 4250000,
> @@ -861,9 +866,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  	[ADIS16495_3] = {
>  		.channels = adis16485_channels,
>  		.num_channels = ARRAY_SIZE(adis16485_channels),
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
> -		.gyro_max_scale = 2000,
> -		.accel_max_val = IIO_M_S_2_TO_G(32000),
> +		.gyro_max_val = 20000 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(2000),
> +		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
>  		.accel_max_scale = 8,
>  		.temp_scale = 12500, /* 12.5 milli degree Celsius */
>  		.int_clk = 4250000,
> @@ -874,9 +879,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  	[ADIS16497_1] = {
>  		.channels = adis16485_channels,
>  		.num_channels = ARRAY_SIZE(adis16485_channels),
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
> -		.gyro_max_scale = 125,
> -		.accel_max_val = IIO_M_S_2_TO_G(32000),
> +		.gyro_max_val = 20000 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(125),
> +		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
>  		.accel_max_scale = 40,
>  		.temp_scale = 12500, /* 12.5 milli degree Celsius */
>  		.int_clk = 4250000,
> @@ -887,9 +892,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  	[ADIS16497_2] = {
>  		.channels = adis16485_channels,
>  		.num_channels = ARRAY_SIZE(adis16485_channels),
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(18000),
> -		.gyro_max_scale = 450,
> -		.accel_max_val = IIO_M_S_2_TO_G(32000),
> +		.gyro_max_val = 18000 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
> +		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
>  		.accel_max_scale = 40,
>  		.temp_scale = 12500, /* 12.5 milli degree Celsius */
>  		.int_clk = 4250000,
> @@ -900,9 +905,9 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
>  	[ADIS16497_3] = {
>  		.channels = adis16485_channels,
>  		.num_channels = ARRAY_SIZE(adis16485_channels),
> -		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
> -		.gyro_max_scale = 2000,
> -		.accel_max_val = IIO_M_S_2_TO_G(32000),
> +		.gyro_max_val = 20000 << 16,
> +		.gyro_max_scale = IIO_DEGREE_TO_RAD(2000),
> +		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
>  		.accel_max_scale = 40,
>  		.temp_scale = 12500, /* 12.5 milli degree Celsius */
>  		.int_clk = 4250000,


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/2] iio: adis16480: Add debugfs_reg_access entry
  2019-10-28 16:33 ` [PATCH v2 2/2] iio: adis16480: Add debugfs_reg_access entry Nuno Sá
@ 2019-11-03 11:58   ` Jonathan Cameron
  0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2019-11-03 11:58 UTC (permalink / raw)
  To: Nuno Sá
  Cc: linux-iio, Lars-Peter Clausen, Michael Hennerich, Hartmut Knaack,
	Peter Meerwald-Stadler

On Mon, 28 Oct 2019 17:33:49 +0100
Nuno Sá <nuno.sa@analog.com> wrote:

> The driver is defining debugfs entries by calling
> `adis16480_debugfs_init()`. However, those entries are attached to the
> iio_dev debugfs entry which won't exist if no debugfs_reg_access
> callback is provided.
> 
> Fixes: 2f3abe6cbb6c ("iio:imu: Add support for the ADIS16480 and similar IMUs")
> Cc: <Stable@vger.kernel.org>
> 
> Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Applied to the fixes-togreg branch of iio.git. 

Note I dropped the cc for stable from this thread but not the patch.
That should mean they pick it up from mainline once it gets there.

Thanks,

Jonathan

> ---
> Changes in v2:
>  * Add a Fixes tag and Cc stable.
> 
>  drivers/iio/imu/adis16480.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
> index 3b53bbb11bfb..94aa1c57e605 100644
> --- a/drivers/iio/imu/adis16480.c
> +++ b/drivers/iio/imu/adis16480.c
> @@ -921,6 +921,7 @@ static const struct iio_info adis16480_info = {
>  	.read_raw = &adis16480_read_raw,
>  	.write_raw = &adis16480_write_raw,
>  	.update_scan_mode = adis_update_scan_mode,
> +	.debugfs_reg_access = adis_debugfs_reg_access,
>  };
>  
>  static int adis16480_stop_device(struct iio_dev *indio_dev)


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-28 16:33 [PATCH v2 1/2] iio: adis16480: Fix scales factors Nuno Sá
2019-10-28 16:33 ` [PATCH v2 2/2] iio: adis16480: Add debugfs_reg_access entry Nuno Sá
2019-11-03 11:58   ` Jonathan Cameron
2019-11-03 11:56 ` [PATCH v2 1/2] iio: adis16480: Fix scales factors Jonathan Cameron

Linux-IIO Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-iio/0 linux-iio/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-iio linux-iio/ https://lore.kernel.org/linux-iio \
		linux-iio@vger.kernel.org
	public-inbox-index linux-iio

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-iio


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git