mmc: sdhci: Bug with iMX6ULL when large size data is managed with wilc1000/wilc3000:
authorJosep Orga <jorga@somdevices.com>
Sun, 19 Apr 2020 10:30:50 +0000 (12:30 +0200)
committerJosep Orga <jorga@somdevices.com>
Sun, 19 Apr 2020 10:30:50 +0000 (12:30 +0200)
commit4fcc866f18c2faee56a289dafcfc497ebbf58956
treeb57bb494115afd7a5627f5958c5376a681bd59fc
parente302b7fd864b206eae0d07e9a1cb33c2baa01e52
mmc: sdhci: Bug with iMX6ULL when large size data is managed with wilc1000/wilc3000:
Based on https://community.nxp.com/thread/447193

Error solved:

cfg_get Timed Out
wilc_sdio mmc0:0001:1 wlan0: ERR [wilc_send_config_pkt:1789] Get Timed out
wilc_sdio mmc0:0001:1 wlan0: ERR [wilc_get_statistics:1106] Failed to send scan parameters
mmc0: Timeout waiting for hardware interrupt.
mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
mmc0: sdhci: Sys addr:  0x88a00800 | Version:  0x00000002
mmc0: sdhci: Blk size:  0x00000200 | Blk cnt:  0x00000086
mmc0: sdhci: Argument:  0x1c000087 | Trn mode: 0x00000033
mmc0: sdhci: Present:   0x01308a8e | Host ctl: 0x00000013
mmc0: sdhci: Power:     0x00000002 | Blk gap:  0x00000080
mmc0: sdhci: Wake-up:   0x00000008 | Clock:    0x0000002f
mmc0: sdhci: Timeout:   0x0000008f | Int stat: 0x00000000
mmc0: sdhci: Int enab:  0x107f100b | Sig enab: 0x107f100b
mmc0: sdhci: AC12 err:  0x00000000 | Slot int: 0x00000302
mmc0: sdhci: Caps:      0x07eb0000 | Caps_1:   0x0000b407
mmc0: sdhci: Cmd:       0x0000353a | Max curr: 0x00ffffff
mmc0: sdhci: Resp[0]:   0x00001000 | Resp[1]:  0x00000000
mmc0: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000000
mmc0: sdhci: Host ctl2: 0x00000000
mmc0: sdhci: ADMA Err:  0x00000003 | ADMA Ptr: 0x8c077204
mmc0: sdhci: ============================================
wilc_sdio mmc0:0001:1: wilc_sdio_cmd53..failed, err(-110)
wilc_sdio mmc0:0001:1: Failed cmd53 [0], block read...
wilc_wlan_handle_isr_ext: fail block rx
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = 80004000
[00000000] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in: option usb_wwan usbserial evbug wilc_sdio
CPU: 0 PID: 208 Comm: K_TXQ_TASK Not tainted 4.9.88-04794-g4659c284c25a-dirty #1
Hardware name: Freescale i.MX6 UltraLite (Device Tree)
task: 888ecb00 task.stack: 889e2000
PC is at wilc_wlan_txq_remove_from_head+0x4c/0x90 [wilc_sdio]
LR is at 0x100
pc : [<7f00cdac>]    lr : [<00000100>]    psr: a00e0093
sp : 889e3d50  ip : 00000200  fp : 00000000
r10: 889e3de6  r9 : 889e3dc6  r8 : 884ce500
r7 : 00000220  r6 : 884ce4e4  r5 : 00000000  r4 : 884ce420
r3 : 00000000  r2 : 884d0570  r1 : 200e0013  r0 : 884d0544
Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
Control: 10c53c7d  Table: 8884406a  DAC: 00000051
Process K_TXQ_TASK (pid: 208, stack limit = 0x889e2210)
Stack: (0x889e3d50 to 0x889e4000)
3d40:                                     88960000 0000008a 889e3e14 7f00f0a0
3d60: 00000400 00000000 00000000 887704c0 7f013f24 884cebc4 00000005 7f0184cc
3d80: 7f0184f8 884ce420 889e3da8 884ce4cc 889e3f3c 00000001 7f01a314 88960000
3da0: 39383736 10030200 01010101 00040001 00000000 00000000 00000000 00000000
3dc0: 00020202 8bb38a02 00000001 8015c3c0 80f03244 00000000 0000000c 00000000
3de0: 80f02d00 00000001 888ecb80 00000017 8bb38a78 80e7ba40 8bb38a40 888ecb00
3e00: 0000001c 0000001c 0000001c 00000418 0000001c 00000000 ffffffff 00000000
3e20: 887aa000 8014a6fc 888ecb00 00000001 887aa000 8bb38a40 888ecb00 8864a100
3e40: 887c4a80 887c4a80 00000000 00000000 889e3e9c 809f4d9c 00000001 809f56b0
3e60: 80f033a8 80f1c000 f4a0200c 809f5110 600b0013 ffffffff 889e3ed4 ffffe000
3e80: 884ce53c 884ce538 889e2000 00000002 00000000 00000000 889e3eac 809f5118
3ea0: 7fffffff 884ce53c 00000001 809f7f94 7fffffff 884ce53c 884ce538 889e2000
3ec0: 00000002 00000000 00000000 00000001 884ce53c 884ce53c 884ce538 884ccf88
3ee0: 00000001 809f8dbc 7fffffff 809f5dac 7f01a30c 00000001 0000000c 00000001
3f00: 80c95370 884ce420 ffffe000 7f01a30c 884ccf88 7f015e18 884ce450 88770000
3f20: 00000001 7f005560 88770000 7f015e18 884ce538 884ce548 889a65c0 00000005
3f40: 884ce420 00000000 889a65c0 889e2000 884ce420 7f0054c4 00000000 00000000
3f60: 00000000 80149344 0013003f 00000000 888ecb00 884ce420 00000000 00000000
3f80: 889e3f80 889e3f80 00000000 00000000 889e3f90 889e3f90 889a65c0 8014923c
3fa0: 00000000 00000000 00000000 80107950 00000000 00000000 00000000 00000000
3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 0013003f 00003d22
[<7f00cdac>] (wilc_wlan_txq_remove_from_head [wilc_sdio]) from [<7f00f0a0>] (wilc_wlan_handle_txq+0xb64/0xd80 [wilc_sdio])
[<7f00f0a0>] (wilc_wlan_handle_txq [wilc_sdio]) from [<7f005560>] (wilc_txq_task+0x9c/0x248 [wilc_sdio])
[<7f005560>] (wilc_txq_task [wilc_sdio]) from [<80149344>] (kthread+0x108/0x110)
[<80149344>] (kthread) from [<80107950>] (ret_from_fork+0x14/0x24)
Code: e3a0ec01 e3a0cc02 e2852e77 e5955744 (e8950009)
---[ end trace 61f15caa55e80a4b ]---

Signed-off-by: Josep Orga <jorga@somdevices.com>
drivers/mmc/host/sdhci.c