From patchwork Tue Jul 12 07:46:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aisheng Dong X-Patchwork-Id: 9224741 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 4369060572 for ; Tue, 12 Jul 2016 07:58:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3528227BFC for ; Tue, 12 Jul 2016 07:58:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2979927E63; Tue, 12 Jul 2016 07:58:28 +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=-4.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A891E27BFC for ; Tue, 12 Jul 2016 07:58:27 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bMsYd-0000Xc-KG; Tue, 12 Jul 2016 07:56:43 +0000 Received: from mail-cys01nam02on0087.outbound.protection.outlook.com ([104.47.37.87] helo=NAM02-CY1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bMsWx-0005sf-IL for linux-arm-kernel@lists.infradead.org; Tue, 12 Jul 2016 07:55:01 +0000 Received: from DM2PR03CA0006.namprd03.prod.outlook.com (10.141.96.16) by CY1PR0301MB0780.namprd03.prod.outlook.com (10.160.160.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.528.16; Tue, 12 Jul 2016 07:54:38 +0000 Received: from BN1AFFO11FD048.protection.gbl (2a01:111:f400:7c10::126) by DM2PR03CA0006.outlook.office365.com (2a01:111:e400:2428::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.534.14 via Frontend Transport; Tue, 12 Jul 2016 07:54:37 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; gmail.com; dkim=none (message not signed) header.d=none; gmail.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 BN1AFFO11FD048.mail.protection.outlook.com (10.58.53.63) with Microsoft SMTP Server (TLS) id 15.1.523.9 via Frontend Transport; Tue, 12 Jul 2016 07:54:37 +0000 Received: from shlinux2.ap.freescale.net (shlinux2.ap.freescale.net [10.192.224.44]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u6C7rxti002725; Tue, 12 Jul 2016 00:54:34 -0700 From: Dong Aisheng To: Subject: [PATCH V2 11/15] mmc: sdhci-esdhc-imx: fix strobe DLL lock wrong clock issue Date: Tue, 12 Jul 2016 15:46:20 +0800 Message-ID: <1468309584-3591-12-git-send-email-aisheng.dong@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1468309584-3591-1-git-send-email-aisheng.dong@nxp.com> References: <1468309584-3591-1-git-send-email-aisheng.dong@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131127836773118942; (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)(7916002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(33646002)(106466001)(68736007)(105606002)(5003940100001)(92566002)(11100500001)(19580405001)(85426001)(229853001)(2351001)(110136002)(87936001)(81166006)(2906002)(4326007)(76176999)(356003)(586003)(189998001)(50986999)(50466002)(8676002)(86362001)(8666005)(575784001)(77096005)(2950100001)(305945005)(104016004)(6806005)(19580395003)(81156014)(230783001)(97736004)(8936002)(50226002)(36756003)(48376002)(47776003)(7846002)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB0780; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD048; 1:yxEwQpSUv6MqahoctQfGlr1vIoifdAXf7v2bLhI2I8WF08EUkknJs7I3l1OrymRcWPcdVMT3eRZy7pZM+LOj5rmsGPMLVHfbijziqKjIfrNG8YicTOokFgyqqRH4NGLMK/Xtxc/Fx8XuA6Syj3E33MPHJMIDlkmt2AAF4xY6GGWwTUKeprF5dwR1kuYahTl2E1S7vxXPcC5q6zvBlcer+gCxBpzL6Z9xSITX4pFi8y4u9rO4GLk6aXFoNYciYaCMgJu1dcLgT0at6RMUZ8nNlV95D16Rykn2geZ8Npgn+iN0qfQtXpJyRfX8hBi8WXjN+f9gY2Sb+ot39Tw118ERNxm/y4PAOGTB4904eytSmR6Az5aKO/aKoTrNlZx2MjxijLOlG9OC/oaTpmU0LCjIepV7kuvvG8Wf231oeWBHstGebnKINb9tX6O3VDEtromvf0Yzb+Lr7bh7ey9jhRIGkDoxHcYUtra7GdAtnzUSuvA+gNXCpKEPFWUUHRPl12O8y9TqT3JHLWrflHlDbtdnhk1u96g63ier3i3UAHxsbgOx1zuZ2AlX3+fNK2G+fq7YiLHTD0uwORAZsJMp7+aSX/Qw31fAFuTuvikPFTS/24PJPk4tHSLsaJZ0Nk2QzWDrmTRtF4Qf0ksq2texM5tSmBPY0xfHAl2u2Y6EDtUDxlo= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: ef21b506-12a8-4fe2-9281-08d3aa29c57b X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0780; 2:Ae6YwzyaNLOKgTauE/CDKHPuDg/nG2G5gr+I20XiQSpN3P7iYKfJgtuh1kq101EllOE2HopAOo/a0sd79N4CNqSC75xHzGG/+InZ07eTgCFEmnZR4Oq76uYUJW/AmF6VdXWrLgcJqh5Fd1dGWzgZQiCZm54fSktpHO0UauqQmqhLhD8zAgrs/MAaJOpObGFo; 3:l0MiQGbOPem7+5yhlIef2GlrhmRBSAXFjYhXX95my7dzqMRJdBBugtCS5Di0C+CU9b0QtVQmLbMk49AD817zy8eCKhss8pL7DUox5Y1ltm4QJrm+vhmuswcqEA1M/Oni+sAIdzato8zC553U5f82v9rd26jvdgnku0Orj4Wc90Ef5/vu/NWR/lkosg/Ei5wuASxeyy/KjDgqijfBKujSuFbyB3dVfRXkJKayP0Q8C7U=; 25:yTI6N3YCw25AjQsdQfn7xCgEwdwPW3T1dClHKoq2Hnu7S1i3J9GC0CLgvUTTVRqeUq+Pb8R/07Vfu2mKpqLw7djH5LCp8EJgF3/B9oLUEvNvFUo8v07cHvkc5jZ74EZ1QJ6RHlcehtkDzeE//xdJepJiXLKWQmZB0LWOf4CrrMWUMIUwypli2tn/ro90+WIPSh2kQSYxrG7103Kq/Dh8Q07KVwqAaGsGNGhsjp++OWav3RHlseL22vaOPyIDpq++TxAi+TNR2RiOWGexrBr9xr+B4UjaNOEqUuo27GDLf0snyAlE5KX3ppxDTm7UUoXtzaeuN6FTjh3ASwYvKEfygmbRGfh0i6rRO4HWiU96WWzPY0RWKPM/VUCDaYzrM6tdNd2ZwdfGpNIiHLyROm5LrA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB0780; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0780; 31:P126+XQQKdp84tlZJyUJSrT5XLnmJzDjj+43KnMCmdtlOaxXf7N+5HKVdANIVKQc4uNISqS9TB8P2TE2KqFNjt8j0RFtH+plDTUHkg3lzt0+XKhwyXIG5hPbAPo14EQUxRbhZOq7xTtWz/sVNtwhwBWD+PaSTLo0++Tsn/7YCry3aKuK1LG6K0YO8gCQsonCSGjw42Kg5CGIegVXqXP56Q==; 4:XaVMylt3BajusYoiibgwJpqOeHkQXwuoaN8PozwF/gQqmFouYHMSsnwhgZ3/MVOCWQNSNHeQz/lOM0xX8eJkcUusR58OBm0fG7M3xhLbYR2TMRbTei5zzhjLmiSQ9HUHf0O6VZ5juiV1nvzA7WEnAuY+ylvu0WRRK97/qxCTP3AKg5YWG8c2zBoVsBUWOZo3FRGGfRbEwIt0nh8Fe9Z6QNTZtxQyqo3TJhvI+Z/R4bCUvdn7BpkA6PgodOX0y3P4xfBVD3uKniU4Q570yxIhtRmCJEXYjF+mVkmunoug0CsopN5/eiMwhy9ulJh+TAwmjCUVMzHFGReyommTjjCMhqcfCo5v0poD5xOBH6Q4iWVQbNiah1DqmIbnC+wCbkxK2BxKenAidY4Qm7JhWgvUnWu6pjmV10SK4WJqFUN+VqOkF9wSrYjxGPRn8YlR72DlUr8+UL3IOmBBmd3HHa6MKbxNY/mzVoIvwKY10+yB0xiHK3rys7WGca8QdWKkcG/UbC4XljH53kbSN+pXY1ioZDaXPtOL5nJQx+ywSmrt3Ew= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13015025)(13018025)(13024025)(13017025)(13023025)(5005006)(8121501046)(10201501046)(3002001)(6055026); SRVR:CY1PR0301MB0780; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB0780; X-Forefront-PRVS: 0001227049 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0780; 23:ksQC1mNoXPGcOM4BWhnsn1gz3NoAGz0Z6UABOg4?= =?us-ascii?Q?d+H7ZWNzxe7kzi2fYAzJveBQgicMiRHeA+58GFtk2E/hIDf2+dnm2nWB2uKG?= =?us-ascii?Q?ykEG1KEuyRTQnI2EipY0N2fkGJxR1aqEW3FYkw2KgyHQvkkHh21DVkeAAEAL?= =?us-ascii?Q?bKmR3PqZIM1nk1pUZRn5HKp9jfqFSsIRvrRTRCHezmzSK0oODXrh66mWn4Yy?= =?us-ascii?Q?II/Dlj+X9paRWq5XlibTpgecROb3oIYNqdE+tv1AgyIl+yJjSpDnMESs/E98?= =?us-ascii?Q?qMVy2PBX+XaVYRsB20Kqeb7KcPa6YQlf6ePoeAC8VMa6CGb1eG4eFSS4BACk?= =?us-ascii?Q?3lK69IdBDLnNPKl69CPlXGVSPqnw5qu69KNKg3RiQCtq+QTDvp9ofe+8S42p?= =?us-ascii?Q?isT/nbzv2qakzlD0kBmexTmUnUdiqRfcyG7Cmib3TFGtZcKS3jmkkQaAH9un?= =?us-ascii?Q?2x2MOREZTvk1C+v0h9o2UkNlU+NU3df8egqGs44u6SyST2HmUxpV0RnQYLxt?= =?us-ascii?Q?KYmUOE13UzMuCmAzeAXjpMFrPyiGhOPGZ1+MlZ5anvYXhaXARhVrC7l8E4lq?= =?us-ascii?Q?GNhH4Ngn/AhGN43Xip/9pXK8W3IjdTXiOQC+c1gyU0vzEvETDSSmlNiurnGc?= =?us-ascii?Q?nH4zJ3SYI/SNShEWfN0pf2lD4cjOgWPtE+7TbRgUXB4p3MbiFAFlJS5V09Rk?= =?us-ascii?Q?637GpeyyMFsDDMaWzZEFjM3gkW77ZHcct/6TT1vuf26GC5C5tZW9p2g8fNrp?= =?us-ascii?Q?/hbqpZwXg0DHV2mqImOIpsmto0+Y5JvOn+WwhEx6m1cov4seTFhsdQk5td2t?= =?us-ascii?Q?QYDND3zZjUJgPWbuZ6fxOX5UdZWwKcYwh6guHfglmcpGosJjLd+pf9Au5R2k?= =?us-ascii?Q?x5MBcdZSBuScRoPEgZWuu7NKgnDWdf6u1nvmxhWHpIbx6BJwtHSxg1USa42n?= =?us-ascii?Q?MYcfs8EC+28dKqPAbuDiT6w5IrWjWXyETSGJUYia0LNU7VgjIUBaHY9nmx+v?= =?us-ascii?Q?c7AhRO/ApO8CL+94GUbcfK76mBT8GDdBXqfSb5SGDBOn6IoLP0f64+JCj+UG?= =?us-ascii?Q?9R27NUNWxardqqenV1bv16sX4xGyY5uOhnOzmh7/DzJX0Dn7vY/KZCpFomOs?= =?us-ascii?Q?dRoGEiWbqQ+H5QMZacsu8c3UV7Y8PKhUyUOhhYboiTEyAL9HiN2FuCskVNqM?= =?us-ascii?Q?u4ZatL5VTYmki9YdlOTOnmuKeozsg1w1B/4Nv?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0780; 6:eSjgg+GJSR2DIZsS58rCpsJipmVSK0QAp+/l3LWVdruW58ddX3elqVxOSfPKYDhNLk0E9cDczHMtMztgbdIvEL3QUKzvqxRep4eyg5m5uiTs6AOMQe2AfuHbCfT/GKtsZswg4Hp0wxbUZ0xvK/UL9OJYXNrV6lueo+6p99f6WXgDVboCRUOZN1eHSlhLbtKSeH8cVgtxMeHyp6685P1lZbcGceECQDx1S62jQJXgT55HbkpAT3Bh4a71V457g3VZITBW1CkImoHx9r4ArXRhmw5FMozRIibYvPl59PW46Cg=; 5:7WD7ETTq1oE6l8afGjMoPM0+4DdjfMki2CTz4Xtdr1SNBSxZwYnDrRB83KUiaQDXVJOY4B9wT6oSgDmrJ7FhoqjtshcOQVdhcUBLHj6NkEo+TJFg6bOQXY2W/cQcqLkp4CAn24fOzMAvbuVNx5b9LmyKkUljp13UKkNEFeR1QxQ=; 24:OFPl/4Tgzjs6M6AafpzPk1bUUyalTnXplkohS/9v6RkWcUZaREyVelSszcVWtMpL4HCAQxTqAsdVTEyaM4KkF2FVMPcHOjO0C6kMHZCckJc=; 7:BHr5pRdcOeV+vSB8M4bU85d4vbPlsNdJ5Z14HOIGChUBwf5zMOQwoQGAl1YxRt0f4hM9Xb6MkIHJAI83lR1sZVsS74XcntDfM4HIyMi8QH6oGw/X0MKAGLnN7M7u6Otem7TCJjIqoXNwxm8Q016AvWEylkXRV+qrveu1/UaEr3+lmokbX1O8HM/3XzvqM6uaZP3YvqWiG93IdshA7xgHpjUa6iWicN1kQ3KkaYau6DM5MVUyTJ0MCfTr2Nhb6d28 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jul 2016 07:54:37.1246 (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: CY1PR0301MB0780 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160712_005459_902586_9DBB0B4E X-CRM114-Status: GOOD ( 12.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: aisheng.dong@nxp.com, ulf.hansson@linaro.org, dongas86@gmail.com, chris@printf.net, haibo.chen@nxp.com, adrian.hunter@intel.com, shawnguo@kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP When enable DDR, the clock factor definition is changed. e.g. original 200Mhz will become 100Mhz once MIX_CTRL_DDREN bit is set So we need to update the clock setting then the strobe dll can lock the correct clock rate. Additionally we also need disable the clock before locking strobe dll. Acked-by: Adrian Hunter Signed-off-by: Dong Aisheng --- drivers/mmc/host/sdhci-esdhc-imx.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index ac2c83af7440..bbb0bd4eac28 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c @@ -853,6 +853,11 @@ static void esdhc_set_strobe_dll(struct sdhci_host *host) u32 v; if (host->mmc->actual_clock > ESDHC_STROBE_DLL_CLK_FREQ) { + /* disable clock before enabling strobe dll */ + writel(readl(host->ioaddr + ESDHC_VENDOR_SPEC) & + ~ESDHC_VENDOR_SPEC_FRC_SDCLK_ON, + host->ioaddr + ESDHC_VENDOR_SPEC); + /* force a reset on strobe dll */ writel(ESDHC_STROBE_DLL_CTRL_RESET, host->ioaddr + ESDHC_STROBE_DLL_CTRL); @@ -914,6 +919,8 @@ static void esdhc_set_uhs_signaling(struct sdhci_host *host, unsigned timing) m |= ESDHC_MIX_CTRL_DDREN | ESDHC_MIX_CTRL_HS400_EN; writel(m, host->ioaddr + ESDHC_MIX_CTRL); imx_data->is_ddr = 1; + /* update clock after enable DDR for strobe DLL lock */ + host->ops->set_clock(host, host->clock); esdhc_set_strobe_dll(host); break; }