From patchwork Wed Apr 26 02:45:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yangbo Lu X-Patchwork-Id: 9700193 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3F4F76020A for ; Wed, 26 Apr 2017 03:01:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 201D72841D for ; Wed, 26 Apr 2017 03:01:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 13CC42843B; Wed, 26 Apr 2017 03:01:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CE2452841D for ; Wed, 26 Apr 2017 03:01:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1432457AbdDZDBS (ORCPT ); Tue, 25 Apr 2017 23:01:18 -0400 Received: from mail-co1nam03on0074.outbound.protection.outlook.com ([104.47.40.74]:9581 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758760AbdDZDBQ (ORCPT ); Tue, 25 Apr 2017 23:01:16 -0400 Received: from DM5PR03CA0024.namprd03.prod.outlook.com (10.175.104.34) by CY1PR0301MB1193.namprd03.prod.outlook.com (10.160.165.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13; Wed, 26 Apr 2017 03:00:44 +0000 Received: from BL2FFO11OLC015.protection.gbl (2a01:111:f400:7c09::189) by DM5PR03CA0024.outlook.office365.com (2603:10b6:3:118::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13 via Frontend Transport; Wed, 26 Apr 2017 03:00:44 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.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; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11OLC015.mail.protection.outlook.com (10.173.160.81) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1047.9 via Frontend Transport; Wed, 26 Apr 2017 03:00:43 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v3Q30eAQ020718; Tue, 25 Apr 2017 20:00:41 -0700 From: Yangbo Lu To: , , Adrian Hunter CC: Xiaobo Xie , Yangbo Lu Subject: [PATCH] mmc: sdhci-of-esdhc: poll ESDHC_CLOCK_STABLE bit with udelay Date: Wed, 26 Apr 2017 10:45:49 +0800 Message-ID: <1493174749-31003-1-git-send-email-yangbo.lu@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131376492440146808; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39840400002)(39860400002)(39380400002)(39850400002)(39400400002)(39450400003)(39410400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(50986999)(38730400002)(33646002)(2906002)(356003)(8936002)(8676002)(106466001)(5003940100001)(105606002)(81166006)(53936002)(54906002)(50226002)(77096006)(230783001)(85426001)(36756003)(305945005)(86362001)(8656002)(48376002)(50466002)(104016004)(4326008)(5660300001)(189998001)(47776003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB1193; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC015; 1:WBN9jBWKpdeQgnmAVDGJa6zWQaLO5MMdt4eRz1d5xBS3IUDUAMKemshsqz/TvG6KG84hSRV6ppYQRJjuxbpuX5JTgJwFBJlHXxbjk//OqdTeATt4m6ehUCzEZ0JWvcU81+GGTTmoC0jZrSIhq5u0shwtDupNDYMU48Jvg9BjRDKwyBdYHXs8cXkIGOOyrM9nZfana2uElBQHNJObt1zKpR3iQYXgbfNc88hlmAsB4tkVbmg5/cCZBiziPYuv99Wf8jouynC0KJe1uOjACU/vB5GA3uoclOo9kDgzQE0MAojoX/O4V5VXeJLn2P+rNtr0LXYq/Ujh1tAmlB/j/Yv2zTzwB6xgHy74aL8AKUY/w1AbXy/0yHdpVX8EpvOv/F3/TXgqgWHK1zg/hYcQpOL5dncaktqG4Vi+9TZ16X0jgEAZLmj8USDx4rOrLaae3Rsfhgosy0ABBUGZAwnQwFkg/LoHSIQ7wg6SAyQJJby1W8UYDJTqL85QldBhtnMmxA+/aN5lLaBFMUoBUUXKxkXEknSbojcSDGBKgfPMfyc3uumHQlRmlf/PXCAerX/NLSMJ1Du+KUq/drN7MUEQnfkPHEvCMoHomfROMMgeyGTPdoSpzeh24cHZlSybr5N3R/yQyrGuYMYdhjxfir9PnxxSUe3FumKGF/OA6/t+duNgTWW/cCh+MATy4LUU+LYQ+eKXnQ5CeLlEMspJX88I3y9k8Z4kn/+On3CycrI5mYWgUN4AbjrwETte25TYgMJx4gUyQC7eInOrUfRcG2w2srV+BQ== MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1c2c1744-cfbe-4b20-f21c-08d48c506e2f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:CY1PR0301MB1193; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1193; 3:j0B8vC5KQr/lpU/s6MZcyQsUnDv5N6Jv9sgaZUbPRGxHdoqcwUPD3rjPTt0zUqn58esGEjhVpEToUNubmKhjRof4LVl4SQ3wlrYrGXv3zF85kS8037QV2KHFXwVWPx1ns3NJyEnGajVBSI9XZCzbVvpDFs3ohgCEvr0w/0Vurfd0bhUkEdLRlt0Z0qEDGQuUXRU6LBDDoGpkFerTwmPs/tOm6MPCgsPE4QJT+sHq8Cw4uzuglLUjx1/KMLh/ZnO/jMDEM4YtMWZYqH+QFbV3tYpKNQoKKvUd2A3u2GhVrkNDzq0Or2Y2XZH2hx8rXOGaqkhRMCFRN1AxHkpJ7XjMuwYOLsXBc3o75OJ9tN4d9+762J3SBdAR1YMZjLXEC3pVBGTWi1ogVJzTtMbfcO+3+cWKlMfBE6BFEXyJrzstA2LVuPd1r/U6cdJkgt7QrnkA; 25:eGKFZAj6t7tMhkXIbVrGL4+7lwkX/3ujLwbBIr0nriiealgJP8w0cHECbckLt+Aa8/8VL3aNcgRwgjgQpX+a6RYcr938CIxir/mSBp+Gwduj1ve1Q59KE6Kbphh+5mIl1aO0cQbGvVIFsvJZC5XzuocFm094T7fiD/5qLgXbibm3S1vU5hVy14bYTmeqdVv6wBeM1Vu3LWqc9D5EqjcjvtCbBhyecCIxpkx6pWPLqI/m21g2oW0/IDCjW3rTISSPLttnl06HVDJQW6K4Yv4rR3cM3gqoZLoiOnDyH5SyvlN0riSAMOi368ebEo8vz5uqfAgAtNJ1gQZmhC7gG4uKO7zBz2Qie1adStPBSqqcT3ITOiAtzI/wd1f+8MkAOMBSABnJIazh/h/g8q7Mo9y0WJb+qE99Onq3iZrMBO8Un0LWvxhJYrC0UNBr7bLuUZ8EOwfE05uaqO0PBbRm38H16Q== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1193; 31:EURDcfFfFZg69CpuSNP/Gl3U3uhZNhBTxiI4/6eJg1hRA3tmFRi/gMGpG6cI3PlDuX4VVK6At7DJjC2cFhtC8Xi9fA5BH8MliZ1SI6Ft+qykZJo+UUFPzdDgc4EhJQ57UCnz+pYdLM8uhbZSxySXcND6U1eSgbUHoy9rxC3oWtHnr4GOwAwqL9BGTkrJ+d3BMZRTYWSbafGxnDeQqmlRPyP/YncWzYAWalvU7so7hLbrOv9nz3s76qVhvPyeMo0O/tMAEFWsXhXRbb5hSWAdwg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(601004)(2401047)(13017025)(13015025)(8121501046)(5005006)(13024025)(13023025)(13018025)(10201501046)(3002001)(93006095)(93001095)(6055026)(6096035)(20161123556025)(20161123563025)(20161123561025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123565025); SRVR:CY1PR0301MB1193; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB1193; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1193; 4:5jYH9PvRa0wA6EHEdyNcIIcdU6Fxwrc0Xz6yBI8zzpIFNTNurZ1BAeMTl0AvannGjfL/bLvLYH2qQhqxzZ8Q0tI5PA8g5qCGTQub1F9vPpqHYrEjWIwcI5p2U0Grdg2nD4dZ+b5IKIDlxWzH44O0mNrxZUNp0x7YN4IWCcU+F8XdIBcViCIIP+dfZKet8c/yPtraMJO6xbKH8TrSpqnLaXIGty1O9u1Ttotix8v7jKuIUNVGwhiJ7gL/+u565y4BW4+GT8YZOBVzP8lTIOPQSzk00TrRm5DwrjOxT2SpgxJz9MHBy/2VAIUAWrdse+Cp5uWpv+YBg67u9TMqC26WXYYrZRoXj2jaUV+nCEpsgNk8Ev+V2+aIMcDOuQoOuXMJ4S9NnIsHKWgp9enmWCTBSd1u5BgTCnbZXHpbFVRfM3UNOm7DM0P6BfBMFHeY282PMazHi5qL8TTLjlwK6lwOHgpZZqj2TSiP+BrrbcOrk0gNmyAQGVUqJBJsMYumlSDttFtgJW109EvwBSUiDGqB0qmoqKD9bjRZ+xxCfDWoDm5dxspN+5sv1g/YU2abrc2ln8H0Pza85CKWarrGERk7nvuKvRmEw1ZQanhu7maPBePV0IPl0eTDte7PF+qW+wh1oH4P0Ubl4mYmaBGSai9llNZUAC+P8VGPiH4aBjhGpBQzZlU/qihx5VluDt/x+gYj0ttfh8Xd1zKU/iIwLzcVhyn8VdLyMSTpZJKSqGZVOgKjwsb8AXEhKRNYRAzFqJdekk0CE6rRwJxKHeCDbjwVpMd9Ii1JpUbEv4D6RKP4lnlrtEodfZXKDFojvDCB8bsfN8hf77PQSpdWQ9cnTrAeMK9sWa903y60n0+whmyEidI1R4Ielul/kAP4LmfcmSE5DL/6zGM3MASLcJkgWgKPrXkGqkb6UxFXpbMofr1v hqY= X-Forefront-PRVS: 0289B6431E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB1193; 23:LPj0mu1sg+12kYqBlYVHK1Yb64+uF4GTqH+cURn?= =?us-ascii?Q?jj3e0BQQFIgaR8cIx6wLK4CcuQlEfVPOBvUI8O3kQTx/WExkAhdjdYUyYX0+?= =?us-ascii?Q?tkOeWg90fFmCKFmP0WPss9jrxCUzgS3fh2lzFU1RsAVZldztfi559rxWKXZF?= =?us-ascii?Q?KG4eCgxTMatafQGHhJRQMyz+B+wWEiAQCR/wOsWevOs9Fnn5XGGh8vnhmG3z?= =?us-ascii?Q?Jkr3y5EtoQVQuKkQ8s5gZsGhY93vvGRMzV/SGwWcxlC350bzl9RW0s3YB3It?= =?us-ascii?Q?IhnOZTGlGvBOBM3crEq63yMBOqOfKFvePX+eeX0f3BWE6nIxeZO92w/1T58j?= =?us-ascii?Q?Gv0/QYipNvE8k82ZBS0q5ex78aJsTlcAcra5XmYQq2ue9M3aM+Nyk0OV7349?= =?us-ascii?Q?HKeBXDO3uzz4clSCi0UrhXRsYgpdd5mutLXFeFM4ojAHXRBAvfWbKQk83Eh1?= =?us-ascii?Q?qCgtEfcf/pBZGIeLZ9IjUleMbfEmItCTY5lJWEZEV0XQzMd1L8m3d6OegmBv?= =?us-ascii?Q?v/9n6+uMOrW2ES4uf70jgCNBZCia1rYxmU3gtqPS4/0ujecjMN8pXjtcwbVv?= =?us-ascii?Q?etyiCoE+BY9MeSjMExV6iOKo+H1jzENJjrM8uh++SBdpZPtYQYgpluDoCkHD?= =?us-ascii?Q?TufRvsHbRtwziwqTYtWoun7jvezRgX+wbPUHZyWZflClVSCkro+9Ds4N62dq?= =?us-ascii?Q?P0/oATZANXiE6CsLQM2KCzPJBibxK+8SuxhkmCvRS+c6TGDPuG/MgcGFpmcY?= =?us-ascii?Q?9AgTqtUYKzTUCahCKF1GI8Stc+1FYgA25laSKe9AqixzvPXQtFG4FYZxPpHW?= =?us-ascii?Q?qXtGl64VEZYDaBH1zRvUMWy/wLTcf6fe2ftxZCbINbhO4NuYLm5LMlA6OolR?= =?us-ascii?Q?5Eb+EEaNdA13Rl/TUH+n/dzKBVfjFdHmo8FPsQKxeyVsUgSJsDyjzNpk+IaP?= =?us-ascii?Q?AhlpLzNqaBZqKFFciCCe+m453wtmocUsN3tGsATlqSjJ+DtlBzXV7avHza2Z?= =?us-ascii?Q?NXzLrq5FyHG52LVgYgIYFYG/TqSOREh12Sh6mwkRmkhnff7OPxlrMgFUOWdb?= =?us-ascii?Q?OpneCc8/fQZOEWZT15n/fDqty5yUiNCR5LYKwN+egGGjiD7rVPsublq2IMtT?= =?us-ascii?Q?scNnjBY9laHM=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1193; 6:P39EPMK+UzSfUsuUmV/YwaYspy3exPPXfYmimPAvxqk9Sd0sWPB2F9YFYCs9uXt44ehaPx041G710g50m1Sl7tZ/mfNSbn3ce2R29gC/9tXf9zar4ozQhBc0B+fsZ2e9Gnayg5FbAZinje4wml/iVJ6/fIVFCU/BO08VvHRnuGrftn2zx7FxNeNWSK1vtNFDrQHTs8FtAi+iuxrekShpj1gDVtm0ZGv5CmiixgYzGsxLG2ym8QD+aniz/C6OTluAsIYEIlC0QLzsNyqD1NhJcJnMfODzpoTw6pJ+5494B8FKbL6Ra5bjQTqO/VsdSkwh0R1yLI+nzxaRlinlVeItzWgC+sfr36fHk3yKpn07WJNONZurKpV4Es27GJIDotaDPJc24ibcvTXT9qU+ltV6fHHVXv1PzwHfLzdkewxJbR5DYCRB1U3Q76LmTwBWeaMwrK2KY2jwP5TW77e8fxvQUwZfcfka2JDOgxXROiqgYp04HOenXq2+35l/esMWTFtoPwuHEYyksUUvt4qE2Pz1pw==; 5:aJG8gl3M2sSKAiSeLDkeV9459GLZmHqUjbxXA4NIVqqBWK8taYN0VTEnthPq35L9DYe/QPQywXo8s95tWzvdsnCcVnQzPWBfuQ/ZGEuIXsyx2/im+rx30+iawDNRzdkEiio6jmgoxMcESbkYjYEbl/i9RlJoCW7kitwN6mvSYcYcuXWrdYm9BqbB0Ps/K5Uw; 24:Z7YvjPuznBsak6RAu2ZW1eSSZ7v8pOoggbOlSUEoEsX2DZOI3BmgHiSncYB8+XtNVQT6jLLZ5TdFFAyljZ5qFWnIcAQbjrNDIdOe+Cn7rV0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1193; 7:WEm9OE1de2PFUgT3WccMNlbKDWrnFmUN9k2GoJhi9v3UQjfxDZNvrtVhfDSTvzm8O8u/6vNQnTKDVjYVwpGurGjFwe2vVCkvAgaNBLXGm4GiSQ+UlOJQDlYhvnzZg+uYVfyoAF8tx792KUjPm5v8h+r+mvoKgnbgx9reMlcswrAJb1yy8RA4qODgoPMtCuy8Dl3sVu8p/7rc1eJdDjWgkfTdmSaG/Msqm0DcBbr+5nJZJTrs+xWlJaheLViXO49DIw7UAgfnbc/2/e7YqR+67VuFsGTcXgT4YP9Sf+HKVNbS0HUfcNLx2QCP/sljc7ADQPVwPZhP4P7eZ+AMrA8zSA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2017 03:00:43.8430 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB1193 Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The loop to poll ESDHC_CLOCK_STABLE bit with mdelay would waste time because the time to stabilize is much less than 1 ms. This patch is to use udelay instead to avoid time wasting. Signed-off-by: Yangbo Lu Acked-by: Adrian Hunter --- drivers/mmc/host/sdhci-of-esdhc.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/host/sdhci-of-esdhc.c b/drivers/mmc/host/sdhci-of-esdhc.c index 7518360..77dfc59 100644 --- a/drivers/mmc/host/sdhci-of-esdhc.c +++ b/drivers/mmc/host/sdhci-of-esdhc.c @@ -445,7 +445,7 @@ static void esdhc_of_set_clock(struct sdhci_host *host, unsigned int clock) struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host); int pre_div = 1; int div = 1; - u32 timeout; + ktime_t timeout; u32 temp; host->mmc->actual_clock = 0; @@ -489,15 +489,14 @@ static void esdhc_of_set_clock(struct sdhci_host *host, unsigned int clock) sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); /* Wait max 20 ms */ - timeout = 20; + timeout = ktime_add_ms(ktime_get(), 20); while (!(sdhci_readl(host, ESDHC_PRSSTAT) & ESDHC_CLOCK_STABLE)) { - if (timeout == 0) { + if (ktime_after(ktime_get(), timeout)) { pr_err("%s: Internal clock never stabilised.\n", mmc_hostname(host->mmc)); return; } - timeout--; - mdelay(1); + udelay(10); } temp |= ESDHC_CLOCK_SDCLKEN;