From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754987AbcIHCQs (ORCPT ); Wed, 7 Sep 2016 22:16:48 -0400 Received: from mail-dm3nam03on0047.outbound.protection.outlook.com ([104.47.41.47]:54176 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752784AbcIHCQq (ORCPT ); Wed, 7 Sep 2016 22:16:46 -0400 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] clocksource/fsl: Fix errata A-007728 for flextimer Date: Thu, 8 Sep 2016 10:04:55 +0800 Message-ID: <1473300295-32574-1-git-send-email-meng.yi@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131177746038849619;(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)(189002)(199003)(81156014)(8676002)(7846002)(81166006)(85426001)(229853001)(105606002)(50226002)(626004)(19580395003)(106466001)(19580405001)(87936001)(48376002)(50466002)(33646002)(5660300001)(36756003)(8936002)(4326007)(104016004)(305945005)(5001770100001)(97736004)(586003)(5003940100001)(77096005)(47776003)(68736007)(189998001)(356003)(2201001)(8666005)(50986999)(2906002)(92566002)(86362001)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR03MB2433;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD032;1:lXhy19Afwa9sW3irfXxYW7ucN9syI0AiCh6kO8uSWswBrTGlavG0cLw+e6rYLAe0JVoHaWEm3jAPQdo8ppq+rmTRgQT9tsw0hi7KJT/VMa1/HnuCwdRxPkrquNVMVsvZnMdbP1PMyrBSFlyeR1qhyrjyi6ePK5s+181h30OVwZQihZfO17zXWHrVfi2I0SS1OHsdDm+G/g7rJn+/wXw9+46BN2d5a5qnJc6OlsP4yRNC1VScT8F92/qP8Knu2tM34VcKoeqQSxzK4KzNH5J2ZGV5QgnhcIzsxgYJhoyWbl6TlrCu02qa8/Hz3XaiMQDrplm+8kgeZWmwd/kBWpbeGPLK6WMwTDblzW2EYl0xrochYIXDPDQR0F4z3LwBVQ1JFu4puo8+GEVDkwRUypWrM+UnVkjEU/j714DX/a5927z+auF87cnyCl+9KbKGhTX7DHCMV7wbf0L9wzxF317M+49KEK6I9mXehkeX8TT7KlG1SaDNFZXUzk3WlOzz0iG/zvU7qPpCQKBuYF/4ENHDnVLqxeQ8yo20oDvrGTvowgC9iFB91ydt25quVibamNYbg8vQM8/sVOMv+BUfEXOD33KU38YIvNHt9C9FpxH303MY3XyK6bxOuS8DMfwNN6NXjjfNrLT2le5jV0OhKXYpGgv4BABP67qFYs6RMZ7lrVWbEg4Rkk56ETiI2Kn6n4jNTrjKkTi3EprMZg1SRqg3p9NTVf3BY0/qXWchuGlntuA= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 3557eabc-5c96-4717-0053-08d3d78e2d8c X-Microsoft-Exchange-Diagnostics: 1;BN6PR03MB2433;2:R/yZb8Nzuy0i/Eoe/I2djBw8rkxY2MQEMUqTdkHQ13n0gj0KFwaFKOxd5oGD4Lxe/Rox/3ZkfrhpeINa3EOZjKPtctQ+HhKoa2I7gplWuNN4QubntpoOUp1pHXgtkDSm56oX6n/gZ1QvN8njsoDSzMEfzQXikxNMAW6Lm//bd0odISvRvY8Uf2LXtIpxAchg;3:rDWvxAP1AagtqEZmPfRVecwzQPLXfuWu9wcCdPIIwl+OOVcNd0F+8zO16LxlDIN+mmIyBOatpW4NKYZneZwxjcrk6Qcv8RSHsoeEAs73Lg45CuppiKuN50LIaeyVQ+z7l9sT+gqbs3RGSrm2r4L5w1PuqSp2B2XwK5/vbcuPq08x6b8aL96FF6oP/EAMupXqpIv7Eg3b8wsWB32i2DpVwUmTiJdlRRUd8ESxwv20ez0=;25:WKaiKTDX/oxl6zwN9EIonPRJBzUoNjtxBhaDNScToRTGoqhNIPdGxaCzPKnjgh5ZPYVsvqHiATdQndo4WN+Vnz++iEpgs9LBm6JJDwUJWmqBBFvXXKBgXP9d8tFeC1Vu05zN/GLMnAcxpQ4rdByzwS2g5VYDa7U0PJkTccO5Jm9qcCbUL/6TiKkorKoIsNs4qUGOHICMAzCT8bu2k35MNDflaOD3BNU5go4p3x3NU6KYnnLaUzAWSAIfrmdcZ72jhzlH2YJ9grtAE8K59Iil7iq0lecxUSG2ACxIzjMm9/jmSK4Fz+2FvneLN85X5G/P6tI9cqNBCNME7RX3TnwO92TNtN4ElzHD/m7GduhDWBLZok7MuypShQVKdIJ804od167UPB8xRVJT1KcVj87UWCAVCNiItCjLetNnj+9aQlQ= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN6PR03MB2433; X-Microsoft-Exchange-Diagnostics: 1;BN6PR03MB2433;31:Nv8jtWOhwPQRtDoLGedz3/4VnH1noqLk6F1cpy2ebk6qSYeP1oIf564y7X2a8dok5TnRwOEYhbPX82H4KSbvNnri2VwGyR1+xEra4L2jvKevgtn4d58gkMI1OrUyzNe/QuFMhapb4iy5D2i/DoRMhpd1PYDP4UUgQCYz35vkf93dr7Wd3K4dgl5r5/NzlUcmyRuqYt6jhXkEcbtFKidwEClMZch6gpOl9rz+99KGSMw=;4:1iSfpMheR+3IHsYx3oLYnzi9LJ3k26Z9hRrg/CCIgpjW/pjeF0VIme/IiJB9KkAZVXo65FPl7AylulyPu9V+U6gcK6s2NW8NAaxvz3CsKCY0VOx8u8cin1jYcrpbjP2L0N6p1h2MTrQoXlObid8GLk3z6pylx0mAZwvo5GArZbtgUMUziAuaq/a53joAAYThsORSthby6HtLmdBKl1bT34K4oiKf4Q0NZJOIdm01ZsbaPFZYEIit00k4sEFsnBpR/4t/XgM21VEv+98FE/pMyQXgak39OIG07AS7s9JcMNbRYzk+mKMCZHXc0LrV/oOxalWcSshyAgmnIy+XOmrpDijgVO7IR4PfEmK0wdJUyrLJSCNp5MRxh20ag4Cjx17b9suPSeRZGYcpfW9u8qGwk7bvpE1ET/M6Jc1pKTQKjHjOaav0+6IjwRBm6tWcRU08fkLVFljVUHq8LcYLPtl51GQBrfVEnNvsxQ9IOeaDUF1BiixOx0BlqtHvuKNRoHg3F/kzxZgHQOpEU0Wo2y+Alv85MspnVq2IetibmYoJ8fA= 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)(13015025)(13017025)(13024025)(13018025)(13023025)(8121501046)(5005006)(3002001)(10201501046)(6055026);SRVR:BN6PR03MB2433;BCL:0;PCL:0;RULEID:(400006);SRVR:BN6PR03MB2433; X-Forefront-PRVS: 00594E8DBA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN6PR03MB2433;23:Rhl9iAnnuhr425OT9dnRuFcJNlYuZh+ce5R2AniNm?= =?us-ascii?Q?PrWxLxpmVVPYIZ+Gakv5bKgX6Sa/ABgA0RNiQHBz0lJ6+rJ8uhxdASLB8Wgm?= =?us-ascii?Q?cvE5XrrUVlr9OxBzkChDRRuUTNe9PI6UMLvfYlhMLusDX8SUpEA7DAoa2NAm?= =?us-ascii?Q?KvMX4nfMfvEw5ruAWwZZ0lftaNU8+W9GPLVp49Vn0CxjQnUYVS+nZtdLc3WA?= =?us-ascii?Q?BeFFKeFFXf5TX0l2+S0P9z9vy92ciMqdbXQq0fDSx9gb/5KzI1GqTtOHS0Yg?= =?us-ascii?Q?kb9/fK+PGmGNn0zslzvUE7JccwBYvn1W7vzF/hSuKtkAu6h9cyInn5hh5umm?= =?us-ascii?Q?fhqvk2LHxZAe2pxExrfe7/xkRgTWowbd2B6A9SsM0NvizpN7NvMe4S00BXVr?= =?us-ascii?Q?51r/blsZRSTYnJ3ZK3I28cao57cPg5QwRub6uHr76n0+4X0nnKb8aJK/VQm+?= =?us-ascii?Q?7ITobR1L34AWstFRUp6S5GKxC8S4SeRGW++TnOpAXIfNaQIqwDj5q8vnH1sN?= =?us-ascii?Q?ZqkrvcAXPbRzl2kC/WERcyoKdC5DhALpkk1s4SCcskKXqma1Z1pKJ8HHWb0k?= =?us-ascii?Q?q3ltfPF2r7FPfsn2G+axaiGtLCZsacf3ZTqiBj0ciN65K9LuXg+NAlcp/GjV?= =?us-ascii?Q?cukhWibXUNFmg5+0hG239ZgIzaoWjmxcDu01XG+ZsowNhtuZxIxFZOMkErvU?= =?us-ascii?Q?/gLRXgXQRGSh8ZehYy3c72AEPnrnudfdNcLreHWpakKnf+YRWjeuG7C7RI0/?= =?us-ascii?Q?hWGbN70yKX6Rqj7WRwB9i1P9L6lMHspYFk1+Zg2m1r/CYDjoe1zjUzjs23mK?= =?us-ascii?Q?v4BirVL1tY0p8d99TMJxIu04TwNKNZFmKpHrmqmWn9x93olJZgAmuDb/HQXk?= =?us-ascii?Q?V19jSzCYacJfWKTMoNKRg2fka/mME7BDQdl2XWeHSka3EK3T/Fr3fi2Bd7XR?= =?us-ascii?Q?JyQB/gU6IM4jM/xfSFJnvdo8V4JjbMgofnavHEIz4/DWGLRSSx01iZeeDxLX?= =?us-ascii?Q?KETbGF8FcS4cd6Ky48i3YgYSJzNtSeVRk3rcbhDQBN36HW48XHsYxRYs5Ns7?= =?us-ascii?Q?NurgpeVthDDNN43aWkIW8jEVQbaYMhn4Z93PUQ0UbuhLvpF9tVHQRGSdpWRb?= =?us-ascii?Q?q+xOsThbX4=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR03MB2433;6:84XEH9E87KTnSwh5EHQb3P7wY30z45TxEx0kxjHa2yRefrMv/P03YowsulofxRGi/XYqpwZXrpicSNMyiL4HcCUeI/9zbm0Pb926yuqX2nRWAxLhXMvRKSLQk4oNutBQGjZI2lzUzJMjazd9UjToUfUqX89Cv3EzsxUunXgZQRi2UCRg9URTrLmT9/2QoiYvgCGSUNBCsMHab7D8y4PmUD2iALJhLyzGS6bC5RMxAdbfEaCrwzNv5jy55mlnc4QzO3Z5IYrueHV4qT7z6peLZnatPudItbm2UQtf28m6G1g=;5:MFgrsdzNUiH0PjxbPfNAeLfid1Jw/mIvPpDtCFWT2CEK7fjY44qfFcdWmWhoymDnv6PZmHTSgyR2KZchT+tS/0nkbxqpWFvsEddN2RERUizATv2p/7JplR6dUGW9YupWz7jOJdYi086TfmJVtHrXpRWBE0XnMHbe0WWI0hC5cm8=;24:LqO3Zj6f9GwbY6RUMczMQzcoeGeYBpP2c+x6T9BhHCU0JmHuoYfjcfANAO4WAfDLFcGKCPkKjLKd7WMI9nZZvVgsM+8T6fQvZr5K+VawUhw=;7:jXYZxtmmZW3d0zCZ4ihu4GqvuCGjO+Dt0+WPvcBM3VqClfySSzP9+DLbusGleJ+v1Pst8Z422kIzN+ZWRYeB68zApxEV3WTA4525uBm1iyeb1sUoRw/yIBXgC83y3Ms0Rbm1tMKRBkf/ZhABMQ3+/qr/2r0f3+1yr65HWowUMFm+OORLff6KXQl33SBF2VtLaeYyfALIeSRnNKENdSt/M3hyxnqUKkzt+510VxIEOSlJgQJv5kvWB37HIid/FRXL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2016 02:16:43.6977 (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: BN6PR03MB2433 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 --- drivers/clocksource/fsl_ftm_timer.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/clocksource/fsl_ftm_timer.c b/drivers/clocksource/fsl_ftm_timer.c index 738515b..ade26e5 100644 --- a/drivers/clocksource/fsl_ftm_timer.c +++ b/drivers/clocksource/fsl_ftm_timer.c @@ -83,11 +83,10 @@ static inline void ftm_counter_disable(void __iomem *base) static inline void ftm_irq_acknowledge(void __iomem *base) { - u32 val; - - val = ftm_readl(base + FTM_SC); - val &= ~FTM_SC_TOF; - ftm_writel(val, base + FTM_SC); + /*read and clean the FTM_SC_TOF bit until its cleared*/ + while (FTM_SC_TOF & ftm_readl(base + FTM_SC)) + 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