Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp443765ybl; Tue, 28 Jan 2020 06:06:16 -0800 (PST) X-Google-Smtp-Source: APXvYqxVLrCtqcJWHRkwM9p4HCCY0D48aXClQQFRuCYVkOFLfrKG2PCZC77DDZakG35pIbAJbov0 X-Received: by 2002:a9d:4541:: with SMTP id p1mr13177018oti.199.1580220376134; Tue, 28 Jan 2020 06:06:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580220376; cv=none; d=google.com; s=arc-20160816; b=a0rlzvPX10Bzo298peMBjCMPl8C7nltk3kDlfbeBWcU4Ea2WKEnYbXX5XUHSYIOB8n IREJH7kDyH4GcstR1f+d7oxBW+tOUTafp109QEinAa/fjvbqsl0+1leWF0ErGFTZLKgw P4ayTfRHOz8yzCgcqd7p11JjaKXTYhaZE4Lkb47JrNy0sYaxuzfgytuYmwFGqyWcmrOj Ctzt9AseVjAxmmdOcs7PwLzuAYPAGuYPr0IIG8YhQSy4S1ZTxld2zpQ2PE7Bk2dmKh8M TYoYxa2HLyqHIRbnuUIqPRVVn2pJT/kMHnJyPnMOoUaR1omr9G838p2181wx7taYrHNi Kd5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=zym60iXYBCo6/Fqmq4QGOrreeP45oGN7VnJu/IftRTg=; b=mAGtA8J4nW1cNWVfwzI9p/CsS2eSAgFhmzWSxyMF55JZlFCCUX2IUiDFdRBNOnRPcC 5Z7gSMZi9CtlinEVdji1vZV5dFrYV5t64pwGK9Ip/X3gwECEAcOCs992kGiCtz5klTSA WRCnLl7NZhwzzf1JK9Mnrxr4+N4jWQp72ZDJpaWiJ3OSBpMluTcUOt8LLaft66LG3xbJ jk0v+H9H+jvAZK/3ytWklYucBTawPDaihHtS/7hhNtWwSh7KerwBAXEym0/as77IhKph ZQU/SKjgyTImr5+pGRrxct7VqtvsqfQ6U39SfbGvLKVHLX6u3YccwnWxcXdOSF9dWdDX jYEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=NaMtuGck; 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 i13si8456589oth.175.2020.01.28.06.05.54; Tue, 28 Jan 2020 06:06:16 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=NaMtuGck; 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 S1727902AbgA1ODh (ORCPT + 99 others); Tue, 28 Jan 2020 09:03:37 -0500 Received: from mail.kernel.org ([198.145.29.99]:50332 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727884AbgA1ODc (ORCPT ); Tue, 28 Jan 2020 09:03:32 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 54D1A24694; Tue, 28 Jan 2020 14:03:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580220211; bh=w3mIiLiBLhBbNSIrRZreHeBRo36GmABG/nd5bGKH9rM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NaMtuGckqZaDQLIhOiiJpRHF7bm0Ro5YomEeWttCAAdY93eB9RDbY2Z3IhH9S06D9 qCfqLw+WLx74j21NZ0unY/c7h/RfRXzak7lJPXDKu1h9xT9T2sMSAgy46l/Ia9YOEC JaB7DMOh0CZZaJBGOWRcg3h4yJg4S6B09aIMEbOE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Faiz Abbas , Adrian Hunter , Ulf Hansson Subject: [PATCH 5.4 061/104] mmc: sdhci_am654: Reset Command and Data line after tuning Date: Tue, 28 Jan 2020 15:00:22 +0100 Message-Id: <20200128135826.005373766@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200128135817.238524998@linuxfoundation.org> References: <20200128135817.238524998@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Faiz Abbas commit de31f6ab68a3f548d88686d53514f252d78f61d5 upstream. The tuning data is leftover in the buffer after tuning. This can cause issues in future data commands, especially with CQHCI. Reset the command and data lines after tuning to continue from a clean state. Fixes: 41fd4caeb00b ("mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver") Cc: stable@vger.kernel.org Signed-off-by: Faiz Abbas Acked-by: Adrian Hunter Link: https://lore.kernel.org/r/20200108143301.1929-3-faiz_abbas@ti.com Signed-off-by: Ulf Hansson Signed-off-by: Greg Kroah-Hartman --- drivers/mmc/host/sdhci_am654.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) --- a/drivers/mmc/host/sdhci_am654.c +++ b/drivers/mmc/host/sdhci_am654.c @@ -236,6 +236,22 @@ static void sdhci_am654_write_b(struct s writeb(val, host->ioaddr + reg); } +static int sdhci_am654_execute_tuning(struct mmc_host *mmc, u32 opcode) +{ + struct sdhci_host *host = mmc_priv(mmc); + int err = sdhci_execute_tuning(mmc, opcode); + + if (err) + return err; + /* + * Tuning data remains in the buffer after tuning. + * Do a command and data reset to get rid of it + */ + sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); + + return 0; +} + static struct sdhci_ops sdhci_am654_ops = { .get_max_clock = sdhci_pltfm_clk_get_max_clock, .get_timeout_clock = sdhci_pltfm_clk_get_max_clock, @@ -477,6 +493,8 @@ static int sdhci_am654_probe(struct plat goto pm_runtime_put; } + host->mmc_host_ops.execute_tuning = sdhci_am654_execute_tuning; + ret = sdhci_am654_init(host); if (ret) goto pm_runtime_put;