Commit f281e4dd authored by Jonathan Cameron's avatar Jonathan Cameron

staging:iio:adc:ad7280a: Fix handing of device address bit reversing.

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: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Fixes: 065a7c0b ("Staging: iio: adc: ad7280a.c: Fixed Macro argument reuse")
Reviewed-by: default avatarMarcelo Schmitt <marcelo.schmitt1@gmail.com>
Link: https://lore.kernel.org/r/20220206190328.333093-2-jic23@kernel.org
parent ade59a7a
...@@ -107,9 +107,9 @@ ...@@ -107,9 +107,9 @@
static unsigned int ad7280a_devaddr(unsigned int addr) static unsigned int ad7280a_devaddr(unsigned int addr)
{ {
return ((addr & 0x1) << 4) | return ((addr & 0x1) << 4) |
((addr & 0x2) << 3) | ((addr & 0x2) << 2) |
(addr & 0x4) | (addr & 0x4) |
((addr & 0x8) >> 3) | ((addr & 0x8) >> 2) |
((addr & 0x10) >> 4); ((addr & 0x10) >> 4);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment