spi: rockchip: limit transfers to (64K - 1) bytes
authorBrian Norris <briannorris@chromium.org>
Fri, 15 Jul 2016 01:30:59 +0000 (18:30 -0700)
committerMark Brown <broonie@kernel.org>
Wed, 20 Jul 2016 16:42:47 +0000 (17:42 +0100)
commit5185a81c02d4118b11e6cb7b5fbf6f15ff7aff90
tree6eacba8fabd331367a9d99a9eb7b49418d36f74b
parent1a695a905c18548062509178b98bc91e67510864
spi: rockchip: limit transfers to (64K - 1) bytes

The Rockchip SPI controller's length register only supports 16-bits,
yielding a maximum length of 64KiB (the CTRLR1 register holds "length -
1"). Trying to transfer more than that (e.g., with a large SPI flash
read) will cause the driver to hang.

Now, it seems that while theoretically we should be able to program
CTRLR1 with 0xffff, and get a 64KiB transfer, but that also seems to
cause the core to choke, so stick with a maximum of 64K - 1 bytes --
i.e., 0xffff.

Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-rockchip.c