Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp493036pxb; Wed, 27 Oct 2021 06:55:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy/XkHgWqqALxWMO202yVZ5lb3wbu7eV+6VNvp7SCAXvtnEPDdt5Msu24Ukz7v/aGXLV52u X-Received: by 2002:a17:902:a412:b0:140:a4a:4ba with SMTP id p18-20020a170902a41200b001400a4a04bamr28700349plq.52.1635342952751; Wed, 27 Oct 2021 06:55:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635342952; cv=none; d=google.com; s=arc-20160816; b=rOBwfz78jBWhkboF/A2a2uUwRT7xRGUeiE14UkMg+g0WSroCCaXm+Wh8ap++9Bhr8n jj0vdnbLEWcmAL+Y5lX40IN3u2I3XcbXSXx18vMnQOareaia0mcsxEY2dg8xkKp/T+C8 epo7o147+HKjdcIfGVLI0bvLUs7/cfZxT/w4qNjwjuqf4E3vpyScyBARDmWfAZuphtQ3 H6daj6orvkeHeC/+KA5nKVMR5w2I9sfY4hKVT+IwCuyUdmu19RQGg1epLTlwM5bQs5IJ sbx4NQW2ZQ2LkptTY7MjLwXSGXwdC+tjWejW4Z0Md3JTfeL45urW8FIx2mWKELpTBZhR HeQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=uJOHzqM6tu/GdjOMpxhMf6CTsxfujpHGZzve3IEmLX8=; b=d8rgc8kndGxTjqXr8Yjzzjl5BlUgL7swQF2K8x6DMjGzQaDC+KNuP3WzjpOzIh87vU I1utieBIHub3Bys8T/+7aIsCLWqXqK5eSUZDqVGfzlxj4DvgTKSMhOM2PF7SGdnYxMPE Gy3rWROBysiNrYDegyE0ZdhEL3kax2CiwROfLOnJLqU7iK6In64ma4poo9VjzZG+uQ/F sl7sT7Z5VlCUxWG8G6yvF9+UMJ9v/w5LfLI/Tz1wwG9bODAeC/B9JS5KRbX6A/qKrCwq SjiC+MOd6V41rG60ZfYvPrmS3MkuFW6YPhNgmf/Ib2Fb0CRPOeaQiW+1ua6NUOi6WRRY wzTA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q2si109254pfj.127.2021.10.27.06.55.34; Wed, 27 Oct 2021 06:55:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236166AbhJ0A5x (ORCPT + 99 others); Tue, 26 Oct 2021 20:57:53 -0400 Received: from mailgw01.mediatek.com ([60.244.123.138]:33852 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S232410AbhJ0A5v (ORCPT ); Tue, 26 Oct 2021 20:57:51 -0400 X-UUID: b2ad23b1aa9443eaa969d3190fcc4121-20211027 X-UUID: b2ad23b1aa9443eaa969d3190fcc4121-20211027 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1685992770; Wed, 27 Oct 2021 08:55:24 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.15; Wed, 27 Oct 2021 08:55:23 +0800 Received: from localhost.localdomain (10.17.3.154) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 27 Oct 2021 08:55:22 +0800 From: Wenbin Mei To: Ulf Hansson CC: Adrian Hunter , Ritesh Harjani , Asutosh Das , "Matthias Brugger" , , , , , , "Wenbin Mei" , Subject: [PATCH v2] mmc: cqhci: clear HALT state after CQE enable Date: Wed, 27 Oct 2021 08:55:20 +0800 Message-ID: <20211027005520.14481-1-wenbin.mei@mediatek.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org While mmc0 enter suspend state, we need halt CQE to send legacy cmd(flush cache) and disable cqe, for resume back, we enable CQE and not clear HALT state. In this case MediaTek mmc host controller will keep the value for HALT state after CQE disable/enable flow, so the next CQE transfer after resume will be timeout due to CQE is in HALT state, the log as below: <4>.(4)[318:kworker/4:1H]mmc0: cqhci: timeout for tag 2 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: ============ CQHCI REGISTER DUMP =========== <4>.(4)[318:kworker/4:1H]mmc0: cqhci: Caps: 0x100020b6 | Version: 0x00000510 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: Config: 0x00001103 | Control: 0x00000001 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: Int stat: 0x00000000 | Int enab: 0x00000006 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: Int sig: 0x00000006 | Int Coal: 0x00000000 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: TDL base: 0xfd05f000 | TDL up32: 0x00000000 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: Doorbell: 0x8000203c | TCN: 0x00000000 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: Dev queue: 0x00000000 | Dev Pend: 0x00000000 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: Task clr: 0x00000000 | SSC1: 0x00001000 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: SSC2: 0x00000001 | DCMD rsp: 0x00000000 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: RED mask: 0xfdf9a080 | TERRI: 0x00000000 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: Resp idx: 0x00000000 | Resp arg: 0x00000000 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: CRNQP: 0x00000000 | CRNQDUN: 0x00000000 <4>.(4)[318:kworker/4:1H]mmc0: cqhci: CRNQIS: 0x00000000 | CRNQIE: 0x00000000 This change check HALT state after CQE enable, if CQE is in HALT state, we will clear it. Fixes: a4080225f51d ("mmc: cqhci: support for command queue enabled host") Signed-off-by: Wenbin Mei Acked-by: Adrian Hunter Cc: stable@vger.kernel.org --- drivers/mmc/host/cqhci-core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mmc/host/cqhci-core.c b/drivers/mmc/host/cqhci-core.c index ca8329d55f43..b0d30c35c390 100644 --- a/drivers/mmc/host/cqhci-core.c +++ b/drivers/mmc/host/cqhci-core.c @@ -282,6 +282,9 @@ static void __cqhci_enable(struct cqhci_host *cq_host) cqhci_writel(cq_host, cqcfg, CQHCI_CFG); + if (cqhci_readl(cq_host, CQHCI_CTL) & CQHCI_HALT) + cqhci_writel(cq_host, 0, CQHCI_CTL); + mmc->cqe_on = true; if (cq_host->ops->enable) -- 2.25.1