From patchwork Tue Aug 2 09:20:51 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yangbo Lu X-Patchwork-Id: 654620 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3s3WFZ1NMyz9t2R for ; Tue, 2 Aug 2016 19:32:34 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id EFC77A7593; Tue, 2 Aug 2016 11:32:28 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bQyFBnZakvLG; Tue, 2 Aug 2016 11:32:28 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 5A645A7524; Tue, 2 Aug 2016 11:32:28 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 49CFFA753B for ; Tue, 2 Aug 2016 11:32:25 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fgaiWoP0cpbE for ; Tue, 2 Aug 2016 11:32:25 +0200 (CEST) X-Greylist: delayed 5570 seconds by postgrey-1.34 at theia; Tue, 02 Aug 2016 11:32:16 CEST X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0040.outbound.protection.outlook.com [104.47.34.40]) by theia.denx.de (Postfix) with ESMTPS id 21746A7514 for ; Tue, 2 Aug 2016 11:32:16 +0200 (CEST) Received: from DM2PR03CA0004.namprd03.prod.outlook.com (10.141.96.14) by CY1PR0301MB2059.namprd03.prod.outlook.com (10.164.2.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.15; Tue, 2 Aug 2016 09:32:13 +0000 Received: from BY2FFO11FD007.protection.gbl (2a01:111:f400:7c0c::143) by DM2PR03CA0004.outlook.office365.com (2a01:111:e400:2428::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.15 via Frontend Transport; Tue, 2 Aug 2016 09:32:13 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; 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 BY2FFO11FD007.mail.protection.outlook.com (10.1.14.128) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.549.5 via Frontend Transport; Tue, 2 Aug 2016 09:32:13 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u729W6JG026761; Tue, 2 Aug 2016 02:32:11 -0700 From: Yangbo Lu To: Date: Tue, 2 Aug 2016 17:20:51 +0800 Message-ID: <1470129653-15854-3-git-send-email-yangbo.lu@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1470129653-15854-1-git-send-email-yangbo.lu@nxp.com> References: <1470129653-15854-1-git-send-email-yangbo.lu@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131146039334983649; (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)(7916002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(105606002)(33646002)(7846002)(217423001)(110136002)(2950100001)(76176999)(305945005)(189998001)(50986999)(19580395003)(69596002)(19580405001)(8666005)(86362001)(8676002)(77096005)(11100500001)(229853001)(8936002)(50466002)(47776003)(97736004)(104016004)(81166006)(81156014)(85426001)(2351001)(50226002)(106466001)(4326007)(48376002)(87936001)(92566002)(356003)(68736007)(586003)(2906002)(5003940100001)(36756003)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB2059; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD007; 1:n0BXuucyUFoX0iYpoTdkCRQiyRvJUHhW8CXWLB38Oj2018Mo6+E4ce5ufchHdR3WfKGyz6+0hZXQpEF7/EPy/Dma7HXGE/gLVYeMxvnaAin+aI9bu4DEHr2YUVyIP6n38KV+i6UJOWA3wKxIyiiyu4leBU+ktArBQ6tj0RuWr8EpfsC97TPcvOtayiIkCgIgo6GsvH3RDSIjj3+zQ/DdjKDcPYC8koKnjUfQZzzM9Mo5vTqNhtuxWJd813vqS4sM1TPD9k+/DULDIeLEueA7xzuvH8W0SRFgnGNe9/5YzrX5zSG+Tyn7yuWvi5G82KB4J1Y34vL8tS676AoI/PtCKvCtDNtJgZmN+TV/qpsVoUBJk2oxnmNnvyyI1d5qETWRUmqr+hdx4LrqwXOw6I0O92bSNuu8tAsvf9pE0uiSyHVrO2NPDyVO4l1hY+VY7XLGkVNdpV+UKiaylnWCS5wo3JQ6Tn0TAXzcBzjNN2LfWc7aTI4yG9EKW7OPtczDXZ8VLNK5kxdGLd9BMO9Put+T6XY5xZl8mtl3Zga9t23MMhQnL19ZawgIX1oNLCPn0fc++hqAvbxLCNRY7R+zatQ5Mj6jXhM9pxYeTR3Z4dIO1ZQHqjZqZIN9YLBTxZNhPZstYKLmRoRmb9kDIH5Il+o/bQvWZyNJRPFHacAFUbfI5w/lYnLWlw2CghLdKkqPzcHEse9YVwuuSIITIul6cxsb8AezzWjIFonx5rUWc+psi1U= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: e76bc500-6a23-49cb-6b78-08d3bab7e2a4 X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2059; 2:Yd8TQ79hmaZrUPd+jASe8u+ktRUTYAYD5BoubTQwXYIdmtLajsid8QDe289ClDY8Uzyg2Y8UDKKuVN+QR73lwX8M8I0JjZBjFEc2s2yU0V+HScsaPT66Z4AIUcHxpaEjnfjkz4mz4/rDYDod52eNvLvDIeqqQ4w1iYrcG8VgoQwD7s8EGTsdryruP1Vgg6qc; 3:ahzoVftSTAvww5YuYZbgjbgCcS256xDA+dXvHDUEm0ZfKCvV2qssFZlR1FynM/d820uHOIdoQoQH6bjzqoMU1PZgSnzWvM6TQtvSA1jxr57pZZAJohINyAL+PJ4p987LxJtUN4Zb6mpn98mO8L2GFbMRs3cko6Qr0e6xFc/f/9f/oCjkfzMVSOB7glUQmxZh2sMk7bwYSNhOu7XAdMlVQV4JBDCois8xeq5K9+XNBTA= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB2059; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2059; 25:zYvdWetomtsW9U307N4rRoNDvW4z4p18HxwhcTdedchNbMk0EpMQpLgSbmsco5T6chQZz2Wa/il1rYuqo7+JuN7whHkGeAONkXS/MfoohAJI4JrMOUv8a9wxSIWuI1tsHehj4oa7SRE3ifLDVNcK4FXM/Pan9r0gzmvS8ABpEzDH7ZUDajNeJtaoUIdXbhbaCWmzGOO22A1n6eZLOrjIsKjEqnv14WBnsgdmMT5x877ZEhX422D410dkwj7UQsDW8RY8p3iSmUGhv15zaNwpqH8BD6Dmpt0kiKHEwSraKeYrz0qAsTCX0nuFDAwSvNZ3dsNrwFqeZjfpb1Xah5ExBCNUuLS1/IQoJAytf870b2Sog0ByaBfteC46QIiegPZif8Y5hJC6AMIZJbA/u/eLW1T7JXNu/snOOL04BLbCtDeX3z4/rcGHTyL0nsX6SSR/BIhjmCze54zut/7hFG1DMx0Rpd7np7N1Flzk8dCpheN7+TswaARrIVW2E6IgOLxcynKqfYjPLloY7JcNXSb0PTW28r9J2gRMWYPavYpvzDsXoSLbGaWW+arQH99R7uKWr1+U3fuvxlewru4tQK/BEzC2CQG+0LXTLG8DbfvXa8filZjcqvg8cfWAGH6mdgyR/9/TzS+Lo1TThcMGnLrtwiBpENZ70d8Ix12ZAXRF1ftuQu7qidqtRtqkj3j37x3jNrFh50AlnOei9yeb2SYMGKBRkDhUD0mDJ6VVuOILKORJZpYBXDdS/CkGIkZBJJ1eOI3AYlwfZp1jrbVSBupAmYn6kY79Ny0P4xFuVFpi/dI= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2059; 31:l7gXowqDjzpggpbRxMqbSWjax5OlQDiWsf2YrmHBycjbOWwl2DBB8p9U00vCtRnY4z1c3370XP7bAcTcQfvru4yOGQVDlLozjtKm++RFuZ5SGeddYS7cR1euZfm/MK5ByEhE5rQYLln2IVhrGoQFAQA+23Wbooeq++tmmvySUM1BsElD0ErVeCpwWnyLoSjPSGQE0o/EPj0Km4U6s8zw08dtQSOiWiQZZrcSEQZqL60=; 4:0Ez3lS1/rZM9nAq7n5qBLdAgyxyLH5fnkvC19ZE0eJgS1fgtQvFszLrwX9zSq66A9wiaKRCLr16u9Fra41aMQeRoAaYNgnUtIqDgE4nZnJ0Jll00ZmxgIYTf3nLAztJ0wW4cNOT2C5dDAUabRC7yxP9+huIkHDPYq0fOIw/6+ns/xKD2XRu7yjJiKsbTbsrLzgh0Uz33aqTRejGejxfrCqoggbk+V3fImCCTopGKnkjNqClZr4Eb63UV9zYMM5q/mADdKXeylkE6c0jdo4oaSP3jefaL/+8tLN9SH5+jk/DtEzHNqwfdzz31wjsSzvlzXnFzTjgjRKnWvOJdp41AbZ6r1MFiKQZZj4ux09uCNW/9sI3EqmSftDk9e5hu3qXnvUgYXhdCOgfCPBZaLp4uW3p9jG9e8VIgLNKP2XmaFPVF7VN4PZJzb7427n2PDeV+8NIWobn2B+TtVjSBh8AMG3Z0ZBkTVJxQN4VREA106tnLJF1DBJXRua5tmDNN6KYT9B7o0pvB4qx6yu5iMlAakw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13018025)(5005006)(8121501046)(13017025)(13023025)(13015025)(13024025)(3002001)(10201501046)(6055026); SRVR:CY1PR0301MB2059; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB2059; X-Forefront-PRVS: 0022134A87 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB2059; 23:84ZpVRc4a27Nz4Ktdq/fI0Jq0UJDyCB4/hhjD4Z?= =?us-ascii?Q?ijKoESyq+cGySllKSJhjxSQhQkxOKJrJxZFwWWFI3PcAg2Ps800mKWOyrzNv?= =?us-ascii?Q?cTSuHY9A9S5XfECsQDTp8qVgyJ8X95Qs9/CJZNOEgOjvhtO89miEWdFSQlKE?= =?us-ascii?Q?314ZLSKZZ1wH4BPcZfrerrM6cHDua0SRlhP3VjWvCrzkbCbdu1tQtKmH1M67?= =?us-ascii?Q?uy6PBKfOffL7NQnwlWSucHdiPgVQWeJfjlVUjsnRdM0IdWUuunW4s/Tsn2MY?= =?us-ascii?Q?VfrY7RfnK4+M3JvF2X8LCy6z5pFp+n4S3HmYswCYF7Hg2D+NnQea5fqngLUe?= =?us-ascii?Q?etHM/BLhINdCtU64485Pi/qxupELx7vUAeQzVbxtIqokrSy2DX3E3ECxZCcR?= =?us-ascii?Q?fKgsx33h5IEnxe7bkMZfOGrXmZx7KB28FaHD5Kd4xdbDS6G25/057qXzz++b?= =?us-ascii?Q?/plBxndG8BJw8G93L/RqlMdHBrxozbVgr7ISAmFIR41FJwovpZrCKLlQnndQ?= =?us-ascii?Q?1+UnNiqkfputRuNpGSVMp5yrNDEcxp3NlC+EvL1ZO5BkqLF9rugoQ5OwRokS?= =?us-ascii?Q?XQCDfQsXHBUCkyC3NDUEBvmoe31P7nm9kfNNXpwnPCSYwM/pg3yfw96I7xhU?= =?us-ascii?Q?JPFjuHLKl4cA6PZA41+2d1PfpiUs4sqZ071AqrGCoeKz9wIYo6uEAqRrRpGJ?= =?us-ascii?Q?Sn4GSfstqbJvMQ0EXUWltWqsnkxaDFANfmklPDyUvq3RVA18b9yoh14U6BB9?= =?us-ascii?Q?4h1nMp2w2RS2ICWP0EEYoPR+YQ/b8rH9yp8qiZx5qRIFVTSrFw38gLgTPYkm?= =?us-ascii?Q?pLyjCbaNCKBKsMBKqQ9kzw7ALlX/mVi122/LXMkr81Ya1KHHCOHJeR2a+zcv?= =?us-ascii?Q?CiOy5YhTOMWpxABkznb5gj36jJo/rbPKFozePAdAnD6QMyMA7aDYurMJDp7o?= =?us-ascii?Q?Q2cDGhCBqO2KutAen3vPs4eoFAFE8KH+RMQ+qmRFof24kt4YSjxcmEz2K8sq?= =?us-ascii?Q?/B2G9/129KGxUxyYevFL/KIKK+YSKF9r8fF8qGiEDXT6FfFzy8ie1lflj3S2?= =?us-ascii?Q?VWOjnEHgAdhDB1Y9HRAS//i5lxMQO4779caq05wRIuSnTKUJb17TXWnQTb6p?= =?us-ascii?Q?rrfu9Ut0GzFUt43i6ZSNUl78lne5VY/dbSsnNsJJWEXdNMBj1LL4UPxBvZ8r?= =?us-ascii?Q?Wz94vIdROiSO8D74=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2059; 6:L9VyDLK41abQy4g/oqLMYQtLnAnuZmD2M053Mja2Bu7Ywpio6pfdhWzgrJLtNgYICuRgsia42JaS8dx2gZVnGG/JN0vAk+IIMBbnUcgzrF0ZQzL5PBHK75R09C/itaryssEBnAwgNfNfizDLHyug7KHOfMNdQGoNib9IcqUtQyrJxxrwh9K+Xg48bqYGdn42HkO3CSi4FkgtnT3c8leHdMpGPOoYA5O9q37JjRaRWQ3F7hbPwKNnrZPTzojojlZ66wice1NyyoeEZGT7rrTEKjSbabqHyH0Gb5AGNZFQdO4=; 5:sqUegeBNeADw1ZGK7uXJ9vN04HT/kZIANUYtkbIgQQTPDui74lAWIDcYhg10ucJb+b4mIW/CIjQSkzJAjeJaeNIiMEN4CchUSOJiJahX+6Tuqn6cgCdNr73UdcEJ37Z5wwEoIL5H1ddjPk8+jGjDRSy9BdwNxSnPIYq+aqgooZA=; 24:kIb1c7WkR+YwoDhDLQLV1LwL9KyaHVkSxZZsXuGQxRHs44pv7t16CVQSxvC4oqt2AqziKd3N65jg8dJaQ3/G62yHUDq1njREhMNMtBhCQok=; 7:zHz+9Sbc7Myjov7niZGe3IzEEHvLDR34aRvmuoP49nchNvMyMT2WBcuay0/b1/zFQ8pBklq0vwrDDEe9Sfx1vddXHnt3wutY3/tG+JdHtzF9Lmo2IE++Y+1/wzUcq7cW9oJE9BVttwb4Hfc3mD/wfQRvfzsMOoXqGiXlCrVCwLYJrHUx+n8+7JEgPmtuadLn8y27C0oyOTdSva5boyiFQXieNRWiTtfFixrEJX1AVejeBPfSPT4B+VXb72z0aBl2 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2016 09:32:13.2487 (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: CY1PR0301MB2059 Subject: [U-Boot] [v2, 3/5] mmc: fsl_esdhc: add error recovery for data transfer with Auto CMD12 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 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" For data transfer with Auto CMD12, the host will not send an Auto CMD12 to stop when the transfer fails. So this patch adds a flag to indicate the READ/WRITE command error, and makes the driver continue to send a CMD12 manually. Signed-off-by: Yangbo Lu --- Changes for v2: - None --- drivers/mmc/fsl_esdhc.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index b23845d..80bc177 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -106,6 +106,9 @@ struct fsl_esdhc_priv { int wp_enable; struct gpio_desc cd_gpio; struct gpio_desc wp_gpio; +#ifdef CONFIG_SYS_FSL_ERRATUM_ESDHC111 + int rw_err; +#endif }; /* Return the XFERTYP flags for a given command and data packet */ @@ -362,8 +365,12 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) struct fsl_esdhc *regs = priv->esdhc_regs; #ifdef CONFIG_SYS_FSL_ERRATUM_ESDHC111 - if (cmd->cmdidx == MMC_CMD_STOP_TRANSMISSION) - return 0; + if (cmd->cmdidx == MMC_CMD_STOP_TRANSMISSION) { + if (priv->rw_err) + priv->rw_err = 0; + else + return 0; + } #endif esdhc_write32(®s->irqstat, -1); @@ -518,6 +525,13 @@ out: /* If this was CMD11, then notify that power cycle is needed */ if (cmd->cmdidx == SD_CMD_SWITCH_UHS18V) printf("CMD11 to switch to 1.8V mode failed, card requires power cycle.\n"); +#ifdef CONFIG_SYS_FSL_ERRATUM_ESDHC111 + if (cmd->cmdidx == MMC_CMD_READ_SINGLE_BLOCK || + cmd->cmdidx == MMC_CMD_READ_MULTIPLE_BLOCK || + cmd->cmdidx == MMC_CMD_WRITE_SINGLE_BLOCK || + cmd->cmdidx == MMC_CMD_WRITE_MULTIPLE_BLOCK) + priv->rw_err = 1; +#endif } esdhc_write32(®s->irqstat, -1); @@ -828,6 +842,10 @@ static int fsl_esdhc_init(struct fsl_esdhc_priv *priv) priv->cfg.b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT; +#ifdef CONFIG_SYS_FSL_ERRATUM_ESDHC111 + priv->rw_err = 0; +#endif + mmc = mmc_create(&priv->cfg, priv); if (mmc == NULL) return -1;