Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp658959img; Fri, 22 Mar 2019 06:05:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqzpkGTbzpcVyZSyyg0qSU7T9QN+KnyP569Y6dGHlEolC0MTY+wlZG4+oC3yZFhuEOje3wsP X-Received: by 2002:a17:902:9a83:: with SMTP id w3mr9442440plp.137.1553259939863; Fri, 22 Mar 2019 06:05:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553259939; cv=none; d=google.com; s=arc-20160816; b=DmC//5g82RXW0Vw89QL+/LwUVI03WJcHYaQCO9HxFgQcyKG7FcxKiTSBUDhAWBgBXQ 8KbnGNyuyHtCi6v8g47FNf0xIWtaChemQS2b77Zv8iNotwozGTmHfNx373MwAqtVSntD cAdJA34MbGRZKaEnIFQemBKXkWPrAesA9WHAvbB7XnM/qgei9TBFqKZa1ogxl++ipShU /Fq03Lf0UmOPIvF4aQKj+dsM35ZwDKiwTZalCCZxBEBi1QYW26/xwWhUxEvua976Pmft 6lYQsZRFHkW1qq85GlgZ5Rj+LWvS4pYx9EfiX0EFkWpyQasCJ+opM7+az8Z7yKYqi5i+ 7RYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=FHLhUK1rHXDpcRNpj6ABym9mygcrTQCxUwfbZHqCJJo=; b=EHHfwzGxqg2TE8M9HHiDnzkNtOx5OO/NpZJ0esT8oz1Qjhg3gLSpzsxvXhz0mmrl2X eGT7jM7caT4DiKT8AumS4QvSl471bfUVnmIs3742QHBGg09PxceRLcsxPTSgCILMhUYt uIpNS/4aEDEIHQSxokadHkG7c5h3S7kIP4FPpLKR03+KZLCQcvyQHMW33TdjNIyppX1h PgmEna6fpHiBFHljvqn+7saCCxOpA2rtLtUCOqHGOZQd72Fy8wegdOs7XbAyB2D0mlGe ZG8d1f5A1PJkrwDJP2MAYq1xnNSyX9RUk4hr3X0Xa6XjgkJvS9g9KqwdHrGtZZ5WDmTT 7akw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d34si7096642pla.89.2019.03.22.06.05.24; Fri, 22 Mar 2019 06:05:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731119AbfCVLjX (ORCPT + 99 others); Fri, 22 Mar 2019 07:39:23 -0400 Received: from vegas.theobroma-systems.com ([144.76.126.164]:38486 "EHLO mail.theobroma-systems.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730830AbfCVLjU (ORCPT ); Fri, 22 Mar 2019 07:39:20 -0400 Received: from ip092042140082.rev.nessus.at ([92.42.140.82]:55278 helo=purcell.lan) by mail.theobroma-systems.com with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1h7IVo-0006yM-Oe; Fri, 22 Mar 2019 12:39:00 +0100 From: Christoph Muellner To: robh+dt@kernel.org, mark.rutland@arm.com, heiko@sntech.de, shawn.lin@rock-chips.com, ulf.hansson@linaro.org, adrian.hunter@intel.com Cc: Christoph Muellner , Philipp Tomsich , Michal Simek , Matthias Brugger , Viresh Kumar , Douglas Anderson , Enric Balletbo i Serra , Jeffy Chen , Lin Huang , Randy Li , Tony Xie , Vicente Bergas , Ezequiel Garcia , Klaus Goger , linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org Subject: [PATCH v3 3/3] arm64: dts: rockchip: Disable DCMDs on RK3399's eMMC controller. Date: Fri, 22 Mar 2019 12:38:06 +0100 Message-Id: <20190322113808.16858-3-christoph.muellner@theobroma-systems.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190322113808.16858-1-christoph.muellner@theobroma-systems.com> References: <20190322113808.16858-1-christoph.muellner@theobroma-systems.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Signed-off-by: Philipp Tomsich --- arch/arm64/boot/dts/rockchip/rk3399.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi index db9d948c0b03..1a16d6ce3ea8 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi @@ -333,6 +333,7 @@ phys = <&emmc_phy>; phy-names = "phy_arasan"; power-domains = <&power RK3399_PD_EMMC>; + disable-cqe-dcmd; status = "disabled"; }; -- 2.11.0