[source] lantiq: spi: double time out tolerance

LEDE Commits lede-commits at lists.infradead.org
Thu Dec 14 09:44:17 PST 2017


jow pushed a commit to source.git, branch lede-17.01:
https://git.lede-project.org/e5612d6640fd44a92c6bd7eab550c4e7759054b1

commit e5612d6640fd44a92c6bd7eab550c4e7759054b1
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun May 21 21:20:44 2017 +0200

    lantiq: spi: double time out tolerance
    
    The generic SPI code calculates how long the issued transfer would take
    and adds 100ms in addition to the timeout as tolerance. On my 500 MHz
    Lantiq Mips SoC I am getting timeouts from the SPI like this when the
    system boots up:
    
    m25p80 spi32766.4: SPI transfer timed out
    blk_update_request: I/O error, dev mtdblock3, sector 2
    SQUASHFS error: squashfs_read_data failed to read block 0x6e
    
    After increasing the tolerance for the timeout to 200ms I haven't seen
    these SPI transfer time outs any more.
    The Lantiq SPI driver in use here has an extra work queue in between,
    which gets triggered when the controller send the last word and the
    hardware FIFOs used for reading and writing are only 8 words long.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 6153248052b2e067df9596c2d619345261b1d3f7)
---
 .../0093-spi-double-time-out-tolerance.patch       | 37 ++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/target/linux/lantiq/patches-4.9/0093-spi-double-time-out-tolerance.patch b/target/linux/lantiq/patches-4.9/0093-spi-double-time-out-tolerance.patch
new file mode 100644
index 0000000..68b0ffe
--- /dev/null
+++ b/target/linux/lantiq/patches-4.9/0093-spi-double-time-out-tolerance.patch
@@ -0,0 +1,37 @@
+From 833bfade96561216aa2129516a5926a0326860a2 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke at hauke-m.de>
+Date: Mon, 17 Apr 2017 01:38:05 +0200
+Subject: spi: double time out tolerance
+
+The generic SPI code calculates how long the issued transfer would take
+and adds 100ms in addition to the timeout as tolerance. On my 500 MHz
+Lantiq Mips SoC I am getting timeouts from the SPI like this when the
+system boots up:
+
+m25p80 spi32766.4: SPI transfer timed out
+blk_update_request: I/O error, dev mtdblock3, sector 2
+SQUASHFS error: squashfs_read_data failed to read block 0x6e
+
+After increasing the tolerance for the timeout to 200ms I haven't seen
+these SPI transfer time outs any more.
+The Lantiq SPI driver in use here has an extra work queue in between,
+which gets triggered when the controller send the last word and the
+hardware FIFOs used for reading and writing are only 8 words long.
+
+Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
+Signed-off-by: Mark Brown <broonie at kernel.org>
+---
+ drivers/spi/spi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/spi/spi.c
++++ b/drivers/spi/spi.c
+@@ -1004,7 +1004,7 @@ static int spi_transfer_one_message(stru
+ 				ret = 0;
+ 				ms = 8LL * 1000LL * xfer->len;
+ 				do_div(ms, xfer->speed_hz);
+-				ms += ms + 100; /* some tolerance */
++				ms += ms + 200; /* some tolerance */
+ 
+ 				if (ms > UINT_MAX)
+ 					ms = UINT_MAX;



More information about the lede-commits mailing list