On 4/24/20 12:42 PM, Dilip Kota wrote:This change is working successfully on Lightning Mountain SoC.(along with other changes in the patch series, as this alone doesnt configure SPI controller on LGM).
Synchronize tx, rx and error interrupts by registering to theHi,
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(-)
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