From 84dfb5dab85297c40cc374a39baf0eeafa60d58d Mon Sep 17 00:00:00 2001 From: Josep Orga Date: Mon, 6 Apr 2020 17:03:42 +0200 Subject: [PATCH] ARM: Bug with iMX6ULL when large size data is managed: 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 --- drivers/mmc/host/sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 7cec0a5dd1ec..f7e4de7dfc57 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -3689,7 +3689,7 @@ int sdhci_setup_host(struct sdhci_host *host) */ if (host->flags & SDHCI_USE_ADMA) { if (host->quirks & SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC) { - mmc->max_seg_size = 65535; + mmc->max_seg_size = 61440; /* * send the ADMA limitation to IOMMU. In default, -- 2.17.1