diff mbox series

[v2,01/17] staging:iio:adc:ad7280a: Fix handing of device address bit reversing.

Message ID 20211205202710.2847005-2-jic23@kernel.org (mailing list archive)
State Superseded
Headers show
Series iio:adc:ad7280a Cleanup and proposed staging graduation. | expand

Commit Message

Jonathan Cameron Dec. 5, 2021, 8:26 p.m. UTC
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

The bit reversal was wrong for bits 1 and 3 of the 5 bits.
Result is driver failure to probe if you have more than 2 daisy-chained
devices.  Discovered via QEMU based device emulation.

Fixes tag is for when this moved from a macro to a function, but it
was broken before that.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Fixes: 065a7c0b1fec ("Staging: iio: adc: ad7280a.c: Fixed Macro argument reuse")
---
 drivers/staging/iio/adc/ad7280a.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Marcelo Schmitt Dec. 13, 2021, 12:26 p.m. UTC | #1
On 12/05, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> The bit reversal was wrong for bits 1 and 3 of the 5 bits.
> Result is driver failure to probe if you have more than 2 daisy-chained
> devices.  Discovered via QEMU based device emulation.
> 
> Fixes tag is for when this moved from a macro to a function, but it
> was broken before that.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>

> Fixes: 065a7c0b1fec ("Staging: iio: adc: ad7280a.c: Fixed Macro argument reuse")
> ---
>  drivers/staging/iio/adc/ad7280a.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
> index fef0055b8990..20183b2ea127 100644
> --- a/drivers/staging/iio/adc/ad7280a.c
> +++ b/drivers/staging/iio/adc/ad7280a.c
> @@ -107,9 +107,9 @@
>  static unsigned int ad7280a_devaddr(unsigned int addr)
>  {
>  	return ((addr & 0x1) << 4) |
> -	       ((addr & 0x2) << 3) |
> +	       ((addr & 0x2) << 2) |
>  	       (addr & 0x4) |
> -	       ((addr & 0x8) >> 3) |
> +	       ((addr & 0x8) >> 2) |
>  	       ((addr & 0x10) >> 4);
>  }
>  
> -- 
> 2.34.1
>
diff mbox series

Patch

diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
index fef0055b8990..20183b2ea127 100644
--- a/drivers/staging/iio/adc/ad7280a.c
+++ b/drivers/staging/iio/adc/ad7280a.c
@@ -107,9 +107,9 @@ 
 static unsigned int ad7280a_devaddr(unsigned int addr)
 {
 	return ((addr & 0x1) << 4) |
-	       ((addr & 0x2) << 3) |
+	       ((addr & 0x2) << 2) |
 	       (addr & 0x4) |
-	       ((addr & 0x8) >> 3) |
+	       ((addr & 0x8) >> 2) |
 	       ((addr & 0x10) >> 4);
 }