From patchwork Thu Jan 4 09:40:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siva Durga Prasad Paladugu X-Patchwork-Id: 855518 X-Patchwork-Delegate: monstr@monstr.eu Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="GMG5Yu5t"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zC2vQ50Dwz9s72 for ; Thu, 4 Jan 2018 20:44:34 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 5DB56C21E08; Thu, 4 Jan 2018 09:42:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAD_ENC_HEADER, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 287F2C21DD0; Thu, 4 Jan 2018 09:41:49 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id CA1C0C21C2B; Thu, 4 Jan 2018 09:41:14 +0000 (UTC) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0051.outbound.protection.outlook.com [104.47.37.51]) by lists.denx.de (Postfix) with ESMTPS id 7E5D1C21DD9 for ; Thu, 4 Jan 2018 09:41:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=AO72FdZj66h1JAbM9lfxwOKgtER/XSm4PPS4JUitULk=; b=GMG5Yu5t8UdJApVpy7DdQjRNPNvbt9/P3esYM+k4uVLrjs71job/FutLm+cpbtMODiwmfQk+AVqWTe60DYgbUNCO+aJ7r+a5o8KE860Mz4n3Aoh1xzzKxmteJ6Azup8kpVC6rhvA81XR2JDadWiCrnHhxBugiFm/JEHRI/x5V/E= Received: from BY2PR02CA0110.namprd02.prod.outlook.com (10.163.44.164) by SN1PR02MB1344.namprd02.prod.outlook.com (10.162.0.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Thu, 4 Jan 2018 09:41:07 +0000 Received: from SN1NAM02FT029.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::209) by BY2PR02CA0110.outlook.office365.com (2a01:111:e400:5261::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.386.5 via Frontend Transport; Thu, 4 Jan 2018 09:41:07 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; samsung.com; dkim=none (message not signed) header.d=none;samsung.com; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by SN1NAM02FT029.mail.protection.outlook.com (10.152.72.110) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.345.12 via Frontend Transport; Thu, 4 Jan 2018 09:41:05 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1eX21I-00068i-F5; Thu, 04 Jan 2018 01:41:04 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1eX21I-0004sm-Bp; Thu, 04 Jan 2018 01:41:04 -0800 Received: from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id w049etos031163; Thu, 4 Jan 2018 01:40:55 -0800 Received: from [172.23.37.99] (helo=xhdsivadur40.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1eX218-0004in-OH; Thu, 04 Jan 2018 01:40:55 -0800 From: Siva Durga Prasad Paladugu To: Date: Thu, 4 Jan 2018 15:10:41 +0530 Message-ID: <1515058844-16007-5-git-send-email-sivadur@xilinx.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1515058844-16007-1-git-send-email-sivadur@xilinx.com> References: <1515058844-16007-1-git-send-email-sivadur@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23572.006 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(346002)(376002)(39380400002)(396003)(39860400002)(2980300002)(438002)(189003)(199004)(47776003)(8936002)(81156014)(8676002)(81166006)(106466001)(16586007)(305945005)(478600001)(36756003)(9786002)(54906003)(63266004)(76176011)(50226002)(2351001)(106002)(356003)(316002)(2906002)(6916009)(5660300001)(2950100002)(50466002)(6666003)(36386004)(7696005)(51416003)(107886003)(48376002)(4326008)(77096006)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR02MB1344; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT029; 1:CY6+GpjYP/syJ1AkhTqFOmLOZxc2YMiRQ30ShYWcF4mCiF8f2/oYECyh3PWqPRKegBqOQQckn9NDc8QMzDkBcQUlJwdwKalXSYVKuQ9C/OLgLPkCM7r9A/2/blrnFAzQ MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: add56e6d-7fd4-499c-b516-08d5535746e8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4608076)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603307)(7153060); SRVR:SN1PR02MB1344; X-Microsoft-Exchange-Diagnostics: 1; SN1PR02MB1344; 3:r6BZPDJJATFVxhZ7qD7SWWgfrmGoWSDnDRf0Dwtp2XuxwJuR6dhaYLLCQNE1xF0oOX+IFO863sjcZN4WbIoSurJHRzdx27rWDork933D6rGEi23xsWVsXteYCistHolTa1XXu1m9kV9gOlnaZJjpPK9E1A045dW1Abcv36Pnra84gkr3YL9a98xLmw+Nb06Qi1ZF9sft6JKRlKASfBkeDdxZlglYBfDMm3WL6ekac75UQ9RN3Jf0GDX/UzWAXJoACkmmfdO/02XkOlEy75SReHhAsRcGx90Md6OmnosJ4Q3aweOvlJ+HIIiy8FdP4CsR0x6w4gi2vG1aI7vG4YtXnVsehdSmThATBieSTDNJqek=; 25:7L9h5q6qHH7f4DgrqBNUFCB14r2KqqXo+2QsiXQryhnZ9x9b+PR0JG9j2xbTvhw1UsKL6k31eEOt4DMJxdCsNnxPKPZ4dovFx4uDMpFshrqFDuuJ+s1iBPr5GLEz/1EY5S+FKGuIGr0gadRoV3O99l3kKCqevsOPe6tmgt+eK0YOivEUf8v5tRzBkjC23ALQXXYAEXLoIcAA6Oemk6YYh9CsXpinz7jGgYkNeEs1C0/eoiLoDhfZ3zQfzwITMJ6xRpA5WvmReseRt2/uonalD06PFX8NroQV8QPwpHcY6GlijKdpHjpE4bmE6V9bXyMjYq2IQlWcJl8elAV1hT2xxw== X-MS-TrafficTypeDiagnostic: SN1PR02MB1344: X-Microsoft-Exchange-Diagnostics: 1; SN1PR02MB1344; 31:xwku+AAtQX+qiPC2gBpu8BBPX0Zc46jfvvFdIUo+1vI4oPnzWOTy71A778G9Nbo2ZTj9mgt8Xj2J+GrpqHFRFpnQdJJnzdTGBrizRFPJpjWz33bicF+Fo4VjEFIcPlMW5HzSKEdSF7nkwiDXQRx03OqjMLIbVihTVtnJoiEtATzdNxKlYSKNCCL4wDkA8vMbdq7kGpYq/AKv9HbdVFqr7Rx+qZsLhVl5n5E7aMyxbFU=; 20:8WDMWqAEJCg++v5vFg/0Zk1lKXB72l9qh/biXs90utqB4iZUqRxl5+6v1f701qWeZCwtG6OtF2WnEwJaDJEr1EpFXWqo3QOu4LbVaXgGEqFaL167cW6HorXPvqgV/MmXK1XzeIO/j87bUV60uQLqR7LDVimdbsbUn2O7PE078ZJD6SPXdP7rfNoGcqkb+jV5HZDIJv4xJVK2/9gTn36RKbDs4Hu3LIP1t1KobiKD1RIKlj5UL1mqgyAuNGAXvCH/2NVkdJMjRcHANbiBBuvPYxIZYWLCK59z2McM8AFItmzrdEaql8OtbK4Bj9S2Zv3XJQoKDTQeYgRY3K693INDV1PZLKVHmAm5TkP0pUrx38vxuGbgUFPXC8oOUYmxz3iUzmDMERyXE34kJiz8UBGhf0AXUaDYrlKwc08z9ohIYbWCGCqFfCq0wqdIUfv5e7YOrK2Jtw6dWuH+AhgAC/AmUGtzJulNDxazmQUycY7VoQUtS4/lpRmrnoL2bwpBk1VS X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3231023)(944501075)(93006095)(93004095)(3002001)(10201501046)(6055026)(6041268)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011); SRVR:SN1PR02MB1344; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:SN1PR02MB1344; X-Microsoft-Exchange-Diagnostics: 1; SN1PR02MB1344; 4:MrLLPszci21L6IoKjiFKlCgtLiznffsCHbovtjmal/cWvCOY8wkAJu18Me9u3O48UDn5ng/a6w1e55gy2xYfJpXQ5t5ZH6ow031h8PWECC4EHb9lS+HrwhAmzihSJR690OvwflxeAQSyOLAiDi7C635uRhBCCt/XM1u5ySpvIvdjuZPzWuZVJknx4TrGugYsnhhJjhI68nIBh5+HMAG7oFG5U+6dxCoNOxRPtjur39Qonj3MBc5PiiCKlRAjcKF3V1YGoWZu2oK3GMZWQwX8lowxeF1srnTbeoVhsO9Rk4XmbqYaxprj5jaAN6RWqPYu X-Forefront-PRVS: 054231DC40 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR02MB1344; 23:C28RGzGwCKAHMzxDfz9hFc3GbXdmi3eBvW49WjEZO?= EzV0fz5hHMwKcWiGGl+KgKbre6H9dDt96+Bke1euVsSh5NAjysarCa4cOtYQsTGTkncEd0epwnbsdHyBjg37Q6vDY0PGlrnT8vdNxiDwvChBzYh8W+DoqVNyieIOPLuUTywY+ErpBeHzQ3TYqDBqAoZTFRSmBQJpIdWm777kxPLeBFlnON0HXeBxf36vUyXXGIp+u4k1Ou2+g42Itd0y9qWhVow8euJUbQ/VI+8xg3KcK+b0p8x4M+WrNubce5QfDtU3XCmtxn/J4UJ3yf3HpxOQblJ0KMZ0mTYq3PHKDCeSBfhnPVvkzjUWH6iYcKHweFM/hLXJ2Msv2hzNR3zLqHesyVqwdmnP3Ksd1HksdmcTwmqBaTCEBXMPXGnakztQcsuSspGUaU5/UDL96zux3OQIIoPcjPUAcKohwJoP+ZOAdrwwuAz+IPO53ziRki1TOaMWoZRx5ECAmTzq3VssqRVCh/hfdoIjFdCV3qdEtXLkySu1avF4CHTdp2Nar62asaRpIdIjkhZ8YGCHzWLFK1Jloyf8XWa8/rx6kkHs8mxBbc+nz94kByHEkZZhsqmW7zIXDXHfA1Mtfs2SEJ/kmlGNLiQBt1uU+sMBoqc+ikknIpkASgFHqmQWhX4JaP+QR4aAoN9lgJeE09O/M6w2t00PnywjmNKPXABqNZ6pQwfBHEX1REGhJE60VND+9e7eTcxVd1dubgs0xDJcfv7+ArMMmGWHOnS9A39AYw67P1I3aiYP2ixUqZ101PebzcEz+bMbafYDVkazJwQ30f1YT055cPK40ApTeoEf8e/mCJeSmAu/doelhtuRAjJpyR8/skIrbowe2AO4GHfCCdxBCMNMcAQPk6eE4lWdH0OkLQk/VSjK4ptt1MCVgGYxn7XwegQz4c3LDa/boTCBDSdAhZ3rs4EaoR8mxX9qZi/0Hrs5PGnR2fPyIWOq79jK8MP+Qc= X-Microsoft-Exchange-Diagnostics: 1; SN1PR02MB1344; 6:cZcFS0a616lU1RVKTM2VUO1ievJ9FeYvOYfhhIpmL++J87X7ik7i+tU9kIK2oMG5vmxcBLf0eeuA5pBw/VpvXLVTIBboedygIUk9XNUtor8lSx0j5PYOMGTW/5uM9vvjjRE1ALLXtEwEGp4eI58h/8iX1ZR1PXIFrgmV78CkOPohUoLfMd5FAVf3shxc6+rHaLv5yAaXBmTtw6oX/agf2rpWuBBcV4/Jg3x32wimba41yj+64C/pvdedKI64AcrBLhAzx4Dw3dpwRxk5aibMvMBKaTEnhLcD4CdCYNSSsb14lwaXZQPzM/YC3U6+N+9bsRD0lm4RH/gxjvz1cwPZiF8aWeOjXgMg7IUq+qdrvcM=; 5:zJgmflAPKoLMyMTFa66NXbf24o6BlH7GqbvzM4anFUGlDnXmhrpKjyT2n8p9/C0RuqvvvSHwOHJKSdBDz4swIh1Lg3ZwshoDT/VGlUCSdyPuy1/dCBP5AnsP3tq+ePkrOlmJEJsfgutOmvFI8GmhGQM1TdPgFoUafYxMKDryXFE=; 24:UVmyQ26651lziYHLJQD7OW/hxaHZD5ldEh0wIoYQtLpR+j4F6rMfaZANKM+VBadsoOeyzBXbOPnBEzY0bo+TKxvY6i/jiz71dAlx6AMGcKQ=; 7:59nf3pTEZaQ3FArH/9atH2MfE9/9B58a11gOSBBUXCcDCZv7XsIbkjaubL2+DE53rYbsOF//4krKJH09CbnDIITFuM6uc1+hpIWLiGL8tHS0ln/Rk6nUcu9fDndSKe6xmgaZ274kQ8R5HQ2SjfIHhonrTGEXQXDVySnFu8ME3G9i7Ry7p7DF8MYapgFAxUMQXZ9377jwB0nASvbSoFzkH5mjk83z4T76CPvPaJNS0D6AZp2eHAFtQNHBDw61iL1Q SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2018 09:41:05.1740 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: add56e6d-7fd4-499c-b516-08d5535746e8 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR02MB1344 Cc: Siva Durga Prasad Paladugu Subject: [U-Boot] [PATCH v2 4/7] mmc: sdhci: Invoke platform specific tuning and delay routines X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This patch adds support to invoke any platform specific tuning and delay routines if available. Signed-off-by: Siva Durga Prasad Paladugu --- drivers/mmc/sdhci.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index 8239079..2c3dcd4 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c @@ -306,6 +306,24 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd, return -ECOMM; } +#if defined(CONFIG_DM_MMC) && defined(MMC_SUPPORTS_TUNING) +static int sdhci_execute_tuning(struct udevice *dev, uint opcode) +{ + int err; + struct mmc *mmc = mmc_get_mmc_dev(dev); + struct sdhci_host *host = mmc->priv; + + debug("%s\n", __func__); + + if (host->ops->platform_execute_tuning) { + err = host->ops->platform_execute_tuning(mmc, opcode); + if (err) + return err; + return 0; + } + return 0; +} +#endif static int sdhci_set_clock(struct mmc *mmc, unsigned int clock) { struct sdhci_host *host = mmc->priv; @@ -330,6 +348,9 @@ static int sdhci_set_clock(struct mmc *mmc, unsigned int clock) if (clock == 0) return 0; + if (host->ops->set_delay) + host->ops->set_delay(host); + if (SDHCI_GET_VERSION(host) >= SDHCI_SPEC_300) { /* * Check if the Host Controller supports Programmable Clock @@ -523,6 +544,9 @@ int sdhci_probe(struct udevice *dev) const struct dm_mmc_ops sdhci_ops = { .send_cmd = sdhci_send_command, .set_ios = sdhci_set_ios, +#ifdef MMC_SUPPORTS_TUNING + .execute_tuning = sdhci_execute_tuning, +#endif }; #else static const struct mmc_ops sdhci_ops = {