mirror of
https://github.com/torvalds/linux.git
synced 2024-12-18 00:53:40 +00:00
libertas: check valid bits in SPI bus mode reg
The SPI driver writes to the bus mode register and performs a sanity check by reading back what we wrote, however only the lower four bits of that register are defined. In some cases, the device side seems to set the higher bits, causing us to fail the sanity check unnecessarily. Check only the lower four bits instead. Thanks to John Goyette from Schick Technologies for pointing out the problem. Signed-off-by: Andrey Yurovsky <andrey@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
d1c5091f23
commit
88d89526a6
@ -376,7 +376,7 @@ static int spu_set_bus_mode(struct if_spi_card *card, u16 mode)
|
||||
err = spu_read_u16(card, IF_SPI_SPU_BUS_MODE_REG, &rval);
|
||||
if (err)
|
||||
return err;
|
||||
if (rval != mode) {
|
||||
if ((rval & 0xF) != mode) {
|
||||
lbs_pr_err("Can't read bus mode register.\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user