spi: spi-mtk-nor: fix timeout calculation overflow
authorChuanhong Guo <gch981213@gmail.com>
Tue, 22 Sep 2020 11:49:02 +0000 (19:49 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 25 Sep 2020 20:40:20 +0000 (21:40 +0100)
commit4cafaddedb5fbef9531202ee547784409fd0de33
tree05d0630df3338599fd36794f8df4039a98f3b575
parentf09a433b1e4057e6379b7e1207548fff30d5dca3
spi: spi-mtk-nor: fix timeout calculation overflow

CLK_TO_US macro is used to calculate potential transfer time for various
timeout handling. However it overflows on transfer bigger than 512 bytes
because it first did (len * 8 * 1000000).
This controller typically operates at 45MHz. This patch did 2 things:
1. calculate clock / 1000000 first
2. add a 4M transfer size cap so that the final timeout in DMA reading
   doesn't overflow

Fixes: 881d1ee9fe81f ("spi: add support for mediatek spi-nor controller")
Cc: <stable@vger.kernel.org>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Link: https://lore.kernel.org/r/20200922114905.2942859-1-gch981213@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-mtk-nor.c