mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-27 23:20:26 +09:00
rockchip: spi: fix off-by-one in chunk size computation
The maximum transfer length (in a single transaction) for the Rockchip SPI controller is 64Kframes (i.e. 0x10000 frames) of 8bit or 16bit frames and is encoded as (num_frames - 1) in CTRLR1. The existing code subtracted the "minus 1" twice for a maximum transfer length of 0xffff (64K - 1) frames. While this is not strictly an error (the existing code is correct, but leads to a bit of head-scrating), fix this off-by-one situation. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
This commit is contained in:
parent
0e661b6df0
commit
e647decdd9
@ -356,7 +356,7 @@ static int rockchip_spi_xfer(struct udevice *dev, unsigned int bitlen,
|
||||
spi_cs_activate(dev, slave_plat->cs);
|
||||
|
||||
while (len > 0) {
|
||||
int todo = min(len, 0xffff);
|
||||
int todo = min(len, 0x10000);
|
||||
|
||||
rkspi_enable_chip(regs, false);
|
||||
writel(todo - 1, ®s->ctrlr1);
|
||||
|
Loading…
Reference in New Issue
Block a user