From patchwork Wed Aug 27 07:26:30 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aisheng Dong X-Patchwork-Id: 4786591 Return-Path: X-Original-To: patchwork-linux-mmc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 220EFC0338 for ; Wed, 27 Aug 2014 07:46:20 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4E65B2015E for ; Wed, 27 Aug 2014 07:46:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 54522201B9 for ; Wed, 27 Aug 2014 07:46:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753604AbaH0HqP (ORCPT ); Wed, 27 Aug 2014 03:46:15 -0400 Received: from mail-bl2lp0209.outbound.protection.outlook.com ([207.46.163.209]:41643 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754088AbaH0HqN (ORCPT ); Wed, 27 Aug 2014 03:46:13 -0400 Received: from CH1PR03CA008.namprd03.prod.outlook.com (10.255.156.153) by BLUPR03MB325.namprd03.prod.outlook.com (10.141.48.14) with Microsoft SMTP Server (TLS) id 15.0.1015.9; Wed, 27 Aug 2014 07:45:52 +0000 Received: from BN1BFFO11FD011.protection.gbl (10.255.156.132) by CH1PR03CA008.outlook.office365.com (10.255.156.153) with Microsoft SMTP Server (TLS) id 15.0.1015.19 via Frontend Transport; Wed, 27 Aug 2014 07:45:51 +0000 Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD011.mail.protection.outlook.com (10.58.144.74) with Microsoft SMTP Server (TLS) id 15.0.1010.11 via Frontend Transport; Wed, 27 Aug 2014 07:45:51 +0000 Received: from shlinux1.ap.freescale.net (shlinux1.ap.freescale.net [10.192.225.216]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id s7R7jZGw024520; Wed, 27 Aug 2014 00:45:49 -0700 From: Dong Aisheng To: CC: , , , , Subject: [PATCH V3 4/6] mmc: sdhci-esdhc-imx: set the correct max timeout value for uSDHC Date: Wed, 27 Aug 2014 15:26:30 +0800 Message-ID: <1409124392-28899-5-git-send-email-b29396@freescale.com> X-Mailer: git-send-email 1.7.8 In-Reply-To: <1409124392-28899-1-git-send-email-b29396@freescale.com> References: <1409124392-28899-1-git-send-email-b29396@freescale.com> X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:CAL; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(6009001)(199003)(189002)(48376002)(102836001)(229853001)(2351001)(50226001)(105606002)(107046002)(46102001)(106466001)(4396001)(62966002)(31966008)(21056001)(74662001)(81342001)(95666004)(87936001)(36756003)(74502001)(77156001)(26826002)(88136002)(47776003)(20776003)(19580405001)(44976005)(64706001)(92726001)(6806004)(85852003)(85306004)(87286001)(81542001)(83072002)(77982001)(230783001)(50466002)(19580395003)(89996001)(99396002)(104166001)(80022001)(84676001)(92566001)(575784001)(93916002)(68736004)(104016003)(110136001)(83322001)(79102001)(33646002)(97736001)(90102001)(76176999)(50986999)(76482001)(42262002); DIR:OUT; SFP:; SCL:1; SRVR:BLUPR03MB325; H:tx30smr01.am.freescale.net; FPR:; MLV:ovrnspm; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;UriScan:; X-Forefront-PRVS: 0316567485 Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=Aisheng.Dong@freescale.com; X-OriginatorOrg: freescale.com Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The default sdhci driver write 0xE into timeout counter register to set the maximum timeout. The value is not correct for uSDHC since the max counter value for uSDHC is 0xF. Instead of using common timeout code in sdhci, we implement esdhc_set_timeout to handle the difference between eSDHC and uSDHC. Currently we simply set the max timeout value as before. But in the future, we probably may implement IMX specific timeout setting algorithm and use suitable timeout for different CMDs. Reviewed-by: Shawn Guo Signed-off-by: Dong Aisheng --- drivers/mmc/host/sdhci-esdhc-imx.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index 546ed02..587ee0e 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c @@ -888,6 +888,16 @@ static unsigned int esdhc_get_max_timeout_count(struct sdhci_host *host) return esdhc_is_usdhc(imx_data) ? 1 << 28 : 1 << 27; } +static void esdhc_set_timeout(struct sdhci_host *host, struct mmc_command *cmd) +{ + struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); + struct pltfm_imx_data *imx_data = pltfm_host->priv; + + /* use maximum timeout counter */ + sdhci_writeb(host, esdhc_is_usdhc(imx_data) ? 0xF : 0xE, + SDHCI_TIMEOUT_CONTROL); +} + static struct sdhci_ops sdhci_esdhc_ops = { .read_l = esdhc_readl_le, .read_w = esdhc_readw_le, @@ -899,6 +909,7 @@ static struct sdhci_ops sdhci_esdhc_ops = { .get_min_clock = esdhc_pltfm_get_min_clock, .get_max_timeout_count = esdhc_get_max_timeout_count, .get_ro = esdhc_pltfm_get_ro, + .set_timeout = esdhc_set_timeout, .set_bus_width = esdhc_pltfm_set_bus_width, .set_uhs_signaling = esdhc_set_uhs_signaling, .reset = esdhc_reset,