Re: [PATCH 1/4] spi: lantiq: Synchronize interrupt handlers and transfers
From: Hauke Mehrtens
Date: Mon Apr 27 2020 - 17:53:15 EST
On 4/24/20 12:42 PM, Dilip Kota wrote:
> Synchronize tx, rx and error interrupts by registering to the
> same interrupt handler. Interrupt handler will recognize and process
> the appropriate interrupt on the basis of interrupt status register.
> Also, establish synchronization between the interrupt handler and
> transfer operation by taking the locks and registering the interrupt
> handler as thread IRQ which avoids the bottom half.
> Fixes the wrongly populated interrupt register offsets too.
>
> Fixes: 17f84b793c01 ("spi: lantiq-ssc: add support for Lantiq SSC SPI controller")
> Fixes: ad2fca0721d1 ("spi: lantiq-ssc: add LTQ_ prefix to defines")
> Signed-off-by: Dilip Kota <eswara.kota@xxxxxxxxxxxxxxx>
> ---
> drivers/spi/spi-lantiq-ssc.c | 89 ++++++++++++++++++++++----------------------
> 1 file changed, 45 insertions(+), 44 deletions(-)
>
Hi,
I tried this patch series on a TP-LINK TD-W8970 (VRX200 with SPI flash)
and the SPI controller is failing like this:
-----
[ 6.947194] printk: bootconsole [early0] disabled
[ 6.964210] spi-lantiq-ssc 1e100800.spi: Lantiq SSC SPI controller
(Rev 8, TXFS 8, RXFS 8, DMA 1)
[ 7.175188] spi-nor spi0.4: SPI transfer timed out
[ 7.178558] spi_master spi0: failed to transfer one message from queue
[ 7.185120] spi-nor spi0.4: error -145 reading JEDEC ID
[ 7.190378] spi-nor: probe of spi0.4 failed with error -2
[ 7.199729] libphy: Fixed MDIO Bus: probed
------
It already fails when applying this first patch only.
Without this patch is works like this:
-----
[ 6.939498] printk: bootconsole [early0] disabled
[ 6.954016] spi-lantiq-ssc 1e100800.spi: Lantiq SSC SPI controller
(Rev 8, TXFS 8, RXFS 8, DMA 1)
[ 6.975465] spi-nor spi0.4: s25fl064k (8192 Kbytes)
[ 6.979066] 4 fixed-partitions partitions found on MTD device spi0.4
[ 6.985338] Creating 4 MTD partitions on "spi0.4":
[ 6.990127] 0x000000000000-0x000000020000 : "u-boot"
[ 6.997422] 0x000000020000-0x0000007c0000 : "firmware"
[ 7.212304] random: crng init done
[ 8.796128] 2 tplink-fw partitions found on MTD device firmware
[ 8.800674] 0x000000020000-0x00000027878f : "kernel"
[ 8.807776] 0x000000278790-0x0000007c0000 : "rootfs"
[ 8.813611] mtd: device 3 (rootfs) set to be root filesystem
[ 8.818268] 1 squashfs-split partitions found on MTD device rootfs
[ 8.824123] 0x000000590000-0x0000007c0000 : "rootfs_data"
[ 8.831772] 0x0000007c0000-0x0000007d0000 : "config"
[ 8.837785] 0x0000007d0000-0x000000800000 : "boardconfig"
[ 8.848193] libphy: Fixed MDIO Bus: probed
------
This was done by applying your patches on top of kernel 5.4.35 and
adding this: "spi: lantiq-ssc: Use devm_platform_ioremap_resource() in
lantiq_ssc_probe()" in OpenWrt master.
Hauke