diff mbox series

iio: adc: ti-ads1119: fix sample size in scan struct for triggered buffer

Message ID 20241202-ti-ads1119_s16_chan-v1-1-fafe3136dc90@gmail.com (mailing list archive)
State Accepted
Headers show
Series iio: adc: ti-ads1119: fix sample size in scan struct for triggered buffer | expand

Commit Message

Javier Carrasco Dec. 2, 2024, 7:18 p.m. UTC
This device returns signed, 16-bit samples as stated in its datasheet
(see 8.5.2 Data Format). That is in line with the scan_type definition
for the IIO_VOLTAGE channel, but 'unsigned int' is being used to read
and push the data to userspace.

Given that the size of that type depends on the architecture (at least
2 bytes to store values up to 65535, but its actual size is often 4
bytes), use the 's16' type to provide the same structure in all cases.

Fixes: a9306887eba4 ("iio: adc: ti-ads1119: Add driver")
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
 drivers/iio/adc/ti-ads1119.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: a0d6ec6575fce400e976af1dd9223823251775e9
change-id: 20241202-ti-ads1119_s16_chan-2ae1d6f5e1b3

Best regards,

Comments

Francesco Dolcini Dec. 2, 2024, 7:46 p.m. UTC | #1
On Mon, Dec 02, 2024 at 08:18:44PM +0100, Javier Carrasco wrote:
> This device returns signed, 16-bit samples as stated in its datasheet
> (see 8.5.2 Data Format). That is in line with the scan_type definition
> for the IIO_VOLTAGE channel, but 'unsigned int' is being used to read
> and push the data to userspace.
> 
> Given that the size of that type depends on the architecture (at least
> 2 bytes to store values up to 65535, but its actual size is often 4
> bytes), use the 's16' type to provide the same structure in all cases.
> 
> Fixes: a9306887eba4 ("iio: adc: ti-ads1119: Add driver")
> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>

Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Cc: stable@vger.kernel.org

Thanks,
Francesco
Jonathan Cameron Dec. 8, 2024, 4:59 p.m. UTC | #2
On Mon, 2 Dec 2024 20:46:22 +0100
Francesco Dolcini <francesco@dolcini.it> wrote:

> On Mon, Dec 02, 2024 at 08:18:44PM +0100, Javier Carrasco wrote:
> > This device returns signed, 16-bit samples as stated in its datasheet
> > (see 8.5.2 Data Format). That is in line with the scan_type definition
> > for the IIO_VOLTAGE channel, but 'unsigned int' is being used to read
> > and push the data to userspace.
> > 
> > Given that the size of that type depends on the architecture (at least
> > 2 bytes to store values up to 65535, but its actual size is often 4
> > bytes), use the 's16' type to provide the same structure in all cases.
> > 
> > Fixes: a9306887eba4 ("iio: adc: ti-ads1119: Add driver")
> > Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>  
> 
> Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
> Cc: stable@vger.kernel.org
> 
> Thanks,
> Francesco
> 

Applied to the fixes-togreg branch of iio.git and marked for stable.

Thanks,

Jonathan
diff mbox series

Patch

diff --git a/drivers/iio/adc/ti-ads1119.c b/drivers/iio/adc/ti-ads1119.c
index 533610ac214e..6637cb6a6dda 100644
--- a/drivers/iio/adc/ti-ads1119.c
+++ b/drivers/iio/adc/ti-ads1119.c
@@ -500,7 +500,7 @@  static irqreturn_t ads1119_trigger_handler(int irq, void *private)
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ads1119_state *st = iio_priv(indio_dev);
 	struct {
-		unsigned int sample;
+		s16 sample;
 		s64 timestamp __aligned(8);
 	} scan;
 	unsigned int index;