diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2018-10-11 10:42:17 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-10-11 17:00:34 +0300 |
commit | 940ec770c295682993d1cccce3081fd7c74fece8 (patch) | |
tree | 6114fddda9d30a6542e7d39693103c113eb55b4e /drivers/spi/spi-rockchip.c | |
parent | 0976eda7915507fe94e07870c19d717c9994b57a (diff) | |
download | linux-940ec770c295682993d1cccce3081fd7c74fece8.tar.xz |
spi: bcm-qspi: switch back to reading flash using smaller chunks
Fixing/optimizing bcm_qspi_bspi_read() performance introduced two
changes:
1) It added a loop to read all requested data using multiple BSPI ops.
2) It bumped max size of a single BSPI block request from 256 to 512 B.
The later change resulted in occasional BSPI timeouts causing a
regression.
For some unknown reason hardware doesn't always handle reads as expected
when using 512 B chunks. In such cases it may happen that BSPI returns
amount of requested bytes without the last 1-3 ones. It provides the
remaining bytes later but doesn't raise an interrupt until another LR
start.
Switching back to 256 B reads fixes that problem and regression.
Fixes: 345309fa7c0c ("spi: bcm-qspi: Fix bcm_qspi_bspi_read() performance")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/spi/spi-rockchip.c')
0 files changed, 0 insertions, 0 deletions