From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755179AbcIVE6L (ORCPT ); Thu, 22 Sep 2016 00:58:11 -0400 Received: from mail-by2nam01on0064.outbound.protection.outlook.com ([104.47.34.64]:48640 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754916AbcIVE6E (ORCPT ); Thu, 22 Sep 2016 00:58:04 -0400 X-Greylist: delayed 1081 seconds by postgrey-1.27 at vger.kernel.org; Thu, 22 Sep 2016 00:58:03 EDT 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;nxp.com; dkim=none (message not signed) header.d=none; From: Meng Yi To: , , CC: , Meng Yi Subject: [PATCH v3] clocksource/fsl: Fix errata A-007728 for flextimer Date: Thu, 22 Sep 2016 12:12:43 +0800 Message-ID: <1474517563-17706-1-git-send-email-meng.yi@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131189918862425189;(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)(199003)(189002)(5660300001)(19580395003)(19580405001)(77096005)(8676002)(81156014)(81166006)(8936002)(106466001)(50226002)(97736004)(68736007)(50986999)(189998001)(36756003)(5001770100001)(626004)(229853001)(105606002)(47776003)(87936001)(586003)(11100500001)(33646002)(7846002)(48376002)(4326007)(2906002)(305945005)(5003940100001)(104016004)(356003)(50466002)(92566002)(86362001)(2201001)(85426001)(8666005)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR03MB2227;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD028;1:sgO+hVL9irO668AYQfJPlDJnFCmg5tWxAlynKI1eJxT9S/98uo5DKn48/mggrIg19nBFDCfrXSqa3sjGpXyriaVv5oz5V6uER3mvxHLcjlDx1ZjzRt5W7yWjjn+y0VnVA4zPiZjpfuiwwS2CeiOt9dvNFaY3IP3NQcICYHa2Ty3OH6m+4dBus3gH8SUzhBOcD7Jp/GdpiV2mO/1YytGB+vs7zjHD9MOBxrhpBg2Vz//PVMGAxnMHc9X8Nzy+JU9xVj5d3l78rUEmrp0zOzOR05Uv6C8JZzKIDpHnLFSaBzZsFSs7DT+6StTTjhv66QU2evg423ZF62nDLj3z25TJaTCFPNbUeqiBHGhSPpctwBbmtbvKK9cJQ1VlsDHBiI27m6Uyg3lT0+ofOaL5yCVsE9YF4uXT7kf6Y00+TBPCUN9w3WguVQotPDr2VpVzkDPQ7XY5sfKW4Ro/JFACAOoWgt05JmWiMr2WhrLgT24Ueb7eYOp8QINI62/kaWCzRti/vyrjOQIcRzzmN3Z/9CHlyu/rRKeqcFHiBoQAiWhDJjAVlWiDvmpmL8LxXzllIGVBDN+qtyJUJ6IcZnBnEKFeRG3fq0RI5iyXrVT1wbxt246nQ38bpolaDcqfYAYuqv3QDVpUAj6rWOyVqxQ9o18MLggpg2dWnd/rWD5Hb8NSSdAYH9bUwrV3WER36ojgLQdmGSkItHpodWcotFfcUFdirBOU2j8tu4S08sVcOxaw1nM= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: cc6c0b2a-d56d-4f1e-db04-08d3e2a0625c X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB2227;2:hmL+Uvjz9ABbaKkyubbBZHyL0tUnLWp9I3Iw6S9qJQG3TNRPPgwR5JsUGLKGO9MgN5Dro0D/NvaBzZA6bL4MwaI8ONjQWoHwRgZLLHUDGuseYpdIRb5tQvwYtQls40h8aPHlDZ4CC/Pj2EA3ksi5dzs1v9+oJxZZHGkzBgxb3bP9/l1yjU80+QK00AGu5HR2;3:1aiTmdATKyjjg+U+toLScAQstAKcP0knIaRgpLSjTSehzWFIPoUVzt8SCF73clFCe43r6WGMQrZgAYcndhsFkqwnojw6n+pK6SWWEzdCwKxT+F+a4jsB3cHRMg0H+XTraZ7fbVxkqsugPIheJV1fkfEuVxQQOi7cZ5Eq/N5eVXCVPCMjuQ20qNtfLl4E8M8ldr70cGpiJjuK+qVhabInpP13746oEsvoMP+zgGKwe3s= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB2227; X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB2227;25:Od2AuJXNnGh5wE0s0mCDXIz3OwDTKMksOcXsXwizEzcXuMaoTGTsHTVGj9FsMcBCwv6+YD6vjyvZ8GMp9wzCTolHhCcjf84kfE+6U3eqB3oGLIb/LR4T8Or+hZTpSFA9GnaRbjNR4XBPpyNvx/ImaXYAOZH9/gXSY+iAFziz08c0uC6r6NN8c+t0JSxqepveqBi+qh14xCj2jQJS0ss0KQF3nkEXecA07SwqxlRMqm0jzbZcn2VIREUYdwvh+Vf39eJ9wj3UjomzfBivR1zxoyAqwBkT9FJ0aImoGMxesEDJvpP/4WRkFrb+mXjD+29OPfVRy4hvWKQNVI2WGm8l2vT0h20ovYTMD84+sqth66ZQJGgI9Sx5Xb4u21uT7mxT+sxg3NS99PPABc7iyqbf+xovokqK2FYHD7HrQiB7ME+S45EJC8EQ/tlrhyOZRuPlYUVwYlPzdP3f3JMyK8+Da9us+sSM8PHByFx574vPtX33m9jYHlNRQCgzco4GP+wzTdq5xJmS9zoMZZ45sKKKnPjTqoCnhS4kseHuVJLY0KRTiMUkqLjKf0phYu3r6bqiHRVxBSMMSDl0BITbyWi9/fvVsC5ftetYx6Zi9MQIdxiuBPHNrbTcOg78GUdVbDdb6tEwekcoQd1qvD/z6bK1FUs/SbCStCoHRlGdSVxZmfIgHc4eiYKC1R/UQdE386NOF3WhEqZiIJHJ8ozymNh9kKsWNylXyM0mpJcRwHXgRWk= X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB2227;31:DDgDgWO9sLwn1iiutacOcc9A7Ro3xKDho7lykQghHLKMvvKb6t2yTOpuOQ5R6tViHFQKpVhqWMTpEw/a/5fkrmBB8eUpUrJOYI0f+5WidHyLQDWvcdkfjErsi+DSZgPAywB7DAl4c966I0No5CphCYGRAPdw6+NRzRGoqbd++DawKH3yQeu4wPfylDVbH94ZITGkh/GVBhd28/HLPUn4EeGuLjvMIaAkLhxGIMKaZ3U=;4:yae3OAuNSbL9lyIuvcvhEtYBdNMKoJ8L1BpjLW/fGAG3gsl21M2RDIpqpLtGI+gN7N8fVsI4sbjbSe2oifV1ytdPux1qWeC+DvF/E6H5c/B2Gh0JzV6H+XrCuVyqIJlkmSAN1EM2xSIcafK8zcCtf3W8Lo/vPOhZHS7tfWxJpbU+iBBD2pFJLK+KB6t5k9YHAHcAxTzduR8hYoeqCildq/Qb43krSngH21WLu3iw4lpHWJIzNYfPHnXua/rPpxk1QQycN1jWBk9JAHOznBWC4RU02TrW7/CQq78AKNwSqMy1dLLTfGzZ5iRRVTJZ4wDu+oqC5DcbGp0jOpjC3Ysq8jbb3+lI504xIW8ialdJuSEtZxSgZNYRIkiCCuQwMgAzXPvEBs5cCsYrRHvKkzSyhN/qs7KeWdqEMfbm0H70T+Rtjtb7VcySOjK9z0oBFdHG3hIAFCk+rgN73AqiwEYivGbfkab0OI+72I6WGPhiM33AeorL9uVQ6aRbd03JTWvRxLIqUfNlhNX+oJpS4TDS22xefKstmzMZ0gxgF2xi5Z0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(13018025)(13015025)(13017025)(13024025)(13023025)(3002001)(10201501046)(6055026);SRVR:BN3PR03MB2227;BCL:0;PCL:0;RULEID:(400006);SRVR:BN3PR03MB2227; X-Forefront-PRVS: 0073BFEF03 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR03MB2227;23:PDFzmATdgnMKNBmLE2KHqTG9x7fyhIbK51tz9QgxM?= =?us-ascii?Q?/apMaR+oW100lf0kfK5HL9OUczXlNaIZx6n+BGvOS37aIU0mmexDsC8mdpQS?= =?us-ascii?Q?cD/YYHX6tjJ60XvCATZeMjrLW2RsmdD8wl5gs1AEelhi7ruLMuVc3b4ISJx1?= =?us-ascii?Q?Ea7bCz5ZLLhCBvPGXWuTp6MXhUVsq4+NsXFzqKPvOe0sFjbfYtVn/6LqefT9?= =?us-ascii?Q?0kRcg5TYT6lSOIb8ooM89NzE3xfT3mpzQlSsqxmKJ2bLclMx4MyzVAb9mGqe?= =?us-ascii?Q?LPsJEE6Mibz42J4IKEBRFM2cw8sDT8bqDCs5BrShkRJkG0g0aJyPom/l142V?= =?us-ascii?Q?fY6qdIYzHxDfkylaiAyiaMCROW9cBw2Gvzz+p26zctVy8gnKJGW/bMYtQKmk?= =?us-ascii?Q?PO4/O1eXCFD4ulyS930ufOS4oRlNn+JrojTO8tpFK/25WKbu9SpS3YfrAT+e?= =?us-ascii?Q?iHEWTPWyuU5VovqAj3UO4R1BJre/6vBrzzM1iOJe7TWHVfOqc4C537/wUYqv?= =?us-ascii?Q?cOGxAbTZonKAEcI878ofd1Dgnyj+pcqgc6GxuJnu29RhATWp7pqIJyknob1B?= =?us-ascii?Q?MyRXDxDAS4ZSnCUjYbfhQnguyc5kH3QT3/aks/pTz0Ge1SXQ+OuWvuv9+VyR?= =?us-ascii?Q?ga5T34z2vE3aCForeJY8CgDpzc4pBmA9HGoyTRXUMGZyDYjNarp5O2qWNkJW?= =?us-ascii?Q?IFQUVemgavZk1kd1wXNm+vB78tbRuSVD0oFuoZoUpF843dj8X7sc9DlgszdE?= =?us-ascii?Q?MoQsjQPx74nhwdEvHVDbeKxPxNgvQ4sXJWbuWv9dYQOTpmhkHq4v7X8/47A7?= =?us-ascii?Q?lZt+Qw8X+/DngWjv7ymDnOHCf/VwF2U2EedTyckZyPl0bVL+CcOj6dcQgezB?= =?us-ascii?Q?Vubp/t5veEAnOnfVsLt0Uqd4y/2efZMgQKnAAzoLD1vCQ/lCAKTFK5a2GAAe?= =?us-ascii?Q?sl+q/c9NlGIEMF9lhv1IKh8fIZvL9tqcF5JBrYE9iFy4izNtlRtxoKisoN2D?= =?us-ascii?Q?XTxo2ZBklOOJHGu4S8Z2xzqlM1PYsheC6QD1BQfhWGBHp7srBWt6FVqFpvca?= =?us-ascii?Q?P/fAoXgtBq1NOBVAL5yJqKwPCjQS9ZoNYOXYju9dIYNZO2zhUFkB5IuQ8ZEI?= =?us-ascii?Q?cKW8sUaeFX7F9XmDqCsjjJmPgELxc2J?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB2227;6:BcOA482pZrJj4th4AF12EUu30/gjl4oUt+LfsF7yTH6QcInYukUliRbO3X6upGO8WFsSCKYrW4GAaCcftVG4aTxyzsWAZAySmdFKpkflRODerbzb6sUPT39zhGp05rPuKU9UQmULQUEGqqCikz56c0M3MRyScdUWA/ixHLMS1BbiecoB70Vg3p+VQjNujZVabgLKfLhn2dwFrxKuQvegdHclR/vhrG0QX5RPtCGGQY+QGy+B9/Ry5CR6+Sx9WJ3yeWuQxFDQ+cjw87UvgAD/dbz3wbfCSLIHDCVUDnhhg4Y=;5:VfL+mL2+MwEyiPaCSMmkMdMefUbseCaiyCstSfCXaXP61u6gaIgizHXy+HZvCx8FlGJRneZxi5svrnvXMe8mN6zfeJVSHWgivr49oKCbfiUGvLS9Z6A4dPj3zklc3DdBhxwcTtBHHm+oa3BPixso+5dQ13nNEnpKuJjh2IpZu0E=;24:NQV0quPLmPB4E8Ub/AtrYcPUJLCsYDDG5nXQ+uog+BLXRMAozd1j8Wr8PDLJW6k/JjmDnQ99gqmpPa7K/AW6dkfufPO0qKvPqKM9FOp3yIc=;7:f41LTFIytsnTzHp7MUFlcxRa0vAI6hK6np6SNDKuJAG9lZECTk3z1ZiWD0wtO29gk+uZDAB2lnnQCwJ/vrQjLhhGfeknu9F4/sd6vVMwCtGZVSQgVSnkB51JFEXdbFZkAAwkeO7IabOfvHnm5mWIhDPRzSmDSmuqB7hTZyzT5k739kJcxXsG2GQWspJni8QR5lU2wU/LA1eBzRiTUI4b1qA8w8okKVfes7BNHd6D1UeERLZOAM81l3YN+48xd/XhEZ2yOAFFB1GaztVQgrbNQJoi7GueJ0Jrq14dfeJV0HbhDS1DQgztsb+kH/iNQ8fm SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2016 04:24:46.0553 (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: BN3PR03MB2227 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If the FTM counter reaches the FTM_MOD value between the reading of the TOF bit and the writing of 0 to the TOF bit, the process of clearing the TOF bit does not work as expected when FTMx_CONF[NUMTOF] != 0 and the current TOF count is less than FTMx_CONF[NUMTOF]. If the above condition is met, the TOF bit remains set. If the TOF interrupt is enabled (FTMx_SC[TOIE] = 1), the TOF interrupt also remains asserted. Above is the errata discription The workaround is clearing TOF bit until it is cleaned(FTM counter doesn't always reache the FTM_MOD anyway),which may cost some cycles. Signed-off-by: Meng Yi --- Change from V1: -add timeout into wile loop using a counter --- drivers/clocksource/fsl_ftm_timer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/clocksource/fsl_ftm_timer.c b/drivers/clocksource/fsl_ftm_timer.c index 738515b..97bdb09 100644 --- a/drivers/clocksource/fsl_ftm_timer.c +++ b/drivers/clocksource/fsl_ftm_timer.c @@ -83,11 +83,11 @@ static inline void ftm_counter_disable(void __iomem *base) static inline void ftm_irq_acknowledge(void __iomem *base) { - u32 val; + u32 count = 100; - val = ftm_readl(base + FTM_SC); - val &= ~FTM_SC_TOF; - ftm_writel(val, base + FTM_SC); + while ((FTM_SC_TOF & ftm_readl(base + FTM_SC)) && count--) + ftm_writel(ftm_readl(base + FTM_SC) & (~FTM_SC_TOF), + base + FTM_SC); } static inline void ftm_irq_enable(void __iomem *base) -- 2.1.0.27.g96db324