linux_dsm_epyc7002/arch/arm64/boot/dts
Christoph Muellner a3eec13b8f arm64: dts: rockchip: Disable DCMDs on RK3399's eMMC controller.
When using direct commands (DCMDs) on an RK3399, we get spurious
CQE completion interrupts for the DCMD transaction slot (#31):

[  931.196520] ------------[ cut here ]------------
[  931.201702] mmc1: cqhci: spurious TCN for tag 31
[  931.206906] WARNING: CPU: 0 PID: 1433 at /usr/src/kernel/drivers/mmc/host/cqhci.c:725 cqhci_irq+0x2e4/0x490
[  931.206909] Modules linked in:
[  931.206918] CPU: 0 PID: 1433 Comm: irq/29-mmc1 Not tainted 4.19.8-rt6-funkadelic #1
[  931.206920] Hardware name: Theobroma Systems RK3399-Q7 SoM (DT)
[  931.206924] pstate: 40000005 (nZcv daif -PAN -UAO)
[  931.206927] pc : cqhci_irq+0x2e4/0x490
[  931.206931] lr : cqhci_irq+0x2e4/0x490
[  931.206933] sp : ffff00000e54bc80
[  931.206934] x29: ffff00000e54bc80 x28: 0000000000000000
[  931.206939] x27: 0000000000000001 x26: ffff000008f217e8
[  931.206944] x25: ffff8000f02ef030 x24: ffff0000091417b0
[  931.206948] x23: ffff0000090aa000 x22: ffff8000f008b000
[  931.206953] x21: 0000000000000002 x20: 000000000000001f
[  931.206957] x19: ffff8000f02ef018 x18: ffffffffffffffff
[  931.206961] x17: 0000000000000000 x16: 0000000000000000
[  931.206966] x15: ffff0000090aa6c8 x14: 0720072007200720
[  931.206970] x13: 0720072007200720 x12: 0720072007200720
[  931.206975] x11: 0720072007200720 x10: 0720072007200720
[  931.206980] x9 : 0720072007200720 x8 : 0720072007200720
[  931.206984] x7 : 0720073107330720 x6 : 00000000000005a0
[  931.206988] x5 : ffff00000860d4b0 x4 : 0000000000000000
[  931.206993] x3 : 0000000000000001 x2 : 0000000000000001
[  931.206997] x1 : 1bde3a91b0d4d900 x0 : 0000000000000000
[  931.207001] Call trace:
[  931.207005]  cqhci_irq+0x2e4/0x490
[  931.207009]  sdhci_arasan_cqhci_irq+0x5c/0x90
[  931.207013]  sdhci_irq+0x98/0x930
[  931.207019]  irq_forced_thread_fn+0x2c/0xa0
[  931.207023]  irq_thread+0x114/0x1c0
[  931.207027]  kthread+0x128/0x130
[  931.207032]  ret_from_fork+0x10/0x20
[  931.207035] ---[ end trace 0000000000000002 ]---

The driver shows this message only for the first spurious interrupt
by using WARN_ONCE(). Changing this to WARN() shows, that this is
happening quite frequently (up to once a second).

Since the eMMC 5.1 specification, where CQE and CQHCI are specified,
does not mention that spurious TCN interrupts for DCMDs can be simply
ignored, we must assume that using this feature is not working reliably.

The current implementation uses DCMD for REQ_OP_FLUSH only, and
I could not see any performance/power impact when disabling
this optional feature for RK3399.

Therefore this patch disables DCMDs for RK3399.

Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Fixes: 84362d79f4 ("mmc: sdhci-of-arasan: Add CQHCI support for arasan,sdhci-5.1")
Cc: stable@vger.kernel.org
[the corresponding code changes are queued for 5.2 so doing that as well]
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-03-27 13:18:22 +01:00
..
actions Actions ARM64 DT changes for v5.1: 2019-02-20 16:38:27 +01:00
al arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string 2019-01-30 17:34:36 +01:00
allwinner ARM: SoC device tree updates for 5.1 2019-03-06 09:36:37 -08:00
altera SoCFPGA DTS updates for v5.1 2019-02-15 15:38:59 +01:00
amd arm64: dts: amd: Fix SPI bus warnings 2018-09-28 12:32:51 +02:00
amlogic ARM: SoC device tree updates for 5.1 2019-03-06 09:36:37 -08:00
apm arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string 2019-01-30 17:34:36 +01:00
arm ARMv8 Juno/fast models updates for v5.1 2019-01-30 22:37:31 +01:00
bitmain arm64: dts: bitmain: Add Sophon Egde board support 2019-02-09 16:10:13 +05:30
broadcom This pull request contains Broadcom ARM64-based SoCs Device Tree updates 2019-02-15 15:28:45 +01:00
cavium arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string 2019-01-30 17:34:36 +01:00
exynos arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string 2019-01-30 17:34:36 +01:00
freescale This is the bulk of pin control changes for the v5.1 kernel cycle. 2019-03-11 11:12:50 -07:00
hisilicon ARM64: DT: Hisilicon SoCs DT updates for 5.1 2019-02-15 15:37:43 +01:00
lg arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string 2019-01-30 17:34:36 +01:00
marvell ARM: SoC device tree updates for 5.1 2019-03-06 09:36:37 -08:00
mediatek mt2712: 2019-02-15 15:59:45 +01:00
nvidia sound updates for 5.1 2019-03-06 14:10:46 -08:00
qcom This is the bulk of GPIO changes for the v5.1 cycle: 2019-03-08 10:09:53 -08:00
realtek arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string 2019-01-30 17:34:36 +01:00
renesas ARM: SoC device tree updates for 5.1 2019-03-06 09:36:37 -08:00
rockchip arm64: dts: rockchip: Disable DCMDs on RK3399's eMMC controller. 2019-03-27 13:18:22 +01:00
socionext UniPhier ARM64 SoC DT updates for v5.1 2019-02-15 16:20:03 +01:00
sprd arm64: dts: sprd: Remove wildcard compatible string 2019-02-18 11:33:57 +01:00
synaptics arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string 2019-01-30 17:34:36 +01:00
ti AM654x SoC updates for v5.1 (part 2) 2019-02-15 20:32:01 +01:00
xilinx arm64: dts: zynqmp: DT changes for v5.1 2019-02-15 16:11:55 +01:00
zte arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string 2019-01-30 17:34:36 +01:00
Makefile arm64: dts: bitmain: Add BM1880 SoC support 2019-02-09 16:10:07 +05:30