From patchwork Fri Apr 15 17:29:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aisheng Dong X-Patchwork-Id: 8854071 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 7FD549F3A0 for ; Fri, 15 Apr 2016 17:49:13 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id B46832021A for ; Fri, 15 Apr 2016 17:49:12 +0000 (UTC) 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.kernel.org (Postfix) with ESMTPS id E55EE20218 for ; Fri, 15 Apr 2016 17:49:11 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1ar7qL-0005FF-BF; Fri, 15 Apr 2016 17:47:45 +0000 Received: from mail-by2on0091.outbound.protection.outlook.com ([207.46.100.91] helo=na01-by2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ar7hL-0005U0-NC for linux-arm-kernel@lists.infradead.org; Fri, 15 Apr 2016 17:38:34 +0000 Received: from BLUPR03CA011.namprd03.prod.outlook.com (10.255.124.28) by DM2PR0301MB1229.namprd03.prod.outlook.com (10.160.219.18) with Microsoft SMTP Server (TLS) id 15.1.453.26; Fri, 15 Apr 2016 17:38:06 +0000 Received: from BN1AFFO11FD051.protection.gbl (10.255.124.4) by BLUPR03CA011.outlook.office365.com (10.255.124.28) with Microsoft SMTP Server (TLS) id 15.1.453.26 via Frontend Transport; Fri, 15 Apr 2016 17:38:05 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; gmail.com; dkim=none (message not signed) header.d=none; gmail.com; dmarc=none action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1AFFO11FD051.mail.protection.outlook.com (10.58.53.66) with Microsoft SMTP Server (TLS) id 15.1.453.6 via Frontend Transport; Fri, 15 Apr 2016 17:38:05 +0000 Received: from shlinux2.ap.freescale.net (shlinux2.ap.freescale.net [10.192.224.44]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u3FHb2HV019919; Fri, 15 Apr 2016 10:38:02 -0700 From: Dong Aisheng To: Subject: [PATCH 20/23] mmc: sdhci-esdhc-imx: fix strobe DLL lock wrong clock issue Date: Sat, 16 Apr 2016 01:29:44 +0800 Message-ID: <1460741387-23815-21-git-send-email-aisheng.dong@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1460741387-23815-1-git-send-email-aisheng.dong@nxp.com> References: <1460741387-23815-1-git-send-email-aisheng.dong@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131052154861098106; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(105606002)(5003940100001)(47776003)(48376002)(2906002)(77096005)(110136002)(36756003)(33646002)(76176999)(189998001)(230783001)(50986999)(106466001)(50466002)(87936001)(2950100001)(2351001)(229853001)(19580395003)(19580405001)(50226001)(1220700001)(1096002)(81166005)(85426001)(6806005)(586003)(5008740100001)(4326007)(11100500001)(86362001)(92566002)(104016004)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB1229; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD051; 1:1K9L/V/cBNmkNX//kI0ZSLnqQ2bKYLwAdTLaeLYWYnzLIgzGOF2Y5Rv4SHDrSjNT3bucTH7jfSmFt1Bt7NGczbbikh2jyQeP7bYl3I/rxDUPvkmZeQfqOCtlHHxxdT3FjanJlwteWPlNoB4Frcy1prFK48JO//uMiCCYz/Dt0TDKRFbeHec+IAlRQ4dGiwm2YG/FdB7sLka60fwvAu2HYqeQi0XLFBC5NozQIsTJnhJ3XXdRPm/xCkRU4T7eA55tbGEOJ8cEtyDxGPNUQXveuBuBuQhaOR2qrqWyc3a0XmAB20BM0KoobC80O4fLdcEcFp7yh6FyZACYz1FDnk3sVDgrctHWXysU/RSdJ4XsXCU/EWB9QTreJwyaXtrvcGG6WEVX/ezRzPZG3wgY6gEoaefy4aSWRjgs1F0rplfIBeY1MUi0MGsDNHJ3KUuYoCJSdAuHAB6KhculElfEMMynrlO+jr/954yERTlrz8TTHDph8CTHTBqP+1/yp5d8fslrQWb2iLgNKinYQJ7ooBNGLpuX0I24Uh8DSiRDHBria2xX3cIJ+P6nqKk9Ocl80OtGpQsoGimskAfUfPnuOMt5hqtbRojAhUUrdgntsbynKmt+zSpgDKQkJ6W32Z6WQUey MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 9bb7e2bf-4ed0-41a6-947a-08d36554b402 X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB1229; 2:l5fCTxmKfNCb1rRjxH3tAyQloL9tGkOmCWah0n+IfwVy5OMUAT6E0QHQWwVgQQj3Vxq8Wdanixu8pKeKLuKV8KDgYQjwe6Ea7DIASKb7If5Jd4bfyOnh/rGxiErSoA2fMQcg0aDNPJmdJpflYohPQ20yOPoS8SHRKsV1w9+b3MN6VDJzmH5NQy8gUKTl0ksa; 3:DVYfR2dvpzZVY+8ZMaNugyC8WXbtL1kxvt+TkrygaRIHUYYMDdXWcjuAeXYUoZjb1xGFl/jHFwAj4DNQSu8rBJYdlWy1lQf8P/RO8Mkv1XCYx/L+5i4bR5i3IGNkJNyIJIHnrGkB9Dx06KA2fE6J50cpbREBOPvOwkDVa+2gLJc07kcGEiMt+nYP9E5AMBcsdhKIl5Ymq0jkmrLp7kxspRUwam26YzUWxqK50hTB9zg=; 25:UjiF37S4KJWfBL2R5u9wSYuNtrw0CGvGuk6S8Vhi5ASPgH45JAG0xnHylE1LKIwgpeFIrEbDjY5FMwgtQKSREIIM91twR/itKMNZXWw0wW4rjgWs5nIDbNa6RapueKPgeP/opzlfREsIYlnySfCr/hF6FVUaRckdEigcJ4FoaHG0544/DtAQ4e9x4/MMm6A1W5PwFkAslx7rLJf3XImZsAHDwC+blabIHxIVht0dsdrS9Thi4Yd+2WB76symchSRhu7/1TP+152JX4tsE1zHzqGW7OGxiHGhTLKxcsoJg+2hoUzBn8PTSTObecBoJKSz9cq9ZuTrwJIyFuLEI0N+lA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0301MB1229; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13015025)(13024025)(13017025)(13018025)(8121501046)(13023025)(5005006)(3002001)(10201501046)(6055026); SRVR:DM2PR0301MB1229; BCL:0; PCL:0; RULEID:(400006); SRVR:DM2PR0301MB1229; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB1229; 4:o8N/I/vYpaPDofU/+orz0yybEY3vLIhGBGNvqiqcXHkCMXilN0AgejBKnzGCZHYtaE6eaPzFzsKvzihhzGZY32RRSfVp+zYzrwg2kaj0Qgg3TD0L1fTdaHZiQ+WRfgGC2jvICgzVlszklV1J1a8E1ANkdClm73K7cOmLs0f9jtRK1tkwp/Xb/8Si5AeX0tJLwXMQgS0nX+D35ZSyrV/WX1uBc4iKMZHRTPRaSbEtlqgrWEPAos+XlO0odB+eHZTtKfgAs8sF7wjQqhGPHmJqhTjQVBdE8HgOmReiNMmasmxHGIpMZJFWw8cuW8vMFNaIMCiv5mbDWQ1fw6XWb6/iyz/Y5lGmknPtag/DF2tl4RVm9QZdxBbpgRShUlQVU/VWrSv9ntvNr4uMcm9nt/aQQ1EE8JQGZi4rehOOYvvtNR1zZWNFxbylca1PZqPrRm4c7gy0sTR3/gFlKTnHIgxS1h/b4WFXhrnBbXsczuXmmoE= X-Forefront-PRVS: 0913EA1D60 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB1229; 23:PmuvaGfl5AC26mvVIESc0uRdrlgDEZ8NfPpWpGe?= =?us-ascii?Q?0QW3Db6XCQFx8upgjY6mkF+ua5DjYWSU3B9Hy5d32RNPz8P/ofNKtyxk5TgQ?= =?us-ascii?Q?acPCeqddi+jwWttjJ0itU5j3Ijqkkva6ElIS5ouV0/KVHxD7b7hRK3Kq0W9c?= =?us-ascii?Q?XsBo1bQMEUQdxZys2W4tFL3wbSjtlP0R+IiqTOZTe3HIuacflSC66vca29Ob?= =?us-ascii?Q?TcuR1n72jRQZQxnWTOxJEU+pB5CjjxaTcu9clMCp4gwQX3wFR0ucbEH8d2UD?= =?us-ascii?Q?pnXSmbWncJk/6alAlnJuHUPL7OPGAECqXCxlakZRwPSU2yhxJcgpsMsGF1lt?= =?us-ascii?Q?Azmya8jCxpInMy2ABNU5GPagBdByPXsFLMvThz/UUjyh1qlfsYYGCcc/61n3?= =?us-ascii?Q?7OHPMB+49/96qYGDAcY7XpP8SmhhX3E9YxRQKz5DhaRv/VX5hXp+7I2ouwXi?= =?us-ascii?Q?tqI+8RP6vi2mTbA7oHQPZznosthw2hRXGUks9Q4REpGuRGQS37z48iEKQuP4?= =?us-ascii?Q?EgSQ3BGcfnvax2A3xY13AvmKiWyCZ6CTFgtAhKxNqL6nS3D9SVjWtbw8MJMu?= =?us-ascii?Q?Mb7iU8McbLIocXMH3AWVqe5oaXNH3k6wWqGOfzp7GCq4PLtX1R3j0Yeh728r?= =?us-ascii?Q?r6Yc4S2a91eBq5ktjsjjom3EBHR1rjrlc5Vs1HILzi7HJAwEF9r5KGE+vQBe?= =?us-ascii?Q?F6ztqpnBLVU3GcUNL+Q3avv3CWVhZDpl33rXq6QaLCOroDyRbpVTuGOtyW6K?= =?us-ascii?Q?ej7ltvidAYPZ4FMRAlIl6PadrDnk+x17MORC37dati6Wd6SMwdHxbLp7GHG0?= =?us-ascii?Q?xDPyYdGmEgigLEBqDA5CiShEjw068jAJs2olSDyRXW2h7CjZ9dHaspXn9PPa?= =?us-ascii?Q?a/lSMHoxaCkP32qgIR1K1Z+1D8okMRiOzdnvFuihwgO/XJH0oRB+MxvsbnOg?= =?us-ascii?Q?lxixeRNKrpP6BR/TgCCP/S75Ziq9Ypz9iXhnBxKgJOPjA17O4JFY8TFwJ5Ru?= =?us-ascii?Q?p4JM0faNxksn+wdkDe5jR0d5IMzJycf8CjmN/6PUj5y1Ezr4JwVHWvU/DpnQ?= =?us-ascii?Q?+ZkYr4RgbnoZMpFC2i5Nq2pMBia5F?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB1229; 5:yZWje20lhErlaPZMz9Z5V2Z9j85Lg2FKnbr9t6uI8HcJ3oa4y4XPf/AkHUbeCbl1XvEeAgxSt20p/JZWXCvwjz8lyFfAwselvuxu0nxB9PT+HdBqseVnImGzAfAGMf+6XS9tEPl49tDReww+ae87CUKLNgaQqpm19UFl9kHJ7+c=; 24:pP75mRqd0r9iU+IEWzuEbk4IVTTC0sepDiMMdYe2dV2Ctotjsx5yL1aZKOAK9wA6Plzww4Ur0pAUY0kW0P9Lm/yQCFyqo+eTfYE70QpwMYA= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2016 17:38:05.8758 (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.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB1229 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160415_103828_008743_22138055 X-CRM114-Status: UNSURE ( 8.27 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -1.9 (-) 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-Spam-Status: No, score=-5.2 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable 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 When enable DDR, the clock factor definition is changed. e.g. original 200Mhz will become 100Mhz one 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. Signed-off-by: Dong Aisheng Acked-by: Adrian Hunter --- 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 07b1144..3ff213f 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c @@ -852,6 +852,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); @@ -913,6 +918,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; }