From patchwork Fri Mar 3 08:18:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yangbo Lu X-Patchwork-Id: 9602191 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 001E9604E2 for ; Fri, 3 Mar 2017 08:34:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E81EC2862C for ; Fri, 3 Mar 2017 08:34:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DCC3728631; Fri, 3 Mar 2017 08:34:25 +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 4C83928630 for ; Fri, 3 Mar 2017 08:34:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751427AbdCCIeW (ORCPT ); Fri, 3 Mar 2017 03:34:22 -0500 Received: from mail-co1nam03on0089.outbound.protection.outlook.com ([104.47.40.89]:35776 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751449AbdCCIeL (ORCPT ); Fri, 3 Mar 2017 03:34:11 -0500 Received: from DM2PR03CA0051.namprd03.prod.outlook.com (10.141.96.50) by CY1PR0301MB0729.namprd03.prod.outlook.com (10.160.159.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.933.12; Fri, 3 Mar 2017 08:33:05 +0000 Received: from BY2FFO11FD048.protection.gbl (2a01:111:f400:7c0c::125) by DM2PR03CA0051.outlook.office365.com (2a01:111:e400:2428::50) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12 via Frontend Transport; Fri, 3 Mar 2017 08:33:05 +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 BY2FFO11FD048.mail.protection.outlook.com (10.1.15.176) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.933.11 via Frontend Transport; Fri, 3 Mar 2017 08:33:04 +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 v238WhMo019793; Fri, 3 Mar 2017 01:33:00 -0700 From: Yangbo Lu To: , , Adrian Hunter , Rob Herring , Mark Rutland , Catalin Marinas , "Will Deacon" CC: , , Xiaobo Xie , Yangbo Lu Subject: [v2, 4/7] mmc: sdhci: add a quirk to restore delay in tuning Date: Fri, 3 Mar 2017 16:18:46 +0800 Message-ID: <1488529129-23560-5-git-send-email-yangbo.lu@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1488529129-23560-1-git-send-email-yangbo.lu@nxp.com> References: <1488529129-23560-1-git-send-email-yangbo.lu@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131330035845949631; (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)(336005)(39850400002)(39840400002)(39450400003)(39860400002)(39410400002)(39380400002)(39400400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(5660300001)(92566002)(8936002)(48376002)(50226002)(189998001)(38730400002)(76176999)(8656002)(50986999)(5003940100001)(77096006)(50466002)(54906002)(6666003)(47776003)(2950100002)(85426001)(626004)(53936002)(86362001)(305945005)(7416002)(36756003)(33646002)(106466001)(4326008)(104016004)(105606002)(2906002)(8676002)(81166006)(356003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB0729; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD048; 1:okDo4kvcRlRwckfK11QoUQdA2iRZ5BJ3S/B7TUMlB8ntGjXMXosVc2T9Zqq+gX3yNGhm+9nrmTHWEn/5h3qyo4OfN7MbSOp7wj0n8qCH6LV9nPk0bXUP/Y4PvNeY0l8a9HLXsM8sliKSeltbDBmOLh36P/Cvf2up+YB+fSuiCpnP4EIc/CpLWGX8HgIWC7C1rQpFoSvPCtG9oGQujKFs0MDRu0H8OWvUJYx3I4Ewjrzk1jyEqPAYhgsezSzeR+lrXPLXawm15aRxpfCjAl0cLLU4MRq1KoL1PPYM0S8Ql7KWE2AjGOiPwL+zcEY/bGSOmFA0OVzhNKUxE+qP6SWCFR+FASeWNhzUpeoCGjXPghW9b6xnJ2uiBq1HE+NVVFNJ5d8zXbWUXqCkG47izi97m/DmCMymOqUWa3Oa3wCx3SVimRwqsfwSEcLntcX5qTQDOBNbOnMoW+296gGXVof2iFyfGLn9ewRHK4iRGEOfbUJIo+JDqAbV1TEcHyCNlzyc6MiCMy/kDkN6080VfQj4lElD3XNiKiPtkmj0lkPCDSVa1Pw91J+tAKeCSQHkU6nC6Gqltdz7sVNWGlUVIF2IU6wGcATMlVqdx+oP82d6P+CGOWlALuR3qvOxdRMN83viRcETA7/HJiAutLQXJjhw6+9RhQUnZdOM6b/q/iPLl8zP0JndyNMPNSW4qGEtG4yVIU+czCEJlv6pITODl7G1nGmauRxf+L8dRdH3udF/14NURQZTpjOLoweDrR4YhR1N MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 9953ea98-5e9e-4a0c-8767-08d4620fe964 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR0301MB0729; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0729; 3:itN1fehZKL4AvnwynzZRGZ5D6RKM5yAzSJxeL/OZ2641lvSyGTBUvPvtOL8I9JYJQMXOUmNgP+h47z4++eeXZMX+9gmzmsiXfKeeG/XXtI3x30PONUzRUsvcppI1tZRO9eby0D0ytxsh3FnWq6YLIiu4GRvlP26bmHHm5wQE54bttUHkpJ6ZS9iM3wdBulopMsGCX9JI0YGRb2JKPN6UlsT98WYPn/yJW0MAUzd8gBObcyBvLy6HlvCmbQW2MW0sOF+bDi03UnVlyIYz3xiyphFhsbp/exyGQMWWi8UHNtuQuOfu+GQtGOJArvVzfnx1pQ+G1/QagUMCavTagw79GrjckfrtRM+9coIk1Lg/eJSqNK9pebvKLu7si/SvQ6P+; 25:ayHbyuGmzzGFgxfTucXkp77qqn3/+g5BbF81Ch3GZ17RLPodNsTAMSuZFiF0pO/wNrU2UPB0bRbIl7oMrAv3N+aUlW8qhs7bOmun6iVgqm8uvXtpMZpbg0bYxOBAmdaWOgicdr76z9Xbi9SC0tQUpqc2Cb3bz9MMC/ckjqtCLYoW5MEdTfisUPtErH1xjlcHt13PIAmH7GgI4VpJnlqGR9+6zn9qXVJ+SE8XY42TlEHeW7c50pIYPt8tGLBNOV/ihWKlaU7v0YSMLzyWp7Vy2v1O+xsq4bAVWa3G33by7F/3l1aOmdPkpeIEFPhi1X7h+1z5ph9QNjFsB5/AnEKGGm4WYceB2qjcJv5FUeOpemapYdxiErtiqxWgv2vTzLrgJz1AH7P0BhLDwyi9LzMEsBivaAMeYt0EU9nGIHQE755sHMIq7eewJuD4rSIS3fW8Neky+lrOQWZdImC/Bt5zlA== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0729; 31:fgNuJi5iixEr+GC5Z3OfnYj1QVifPRR3aTJG1PAVUzNnBTY5AD2z+0HG1T669vCQx3vuT1DSSeGRhOY8DTQeR17a64HKKeZkwmQGQwsWOwpUzyIGZwSiYjkW2CCJzi0lH+B/LFYE0sIAfwJIFRppRiUE8Np15WxZnnS+O/5GqecdBySEWr6XxufHGBLuozHZKN8EC7k6Z2idDjam5CYfQpVxM5UO8ofDkiiLtESIPHT1e5Zn1K0bVVm+8SLXTBiq X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13015025)(5005006)(8121501046)(13017025)(13023025)(13018025)(13024025)(3002001)(10201501046)(6055026)(6096035)(20161123559025)(20161123561025)(20161123556025)(20161123563025)(20161123565025); SRVR:CY1PR0301MB0729; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB0729; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0729; 4:sYImwcYEAwXwg7TJOvYz3qMoT1nZeLiPhOGSj6THZ/I6lHaoUv3HfKbcNT6C6C7TpBAJqOHih32e4ub9AlzFeH7j2a8OfvjeCl1snVo4R3/uLqBaujdlJBT7Wke9VmpdMqetAKQ+iGEx8xcVq/vEQwd914HzrrDeQYl4buflPhn2QgrEFeoAKffUIncSk2gCB3bbB3fSpnOjTQzzEIWXDgzKSnJBLLyR7PhQTIFZJIg0fpnWfBet37sgbOQZlB+l3LxEIRwpLN8Ei369sWgS07Q3OuhUxxqbRjEMJ1EpPU2O9p4QJhEVcF2m5cDtNLaPPZTPjPFcaDHNZv2WzcirXVxY5FtfN698jgy6PJ1A+4rNSqDiF4WXbQ05eulkIdXeM+qxx9NoYX3L4QZtY3iBu83EW9bYMYQp2l1xNJIQAuIcaQxkx+4T+ff3myLHZj3U6LidR9t0zUAtYjXwMWeP8cVpADt3g5jqXXinsYETr3G/QSInkdmXAR6xNQOEpb3+G3BzRNPDQPVm+4uW3c+iPYf9v1FHYyakaVXvVvnfurqmc8dcn1+aut68PZ8i5Uw/Gt65zq1WHqCDg+ms2faEDckGoPNOVNyn7aRhQ7xPCBD4eoD8UDVCd7BPxixGbjTFl+duWiSetjaUI5JEKIFK3K3Po/sMtAPOwYBuRimfPZ8gVARYgti2QYA+/YhEf3JUJ0b2QaSGbcE8dWapoRgTHQXPjoEMQ8azd3em9iwvQWyC+QDVfJvnoRUko4rYsQJb X-Forefront-PRVS: 0235CBE7D0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0729; 23:Pn32KVrlf8/WSoC8lflRNDkVuGwCskMMyD7Qzc3?= =?us-ascii?Q?BJaA4Vk5i+F5lcJ+KR+Ez83fsy3fySatN9vuE9WOmVNbbtSbNL6TOS2ufxxo?= =?us-ascii?Q?a/5+PwfaHlnl3mmKom85QnRgA87tp9H5kbbS8Hwha1YryTkg1xjF0M5+WDni?= =?us-ascii?Q?E2I3sDjPtG2b17+WW7Y1KAQuNav0SQKlZ79tIHVhQU3d/ieBCBU0KTK+eq7J?= =?us-ascii?Q?7TQx62c2OZ80zoy4MV0eZUHt6UUtf5q3d+C4sJSEFq45ujH1DQul2BDjPAYS?= =?us-ascii?Q?v1oSbhPTxsSQdsEDgIAq1nmRx9z4mAXLnSrC2OUFIxvhEquRoxx5dOK19uSg?= =?us-ascii?Q?GVP5zEC7lpVql3KiY7zQMmt+LsTbAYqihFo36BOLfvEdixTIQuCMqBGq0rEe?= =?us-ascii?Q?1O6q4LrTYi0x9fdX92SXkv3PPdclNTW6iTWWEhI/zOYcuahSQw/rzOGuECOU?= =?us-ascii?Q?5RL9gOlTB7UcOMYwR4GjVZwbpTxwSGt6VaNj/eZ06Z2jkOaIaVGjzN8IvtPh?= =?us-ascii?Q?HvE7/3+0OySJP3U4H7CxY+XyRfJqa/DtZfdA7+mTyby7u67O6NLm7l6Ud5pq?= =?us-ascii?Q?x+B7DoAbh4d+L7gUPMk1XY5j6hDmODTR+mhkHbzeIxgSQKME9WbaUYfEhe5r?= =?us-ascii?Q?ae91Zh6q64XfPvIlL57RWNeoSxFFw5VrfU3dVscxvFFx4rP6kqq2P3YtA5GZ?= =?us-ascii?Q?lP5mbDbdYrLL/M71MHe+rIYpsjab+b8LT5r7pfXJ6SJhHtsqb3n2i12Xjp+7?= =?us-ascii?Q?rouw8ovv07s7a+H90y+nrAd+GjSxeIMSsdujiSo2V1/+o3HkLpYG4cx3IZNL?= =?us-ascii?Q?PHyZ4VGSXPNTAhPHDhZdnmRDTYE0xX22o2LVvNe7qNSRsY9FyYpWWrPShnII?= =?us-ascii?Q?6hYNjy/NbHS3qDMkvcDZm4s1GEuUVSfYyOiXZ0OUV/7oU4oq97PXjs6qEfhc?= =?us-ascii?Q?kEbYwIpJLZFaLVNywbhBdRmpWNrkckyMGYtK2NSVrE4NmeaaRHGxZa+5JB0/?= =?us-ascii?Q?5gqLZjMobfTIDQxhBA12YOaIsNukQvGwJBFIezmYMBoW9+F39B61PKBe4tGF?= =?us-ascii?Q?4y345VhhURaHYUJlwzbthAx3RfdDj9d0g/C88hb/DplghWoCIwBptTQnah+c?= =?us-ascii?Q?ZH9VwGQHyg3UNMnlmUJW1tf2DHaPiQL4PW+bjMAX68KL2vQktlpod3QufYYA?= =?us-ascii?Q?S8CvFwGiYfsJb6o0mPKRzQUTgfgs/GfyLSrLfQc5N8PuDNrDv67dMfrIWQQ?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0729; 6:wPGallmKv+dMASnTCouXV4uX9c56+/uI6ZlOtu09zOOGn2CyjLcvlLue4kZwVTuYn81dpSXM1KjNcR4mlcRw0MGi3YrfEG04xan1IcYlwU1KZO1kN4qyR+zfubYEe2caFZ2JB+3D5mwq5BTaUQpWYeoFDLnsftSkvjGlwODgFMlgdOhrPFq0sD7xcE2CtqDltuYMsD4GRqUgGcYilZOSFcg/7GgzUv7el7ZDL/34T5r6POP8UBDaR+35cspWzP4XG6vPxf94Fk19cs1Ah8joSX0fNQ95blo9swfGVmU1QNRfvGbSa4qre8/np0cypNzsQ8jZDYuhEzfojSoQkkuXgMf8PlpzpyTgNp1mUDkXgNcDDycGSXN4ZakDXH1jegTQ3+h+RucFj0oK3+NXEMpndjbmo+Yguim92vaAW4zYFFI=; 5:cWMnL5QR1v4zDDOUScIMeWBncH9Ktl/qYjZbcmvf1b1JVP+NmYiJ4Oab26qHX2YZ9YQ23u2raCYtpTocuUiorJowS5CG5VQUMn0+6+HTBFi32gSJHMADMn9we2uhojFSEL1SI6bHFMWV9ANIBAcEZfRwFRdGG1HRJLIWX3f6zDlp2K0aqMaN61agBnDS+JYc; 24:AawQ8xwir2z5/LxZs35lFokPwEaA5bFaX86qP0rI0ztrsFWBmDCOOVdli2l+lQmIMEQQDiJOSXspuAP0h1UnB59sRvHxBE/+pYmYf44NJsc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0729; 7:ohcxmmq/fC04RSlu3FgfDFjrCDXWxPLCGqiLlcLp75RZtTMDmb/eXG+9dGlmQeFygl4LROL6CqK8hdN1CWa+JiqxDCKJm4CsIQQeiVFDp8aFOtsb52bKbZVVuBHY8Y+2z+aqEW63Qd5G5fEhZOEbIp3JYeN5KGBPUSXMpnYNM4UXdxyn9wZZiAoFcr7G7n7utE0u5UFCtdvyUXe8dtKPNLYQyDMO5PUfUtSWGBetEHOrLiX9LsINXHuppTJfqdETDHXev6Z37xcYf6g3u5A8tz5W1+gVo1BFbgJzpF6YM3hKHVQkVgxs8PZqTVxlo9vSy/XC9XOLSH3bI7jOyjON9g== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 08:33:04.3765 (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: CY1PR0301MB0729 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 There was a mdelay between tuning cycles which is removed since eMMC spec didn't require that. However it's observed that eSDHC needed this delay for HS200 successful tuning. Maybe it's also needed for some other controllers. This patch is to add a quirk to fix it. Fixes: 197160d52e85 ("mmc: sdhci: remove mdelay in eMMC tuning") Signed-off-by: Yangbo Lu --- Changes for v2: - None --- drivers/mmc/host/sdhci.c | 3 ++- drivers/mmc/host/sdhci.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 6fdd7a7..5d204d7 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -2094,7 +2094,8 @@ static void __sdhci_execute_tuning(struct sdhci_host *host, u32 opcode, } /* eMMC spec does not require a delay between tuning cycles */ - if (opcode == MMC_SEND_TUNING_BLOCK) + if ((opcode == MMC_SEND_TUNING_BLOCK) || + (host->quirks2 & SDHCI_QUIRK2_DELAY_BETWEEN_TUNING_CYCLES)) mdelay(1); } diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index edf3adf..b89589c 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h @@ -427,6 +427,8 @@ struct sdhci_host { #define SDHCI_QUIRK2_ACMD23_BROKEN (1<<14) /* Broken Clock divider zero in controller */ #define SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN (1<<15) +/* Delay is needed between tuning cycles */ +#define SDHCI_QUIRK2_DELAY_BETWEEN_TUNING_CYCLES (1<<16) int irq; /* Device IRQ */ void __iomem *ioaddr; /* Mapped address */