From patchwork Thu Aug 25 08:32:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Alice Guo \(OSS\)" X-Patchwork-Id: 600250 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D21C9C04AA5 for ; Thu, 25 Aug 2022 08:32:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236525AbiHYIcx (ORCPT ); Thu, 25 Aug 2022 04:32:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40574 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234992AbiHYIcw (ORCPT ); Thu, 25 Aug 2022 04:32:52 -0400 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2047.outbound.protection.outlook.com [40.107.22.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2E45A5C5B; Thu, 25 Aug 2022 01:32:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KBFIBcQnw5i93inwyHBQ5bNCVBk6dHincKhnsWqHDXriTBU0+YwowXFAqVIt8mE16/ybndWYvprXq8WcaG/sTRHsn5bKoI1JcuxBHkTxV73ItYitw+WBodZUDXmLee7JVOj3onbvB2I8RM15Z4J4wnJT/fbnQb3lcGFaSVS4eHN1n7O3L+fd3e/I8286kXm2jaS1OdgxyodO9yuzSifek/196fzo6+wfM6TrwfoKDkMKscEN6DHd0t2PDo+xYwKuNpP31ZC23Z9zNwaB18EZwZkJuogQH+9dZZMUoXRUa8CFT22PmMJUUT1swgVmjSq/KzeVUC1YWBt84WLJr2Ezfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=akDfNw95eqR6I7DNNZM4xG36aZqW3v9+dobNicjVgrY=; b=KkUjBepvq6mCEI9Pp6rBnvWHqITzQtAdR0fHfOJhfAXMFhZNCwf3Bk+JMOyH35z7xqEDJttgcobjRH5nNghQyT9MU3tUv2s7MAJXju30IYdssqH2xEBUxBhmBRdJZrLM+s/Cyug9VhOwy9Un/kMOf5R3WDOMuq60sdraDDiPUTL4nEWrIHviZ5aOB+J4sRoswr4Vx5gpJGk0WR259/mGG2TBgl4vyolR+3Cr2rK4Zut8RQjDs58W4J2aJeXR9ZbypSdjQYBYBeuUJXTehxnrAgA+sRDATKkZtPRAnU1WZWRa4iHAkYGcEogdVaHcZjiRPrPHf7etXQTtMvVfTCZbJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=akDfNw95eqR6I7DNNZM4xG36aZqW3v9+dobNicjVgrY=; b=brWQ0AAUA5KglOIkgMNFoZEavCbPz29CWaVDGoF3FXGyDCyf07CyZKs8X5DYVmeZgf6I9nJ48g4OBcKa35AFLIhzBzdBKmfUFK7dwU9zc78rADFmB4zBIS7ojnUT0ajROhuwA3Gni3RbGwcL3AjUtnmYmIVJvHvSrT8u9zot0g4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) by AM6PR04MB4901.eurprd04.prod.outlook.com (2603:10a6:20b:1::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Thu, 25 Aug 2022 08:32:47 +0000 Received: from AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c]) by AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c%3]) with mapi id 15.20.5566.015; Thu, 25 Aug 2022 08:32:46 +0000 From: "Alice Guo (OSS)" To: m.felsch@pengutronix.de, linux@roeck-us.net, wim@linux-watchdog.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-watchdog@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/7] watchdog: imx7ulp: Move suspend/resume to noirq phase Date: Thu, 25 Aug 2022 16:32:50 +0800 Message-Id: <20220825083256.14565-2-alice.guo@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220825083256.14565-1-alice.guo@oss.nxp.com> References: <20220825083256.14565-1-alice.guo@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0225.apcprd06.prod.outlook.com (2603:1096:4:68::33) To AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 73514314-bcec-4f8f-c402-08da8674634f X-MS-TrafficTypeDiagnostic: AM6PR04MB4901:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5o8J4sxZ85P8ZX0u818vmdlQaP3hnW7gmeRj7bX/gFGYifDd6o1FfCpVPWhcR1ZkvBC58GpmqW+2UAwQrL3Nxq+AQkTs4ywkiadaD7xbgjxCZFZZnwmBTzKfPdZQivXFnX7qqz0WDYQdzC8QDhHMDArFkK8ZMtyQkrxxqYJmZ/aYcvWQmlht17OqHWp5NM9qgYNEyB3hWj/wEQndwDpUVr0XtHRR5WJ8vSH+JtsGiyL35siO585fKb4teUMJEARkVCBS8CyIw38Ma6mrKgboxf2EQHvhYNSc78upJWalE7baGhlW/mRs2/YFo98Mr7GchXWE/Kia/wFOrHcKMMyRvCR4OFhkXqeXuYaImJj6SZr73PpEdaEsrnZYwMtak9wEPvL6ix9dJo9lHonZicblZsgjB8G+rrRND9XnqER7VNnRTQ0VobzBi+cvn+YsF8PzpE4JKRReqIBpt5OhNQTVlANZBMzYZOEP1Onq+niqakmTxwTOOy4dJRE33Ux31uN8C+nj+JkdcQvCHWxiUwZTvYlcAvtEEE6+1+bzDGS6afxyLWDbDSkcvsbfAQGpxn9ojv262z1PCcRj+YPP4Ju5EHcyN3Fj4DpPOWpSUTQxlk8IXU0zFFxHFWDBpYujweeguASWD34jHe+03NYwRSi1o0W8fpnaijz4ng1SwCpUUIYCJK73C2XJEZO4UEPPL3WafK01X7wFhU3r/DfUN7ZKBY3OTu5BPpcCF99axKF4ds5vbtbWItOwBZdkxKELJ+SVC2IBVvk5GUvvpeLy05Fdxg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6053.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(376002)(136003)(346002)(39860400002)(396003)(8936002)(5660300002)(7416002)(38100700002)(38350700002)(4326008)(66946007)(66556008)(66476007)(478600001)(8676002)(6486002)(15650500001)(6666004)(41300700001)(316002)(2616005)(186003)(1076003)(26005)(6512007)(83380400001)(2906002)(52116002)(6506007)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Vi9Z9aBGi4H5VqHYYP6lESGTsjfUcGRbdh90iwQlod1Fwoq+vXlE68wgYoHrjy0oNoXE6L1BwpMaTUqXjHope6v3+9husWQt6BdZ5PQOqvRV0wbhosWSgVtGVTmG5AhkuYzewkn9GBAHHp5llTFb0ZOz7VAHbG04ituojKieMkIV8wla09zTSflylcKxpj5g5FZW7Lmh8GNndyWxxfEj9+IeUHqTa8BF9BPLDnABr3wt9Bktm5sWRUsXKzzEXef8h4ud3wjnfF4IeyCnZLzvLPU5VaCTs3Y3QhoPcjfrWhFODMUqeb1ASPLKlXDumxRUBOxP3+kgDkvCWpyg883Qva+h2TErNzBHvZnpFqKejRmQGuiL6vaSECbBn87j53mtcaLzxkdirJTe9FksGeX/HHSDMinsVUViV4D/iTRF0JYOXh5z2C5j0Zcub0lzsiRSqJccmMv2oYeiDXZkO0tsarZbmYy3dIjzrI9+ZhNQm3f2Lg9eQWAbPuCRbjkDzdpt88Dp2ofSKGZ1+l/v9/5cRQauAPXNDeF/UDQbSlFxNOWAz9GI0rRR73ZHYp44M3EHobme6KFhjw5WW9v0UAIygjSnsTS01buBG8nHREVjnJ/aqUSoa5fSlMBBktYKGCrY/jLj5MgSKN7W4o4rV9F3W4KgqJZdhgAG2yZtxGO3aFNIqrK4K659eCx2II3RjCbtWE2sAARx5nVAnflv+pzeXR/DCSRpt0tFrF/0004TEjTVZ8CN9LEly8ADU5ZhxezQt+5GK9jyHndMcluxUSCSOIGwkxkR9BcHqojm8qKQpd+jYEg+0bLoOsUHvBySOHMQHP8fyBbt0ExTe9LmqoYebVwMCOLDgf+dldkSj9wjO64adBgPKaGUsYEgF5X8uKVA9parIDGiBe/yF6+0G/ncsrfruCEQ7xPZcCQUi/11gxkX6zPsw5yswp0UwtjTjlND9cB3+yniyTsOp/FfARfhvs9y6pqq++4WCI5yrTFeP/Dn1PwkP+G5hwcoM0RBGFxwIOXGoPYGjHdrIJAUzECSEWPzXP29qFza7U2fHaNZseqnsmSwOXJmFZdSFHCUTxAMlQox2nwcMNiyrETZOM7WEPk6KkDpKtoI/gQvF32vw6qbMMxyaT94jRP/NM5ln5xcqAR0DUb0BEiLRmtSUBuXCRoFOZApP4mmE2DVPQ+sqR45SjJr8GM24G3L4FjP668LCeReuzRO3u0AmEB0QkL650vREFI6Qg0itWwsS/L6U9Ord1ln5Wqug50qvyJ+mBNw1L1+KnPqWXCRwUsGfhTl24SBjaofyPmDNtYkeOAkOYjbrMxUpbkmpn42zCvSf9OPIhQmWsGClKBZJOXCmrhBu9UUk6aSoScZEz8YU7JCq9h8tO/CCRRwA5YAIevbK9wyuv1nNIP7+YuOEYUEuyXTnsDbI4VvV96jIVp6wpSaJQM83V4yPs5K9svwhXIsPn5T4aB05qg6icb0jaNwsDHAHB7F7SAIZRxTsTuxyaBKOAhWQzeSKrn54wnqmJJQh99+b/ikgenevGeXOPqZZ4hLZx87jrBd+20LntPyD2roo+6/9XkYAt2tzrUHrzlHfC50 X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73514314-bcec-4f8f-c402-08da8674634f X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6053.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2022 08:32:46.8721 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UChGg1OrstGaTE6N/clgO13xWFLg0BbXIi7X+KlHW0X6KyXwbfzKYMgdhhwbTyFHiZnPaPj4u5gSJNo1QrgdFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4901 Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org From: Anson Huang The i.MX7ULP's watchdog is enabled by default when out of reset, so the resume callback which is to disable watchdog should be called earlier to avoid unexpected timeout, move suspend/resume callback to noirq phase. Signed-off-by: Anson Huang Signed-off-by: Alice Guo Reviewed-by: Jacky Bai Tested-by: Peter Chen Tested-by: Li Jun --- Changes for v2: - none drivers/watchdog/imx7ulp_wdt.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/imx7ulp_wdt.c b/drivers/watchdog/imx7ulp_wdt.c index 922b60374295..014f497ea0dc 100644 --- a/drivers/watchdog/imx7ulp_wdt.c +++ b/drivers/watchdog/imx7ulp_wdt.c @@ -255,7 +255,7 @@ static int imx7ulp_wdt_probe(struct platform_device *pdev) return devm_watchdog_register_device(dev, wdog); } -static int __maybe_unused imx7ulp_wdt_suspend(struct device *dev) +static int __maybe_unused imx7ulp_wdt_suspend_noirq(struct device *dev) { struct imx7ulp_wdt_device *imx7ulp_wdt = dev_get_drvdata(dev); @@ -267,7 +267,7 @@ static int __maybe_unused imx7ulp_wdt_suspend(struct device *dev) return 0; } -static int __maybe_unused imx7ulp_wdt_resume(struct device *dev) +static int __maybe_unused imx7ulp_wdt_resume_noirq(struct device *dev) { struct imx7ulp_wdt_device *imx7ulp_wdt = dev_get_drvdata(dev); u32 timeout = imx7ulp_wdt->wdd.timeout * WDOG_CLOCK_RATE; @@ -286,8 +286,10 @@ static int __maybe_unused imx7ulp_wdt_resume(struct device *dev) return 0; } -static SIMPLE_DEV_PM_OPS(imx7ulp_wdt_pm_ops, imx7ulp_wdt_suspend, - imx7ulp_wdt_resume); +static const struct dev_pm_ops imx7ulp_wdt_pm_ops = { + SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(imx7ulp_wdt_suspend_noirq, + imx7ulp_wdt_resume_noirq) +}; static const struct of_device_id imx7ulp_wdt_dt_ids[] = { { .compatible = "fsl,imx7ulp-wdt", }, From patchwork Thu Aug 25 08:32:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Alice Guo \(OSS\)" X-Patchwork-Id: 600849 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80FD3C04AA5 for ; Thu, 25 Aug 2022 08:33:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237432AbiHYIdF (ORCPT ); Thu, 25 Aug 2022 04:33:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237377AbiHYIdC (ORCPT ); Thu, 25 Aug 2022 04:33:02 -0400 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50059.outbound.protection.outlook.com [40.107.5.59]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AA1EAA6ADD; Thu, 25 Aug 2022 01:32:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BGEfnPcnDLA+3OIHRQn/Txv1VVhUJXvLq5P3AROGfjHAvGvWSUF2PzB+tNslNwbnk+bysVYnmtWnfwVWO4NpVoeRIwGSjxr8GyI1xx5Qjhmqdz/qRQffHOC5FGxplCzMi9aXHHjHQ4+D+tzRweQQqQm84pbof4HhMH49v1Fd2ZDBmMkbr1EdeZJyp06y3E/cS0/K65hWpQUh0h8e4iY4KRkzCsgZvyVMHqD5lmE9VVj/NIC+xIX/bxQptB3kYGSupf3k8BDCo6YUaCEiv3uoaEs/6hnNI7XyhjLmV32GN4uQBAmI5kwjvNiMm6DRYNU3lCsbRZ3L5+0Y6QhyLTznEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kdq8c6LIrM/UWoQW8Y9QzYYiADG1jHHgY9JFpC+nqpk=; b=OAbfp5CnxLk3EkNcGv1Rk5Aqrtb+VDUW0fPEtpnS6BDyJKTWqGIb292x8bXMZq+BFVlnQZYqYK0C7eK37DVkAZ2LStJS9x5Lm7tSsfqwuO9LC+YM36aSFl5CDafsrfOaU4h32kGEVLGy084pcLzHgKDddCCK6Qto9oHSZxSrnVAvxVNu9hCBuro5HTSdqwEd4QMEcG42qdCh4vrcsbK9C/zlx0XwzC62mofk+Cn0nttypeV1ShKgtiFy4SbnotuYJioX6U+FfGEtRBEXLtroDYKoG5jCC/XIE8TL7TnPkCj/Dir/cTSspozQZ5fWrbQaKe1QVViMefM2oQuQNYmuWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kdq8c6LIrM/UWoQW8Y9QzYYiADG1jHHgY9JFpC+nqpk=; b=U4NepmdiTtPTd83xZuiBqFvw7ytUYMdVYy6AqE/5CNeJ3wa9Ox50BVv2TGY5mC4rZcDsZ5jIb9ieRJEkgrDsJbXvUMMMoRmfC4bhsl5t8x981MkxBmr/IHiPP0LBbfs3XX+H434RsNl9eISudraCGQWBV7F1S0oo12Lx/kciNxM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) by AM6PR04MB4901.eurprd04.prod.outlook.com (2603:10a6:20b:1::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Thu, 25 Aug 2022 08:32:52 +0000 Received: from AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c]) by AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c%3]) with mapi id 15.20.5566.015; Thu, 25 Aug 2022 08:32:52 +0000 From: "Alice Guo (OSS)" To: m.felsch@pengutronix.de, linux@roeck-us.net, wim@linux-watchdog.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-watchdog@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/7] watchdog: imx7ulp: Add explict memory barrier for unlock sequence Date: Thu, 25 Aug 2022 16:32:51 +0800 Message-Id: <20220825083256.14565-3-alice.guo@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220825083256.14565-1-alice.guo@oss.nxp.com> References: <20220825083256.14565-1-alice.guo@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0225.apcprd06.prod.outlook.com (2603:1096:4:68::33) To AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 657567e6-0bbd-44fc-cb1b-08da86746670 X-MS-TrafficTypeDiagnostic: AM6PR04MB4901:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z4K2+ofqI7VK2EVrPju1REpQyL3y95QOGRUBQ3h6W438SeL4T5ohf7drDximkrqk5cY7uAFzuAIh6zzBhMJPJZSx00YXaX3Lg7YEAxnO9JWtWphx8hV2hs540Vroi5ONwk45DxPRAmEYYhavrX3mmigdlO2r2VnB49RfY0I3m6QUyQggEQLnT6zfU5MdQOkp2uyfnl3KH75nell8umwfJuT6uTxSW7XBQdpX8rDpgJbvMGJpTPaZk7TWQ91SKtd+bXlxK4XOxCC8auX3lh94AVbJSRMmJwEgq3oVgmBxmNDaqgXewe83y2wrIreFeBQGe7XGKvSvQkUXY2PxrfaxYaSvLYmuQbau1GipiWZPjaRXcUeWfdT/FDKyO+voSECGm/nz9HRAMeBpNZcRVpZqzduMMI2LV/EzGh/czExqcvenpTfbQ/OKJ38l0HuZNZVMzeRjygGkEPuHakIWR0HkVhcClfvaQVzmvtvuqSTRkEuezGaROV+QWtvRy0A1Q3gWPFZ+C426lid7ssPDCGEuvUYkzctaRHBlc6QE+B7VOeIjRjKxMthot6BJnfOsBBtZ/i2saL7yXpFX8TSYyfhXFr9gHAKITn5GTFemiNPR+TgRhkw5c1sgC+Vj85GFYxZ5YTya3K0X+c+cXvwm803mF8fOh45jOds+GAaIooZ8KeZOv7WhpGJ3BRxTPJDY4+HVZWYFqsKGJMeTiylGz/S0o1VR3hSWl2S/w4qRm8R7BS0wGAYeKzxs4ViIZWvT/Ratlp6IZ4ZrSZ60odwAoxkW4w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6053.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(376002)(136003)(346002)(39860400002)(396003)(8936002)(5660300002)(7416002)(38100700002)(38350700002)(4326008)(66946007)(66556008)(66476007)(478600001)(8676002)(6486002)(41300700001)(316002)(2616005)(186003)(1076003)(26005)(6512007)(83380400001)(2906002)(52116002)(6506007)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xSuMh4+zeNDbnpTARcqakOz3eV76U2UUj2+63eXTaWfyzVD6EWm1WQcmyJR1WwbIKCp0I3hf0E0s6p0VVW4003EDtxmJLMZREj/RhEQ/JEMxUs6sY5npTy7jtE+Qgz613RPxn6sFxvFTVsVSlFxfFIGFQ4Co4BxWqF39V9cQxCNQblLVrQ7eczVF3KCSqCSHUCAZyQiv4Hj6qWt7BSacFz63yE5s6HGMRL+Spxy9wZpFpNCFueW2M+LFDAIbf16RIrkiwZQK+hx+oZPOUsft2MWQttXaHNLBuFNxraO/Prbtdb6HmFkL2G21KEHSChl32A9hqmJtDWsprFLZgvtMHEOkSysAHtm9W2ItqdoHpO/cshGRFbUoFCnsFoiOBMrsvWPxaxlP61sbQ5PwMTBE/4DMzkR+PiNYKuZ0/B/jrfYbFeK55csPKhhEy64vWpvttRRKtozz0vjXsdWS+1r7jTT7Ety/v8cBVmXjtOG30zpyvzv8GjqaDwfR+ofQPHODaIQrUxRvVIqGmlT3w40Afs/52ErbG9xM72Ya/ciAvr8ehrg7R+xTYQ9YRW+z8cs6V5muCMcbNARcChAFUTrNThOtU1tyQvMhccN2fKCMy2jTV/sZadrQodU9XBpHceaPNqZE/KznQP6z0Ed6M0SXFac9MljmQRJsPnD/yFWxzEihTbnru68NSTKGjDLZQ2FYPWnFND9FkCRlmXKQhWX3oFhttEf4+XGICGkcpegmR3F8g3Ung4ap5322pqSIpevTzphv0UvSKVfRF87A8ip3eHhMus7dU44qA19uH9pOgeYCLhW9pQPucOK3oaaMhhWj8rHRIIFn9av1oLRXBXHmzh4dYvbdT0J0J/4k085r5uL8TrwEWe73dFHkkp0FyFrkQqG+0XXkCWN85SDxP3dszpEr/mt8OFtX4PlgZEwxwrcht7+A75e5bSqHbPudm2qx/KejgftfuxGnb27m+rSnemQKN/DVTatiUB+mdPQzRs1y38+5Un3aFCx/MzJJL2qKtj1F7TkO+f0rw/gqJCGiZT02BbrpGco6IH+7eLBoB+6q+TUOxiQ4nyMlJ7rhzaW4l/o9MZ9NBci/+nGrHukxKTQNcw0YBmwcHj7PzWiKnH+UiydTYtyj94mLtcb+bybJ1ilS1LN1vM1f7CveKbKrRl6aKl+Nbv0Lmwphy+R4Stjt+p0HhSEFHiHHZhJhz0epUv/w7IIjLNZPUxg99WTeY3l5kRmAr+tmOfAbZosQssp0M0BEtmeBmG/3WrSdxwO6yaEL8QxgCJf+pLU7pPdPlKbZhXNFvvpKUcxLMjZo85uqY6B9mpZEj8QZcNjodtTzugdzIurraserFdgZAMjwA6ailN36PqCR1o3k10d6L4hz/gluV/H1WiR5ohNDDtylgbe+iVqM+GUJC0lZkkit0Engn3NMNz4B616PzDHOqgiiEV0unufYCE6fzjPqOxW1vp9TECo/81iCSuJqnsULVZvIP7i4Q/pUC3ITk4SVu6zkVD/Mvt5HfFx6zwA/Ajq+sYsQgOM+P0UCvqAIDkVur7GekYAdPhJayZKCXJRVNTI2AxpaYWU6QLSrDg9OeJzU X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 657567e6-0bbd-44fc-cb1b-08da86746670 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6053.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2022 08:32:52.0905 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hnDJjs2VLDUY1ldjBPc/9UL75tDeZ1UkIuzyeUs6bE+vrW82UaEZsoBEqEZF9EoCWa2uyUO5pL+8+2kqQ2myLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4901 Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org From: Jacky Bai When reconfiguring the WDOG Timer of i.MX7ULP, there is a certain probability causes it to reset. The reason is that the CMD32EN of the WDOG Timer of i.MX7ULP is disabled in bootloader. The unlock sequence are two 16-bit writes to the CNT register within 16 bus clocks. Adding mb() is to guarantee that two 16-bit writes are finished within 16 bus clocks. Memory barriers cannot be added between these two 16-bit writes so that writel_relaxed is used. Suggested-by: Ye Li Signed-off-by: Jacky Bai Signed-off-by: Alice Guo Reviewed-by: Ye Li Reviewed-by: Guenter Roeck --- Changes for v2: - add the reason why memory barriers are added for unlock sequence in commit log drivers/watchdog/imx7ulp_wdt.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/watchdog/imx7ulp_wdt.c b/drivers/watchdog/imx7ulp_wdt.c index 014f497ea0dc..b8ac0cb04d2f 100644 --- a/drivers/watchdog/imx7ulp_wdt.c +++ b/drivers/watchdog/imx7ulp_wdt.c @@ -179,9 +179,13 @@ static int imx7ulp_wdt_init(void __iomem *base, unsigned int timeout) int ret; local_irq_disable(); + + mb(); /* unlock the wdog for reconfiguration */ writel_relaxed(UNLOCK_SEQ0, base + WDOG_CNT); writel_relaxed(UNLOCK_SEQ1, base + WDOG_CNT); + mb(); + ret = imx7ulp_wdt_wait(base, WDOG_CS_ULK); if (ret) goto init_out; From patchwork Thu Aug 25 08:32:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Alice Guo \(OSS\)" X-Patchwork-Id: 600249 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33486C04AA5 for ; Thu, 25 Aug 2022 08:33:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234992AbiHYIdH (ORCPT ); Thu, 25 Aug 2022 04:33:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235964AbiHYIdE (ORCPT ); Thu, 25 Aug 2022 04:33:04 -0400 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2069.outbound.protection.outlook.com [40.107.22.69]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C442A61F4; Thu, 25 Aug 2022 01:33:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lTjRWhhtX0gJN5whj72h6fkd/LfYce0MKuJMRqumyqPToBftm4peHnVrvLVEoIvZFID2C9k02pF42OJfm4AEAsU6t4QqcqvOZAlgA5CcnimmuZkP/SDC2TEzjOyomMeSWoKEIXwLP+nrUfinoYHDddMcJLdjqemPSWPapIe+9mN3ww47B1uAGXppXUafO/BN8AWM0mN2kEFqNxG97ppdeCKGPsVPOdFZAfY2PM4WZx3lpczN1sFEu8luYTO8ydf1KU+MfhaC1RHcUtcxK8W+0UnXqPTkRE8gNjLNN+NDeNf/VTvmv/Gp6MyZ7tZnhLb5N0qUfXip6sx3Lqn47kicDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lOvx8PFif0c8G1i/uD7gAfYKTonb/FFBmXB88pWKY5U=; b=iZQO4VXuwKpY1j8mL7gdF9xg3Kde7F2n5jDqylpps4kVkMPz1+X3kqPzYUooTbKQGMIeWZZcVanCD3ADTY3MsSU6xqwrp40I4yQ7Y8WSaDPdqeq4Z9eMQ/fio2mfjEhgFMAI4qF0CHCk8C4pwRvT+G1LxpRgAyG7Oh07EVFVsPlMTGN/mq/Zyb3E5ms5wwkz9H/dNpBYmdQPP3z2PkiSoP7TZQbk/ATAHxaoqzie7vMn2jy8dlgIlW7xgIsTcSmx/CNp79QvG3NKOkRTC4682Ry3qya1Qs22UknskUKkpbXot3kLWqdcZdanRThEulJ4W0/w6FZAt6/OcEvZDFTRpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lOvx8PFif0c8G1i/uD7gAfYKTonb/FFBmXB88pWKY5U=; b=iPomr3L5anT1M7+rsEV8vnlmMFtWcnLaDaT45aNq8y9Sclp8zMb1aDuScpsSodrRpmmTxC9iUddk9hhp3x4f7SwMT07Hz8j32HtF3ugGv57Alc8bDSVKv9P/8/TjxfdlGJ33nnLvcl1FqwYWlKl5qUcOHKbLfVX2PGHuI2+rBvQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) by AM6PR04MB4901.eurprd04.prod.outlook.com (2603:10a6:20b:1::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Thu, 25 Aug 2022 08:32:58 +0000 Received: from AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c]) by AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c%3]) with mapi id 15.20.5566.015; Thu, 25 Aug 2022 08:32:58 +0000 From: "Alice Guo (OSS)" To: m.felsch@pengutronix.de, linux@roeck-us.net, wim@linux-watchdog.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-watchdog@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/7] watchdog: imx7ulp_wdt: Check CMD32EN in wdog init Date: Thu, 25 Aug 2022 16:32:52 +0800 Message-Id: <20220825083256.14565-4-alice.guo@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220825083256.14565-1-alice.guo@oss.nxp.com> References: <20220825083256.14565-1-alice.guo@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0225.apcprd06.prod.outlook.com (2603:1096:4:68::33) To AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 582f7f76-4fae-43b7-67cc-08da86746a0b X-MS-TrafficTypeDiagnostic: AM6PR04MB4901:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YikAmK7gqiz4gl2LCzERPh3sXkNnhZVAQDvMfIlmYEWFtjmnbGZjY46BNuflfl21VimGrj87Cor0c4LBd6S65kT4dx+Mixq3uYPY8dRXJwQK2KKjkFNu69cuXyqnjdjosrYK1gEe12aJvUR+03Ymuv07FGiPlu6bbfRxE56dWteaVR1DJn6mG/CuAkUeDyX7bei0KmMF0T7x+T1vyDMupM9sf3nEDp92cVmXMqSwdFLtPEWwcvn8uBqsDm2biWNvL5Oc328MXvdeOVkYF7Jz27Gf2sREYJbtXknXz66A2+ScDhQ4as9zBtnj2i07uhBxm+OOaxeayL3Sk2aW5A4oHpe65S3QENCDNPHYtQGv3722bGIdhSwS21L6SFkYmP718q+zhs0sfUohAvZq6hsr4Z+wyF1ObLl6dg86EuGvc63/G/pNJDFT3AJCa5G2Owi29BskMbZ3T5QJn1S4UaslKFkPS+oUO1u2rjYiKaILd8ZrGOdHHHjmCvyIGSoPrgGsmfT8R+51pinSyqLMBjSDFWGtS2FzHv1RhHq3dmmUmihqbgsueiGQsiXCNqnv1kZmQs0ttYL1jBzildtcIh2DxpCFY0/1vZpZg0FJrNSX2rniTL0NQCayBIqC9OLceyV2YxcJid8UQwYfVVw2MTXC7Ks8b+xSY4EEE4OO1EgKViNLry6/g9dEAy9vFLmLZD0eQc0A4GXIQpcShoGvN5o9Ck76H4fAq3PAvILp6OCxddT/sbJYh7oFL0scZw0J/+S6WBxvFS1BUsXo4peDpdiDIw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6053.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(376002)(136003)(346002)(39860400002)(396003)(8936002)(5660300002)(7416002)(38100700002)(38350700002)(4326008)(66946007)(66556008)(66476007)(478600001)(8676002)(6486002)(6666004)(41300700001)(316002)(2616005)(186003)(1076003)(26005)(6512007)(83380400001)(2906002)(52116002)(6506007)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AwgOc2pjEFScFFCnebuEY9rNGrHLepouYJ/bqf4MgqVrFvXxJiN3tHtPDwnJA2QCpI3N9PvRPyHQV30MkMFOCNjHQeDhJddeHkjqtMenjLWovJylgAJ0TBKCUkvxqIp7Qt2BUTeNw8a1z9XDQOdW+6l2nFR3zwQsdl4D81OJe98iYPksFaat2IvZXSOUezqN+RbIzFRHn/WL4p0rSmzmq26gKOgGzolkR9JGE8JJWoEawWAtiwfJWDz7R0aZRkh4+IX5loa+ASE+Ifs++lYTzRVElQh38wQeReepP5vYnd3kfXywhjwXkJlyDcehqpL+ItuIDEQJzUFF4VLg9hX/yhoHsZZAHp3ZOk6cNGGrfO3WWKO6heTtur/IU1FOuI7uHKKxod8SkeWyVi61FrC9Row8oGTT5FMNltGFWeb4URYPb12xBpGvmIb0sTNKBriWfqJileXUIKocsL2s8MG1fOURxmhn7h2o/ldKY6zK2xaHebgllHChAkFtpnHNW7U1qOrfmc9gvl2+xKVxul8JNQigEG2bblqILfCLsXsMw/HiGtX4E0loXFG6vECPty1wGBoK371hUUqL8rKjmEV140YOJUqg06dyCTHDgfnnqgkALv0893F1UlzhKfe022+LA0a40sGbx8Wd0RYAotQ0cT18EfZsQzbiyNRlA99NAvztqSiO23+nYuoFb5u0e3UGLblroLoDt064KOzpdjkB/xmolWHJzCPqHCRtKYMVy6LfuK5PYeUFq8NJrGiwS9A3B2B192D9sek8w+B6/L0MTem1PL/8/Mwq/eE3r//w1XrNOuCvbeh0yK+lEqWpbx/uK8N+i8h2ie4xVkfD7+osDtJwXZA7SCvF5OSNegYAyDYhYHGLJMHyibvL4e/KgL/vAnSb1eggfx6d3J/uabCKOfA0Jv/u2c3NCGMkuMUB2kWIXBLy6O68fYqA8SQ9Bo0e2uwpZWysjphxYBPyHmM9BWnhLEwcl1dUFaHPr3elzLExvdmySci0kcMOyagBJAupHPOalfT6EEcbkmfwh3rmn0pYBokaT9W3eg7UM1kl5DCzStJ4d5SgH81bDV7epnNv8aSiQzdD84dPP6pLExCX1UfInnFt2tR/dqiAEScH9aIrX2NEXyUGqQ6/UU0w7xJZsXPZIGO1MI8msMxZN1+V2ON+36YYOwEYLmYeBDoSz3ozShI1LXkMnjR+IL34/zIMO8zvtKy9w+ZqNan4bzrjJZQDUGWIbFjo60AGyRbitL4Lov9Tvg5qIQ2W8DBxczygEbgGXsXgQZehZhzej3pqVRs2i0oBZrZEX3nTAGfP1TEN0HtwQQioVCOqXg9W9qRfIDHMmrijwxf8Ho5s6wbf/H5rqznz9E2JchuYJEk+iwSZ4NpQSTkcty5ZoPy60wDaxPWqoVnyuRsa9IrIM10LFjBAQHVASjJ/ARXD9khhGtBkmHThizTzqbrw61ujPIvIlrOxRXkfrx9FBvaGGCXC3zfoQmXzB4ZP9jT0/83xaPEs4oZ0aXEqV1dNLtd6SCUxLIsvmFlo3yJbqoUO7r9JbBvmTGKwO+Ab3QlA+cVJ0qSG7GP62xX0z+xJf3mUwqdu X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 582f7f76-4fae-43b7-67cc-08da86746a0b X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6053.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2022 08:32:58.2775 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0PIyAkPPnYwmbWkQ76EHG/Ww+kvHFvDxL7JrUE6Z+VfuYZnJ8j9Lhlwz5EYfD/R0jkooauEB/c1rKtV3wwJSwQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4901 Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org From: Ye Li When bootloader has enabled the CMD32EN bit, switch to use 32bits unlock command to unlock the CS register. Using 32bits command will help on avoiding 16 bus cycle window violation for two 16 bits commands. Signed-off-by: Ye Li Signed-off-by: Alice Guo Reviewed-by: Jacky Bai Acked-by: Jason Liu --- Changes for v2: - none drivers/watchdog/imx7ulp_wdt.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/watchdog/imx7ulp_wdt.c b/drivers/watchdog/imx7ulp_wdt.c index b8ac0cb04d2f..a0f6b8cea78f 100644 --- a/drivers/watchdog/imx7ulp_wdt.c +++ b/drivers/watchdog/imx7ulp_wdt.c @@ -180,11 +180,16 @@ static int imx7ulp_wdt_init(void __iomem *base, unsigned int timeout) local_irq_disable(); - mb(); - /* unlock the wdog for reconfiguration */ - writel_relaxed(UNLOCK_SEQ0, base + WDOG_CNT); - writel_relaxed(UNLOCK_SEQ1, base + WDOG_CNT); - mb(); + val = readl(base + WDOG_CS); + if (val & WDOG_CS_CMD32EN) { + writel(UNLOCK, base + WDOG_CNT); + } else { + mb(); + /* unlock the wdog for reconfiguration */ + writel_relaxed(UNLOCK_SEQ0, base + WDOG_CNT); + writel_relaxed(UNLOCK_SEQ1, base + WDOG_CNT); + mb(); + } ret = imx7ulp_wdt_wait(base, WDOG_CS_ULK); if (ret) From patchwork Thu Aug 25 08:32:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Alice Guo \(OSS\)" X-Patchwork-Id: 600848 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C114C04AA5 for ; Thu, 25 Aug 2022 08:33:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237992AbiHYIdZ (ORCPT ); Thu, 25 Aug 2022 04:33:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237676AbiHYIdR (ORCPT ); Thu, 25 Aug 2022 04:33:17 -0400 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50075.outbound.protection.outlook.com [40.107.5.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BCB0BA6ADD; Thu, 25 Aug 2022 01:33:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PWqL2UUFmVUy4YeqygiwNPbOv8D9MZVwLms7fOkYj44wKC5NpC8BVij4GR99pIK4PYWoKgsE4yTOsCFsv4/W3CBR+L/6l44P9Q0QlcDxt1CE8kKqIplwuq8aIgneMOLzpXgN5SoJyuCUP5pBhHu8nGgUAmCo2LeyOnLhgkpxErn8pmiTaWzvc7j1+8sNAWwbQyVPwZStWeAU9QnpjqcOtJsfRcnJN8zSii95xAJMMHiCRfCndZdPyLA/xyrS6icklT+6084ix9v/HPozp4yKWTTxhGM91g6qM44K6kp/j9wK01DmK6ny58Q7g/3K7Gpkj/cWVGFrx+TL7Cjsofq96w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aNViKVwCmN0GscD9sjksbn3UEavjiC29upJaUxT2dZc=; b=LXjfdjMiZpuQXDo+B31DgkImVQXZ52brWM8co2Pjwp5FjmxQJTokEjGmsF1fi1M4uo8fBGyu80A5NKTmuVV7bsj940gz5XySdlp46/iMHuEQQkCwfqukd/gQfrk1MfYthlQXLXB9cGPC3xGEjqbAyjx0ayu0QJGnKk9yftE17aFgVyk7n+Z5WF8Z9XXaKEiLa0M5eacEChhXR40L0H6GiqK12kB8I4WXG9bFTeg0k7kTSUg45TcFfyTNm1O+2P4EV+4fOi71ZZbOMfVu3O2+BngjWK8BhFZnTB0Be6DXdMFcEz3W4Y13gbTm3XXAa9q8Gb8CdTqyv/LqwZ4Upxwc2w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aNViKVwCmN0GscD9sjksbn3UEavjiC29upJaUxT2dZc=; b=JSO8SKrtRDSA92POQD6ABhtKlj6FoW1rn8fCEdYRzsQUSAnfnSwG4vJ+ADV+uG2BeWCMxADgRaBxVadya9IqriO6pTaDi2Ly9ok0bga2EkgdNeQ8xuPheOOC8c9aitcc8A0DFdFA4Axj5K3627jtAWX/i1mI3pT3QUqjnwiyQDQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) by AM6PR04MB4901.eurprd04.prod.outlook.com (2603:10a6:20b:1::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Thu, 25 Aug 2022 08:33:05 +0000 Received: from AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c]) by AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c%3]) with mapi id 15.20.5566.015; Thu, 25 Aug 2022 08:33:05 +0000 From: "Alice Guo (OSS)" To: m.felsch@pengutronix.de, linux@roeck-us.net, wim@linux-watchdog.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-watchdog@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/7] watchdog: imx7ulp_wdt: Fix RCS timeout issue Date: Thu, 25 Aug 2022 16:32:53 +0800 Message-Id: <20220825083256.14565-5-alice.guo@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220825083256.14565-1-alice.guo@oss.nxp.com> References: <20220825083256.14565-1-alice.guo@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0225.apcprd06.prod.outlook.com (2603:1096:4:68::33) To AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fb8f8ef6-98eb-423b-444c-08da86746e8d X-MS-TrafficTypeDiagnostic: AM6PR04MB4901:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: afIdRbdJblhX+p/hKtVOwEprWwtW77o/ULRoh6OlUSvvi1xH5UHsEJ1tOTZlJDc/SXmM92M/7pteC2I8U3Swv/SBsYDRWa9/HtfVE9IbZiRUOwlSxh8YHfcjXYAuc40nu6KK3H7uSw2DBHXhCUunIrZOuR03xUg+Y2aBUwEQkheWn3abUHeCSFkEnzix9ToaRenneWzG+rk0brJ4AsYRC4bNew5WgKVbzRDo81XGWqVbX7p4RAGV20dKsEccVlboT4RG2d7Vq4H/ZsVo/G7mV58FrO2G7/ehjswm9q4WmbMZ/qcUsiZ9sl6XwOlYXLNOniP3/LuMnJnJaNbwBhJdE5LotWNVXtFp7d5BIIFo9RNMYKrvad7mau4esIqekQQcUwVNoRRA85rCzvy5fxIb8Vih3GX9kij/ERcvYs/KCzX3buokj4Vma/s2u5NV+LY3TdlGVDheSzcY0mCJPm8wIiQUsQSaSyB9S/i1eSVBdnrtKzmw0kN8vysQyHdynaz8B0JFYEF+9NWlkTp04nbWegkfmNAzwzfswC47iX/LAXOSJ7h6Y594ZiaMVNAigzc4SZC3QqobdK+QOgqbA8Z+dA3CfNNiOzr8S/yhaVB7i2/VMsIjrI94QmsokqjbH5Ov8fyedMRZSeWAaPj6IZSz5CSb1qiLfzF78hIhUijHvrUy9CTCJLcJ+kOM2WTGSeus6fXjk6WJyOXGG5VmpJYi3NKax6kZfoJlF6/ZMYDLDDMUVgOxwFkUExH5SqYa3OOEOSwM59P5gzQ6231bnToRKg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6053.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(376002)(136003)(346002)(39860400002)(396003)(8936002)(5660300002)(7416002)(38100700002)(38350700002)(4326008)(66946007)(66556008)(66476007)(478600001)(8676002)(6486002)(6666004)(41300700001)(316002)(2616005)(186003)(1076003)(26005)(6512007)(83380400001)(2906002)(52116002)(6506007)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YChAzppbXlAaUiqb5caKW7RPjjWA6Z0kPr+MqbpdnFw2IwsIqe8kQNSNvuRCpafGaCY5jP5p7MHVWsRe6XJKxLFDxKVq43Dn803FHFTpjvFEvABMTR7C/rdtRaZ9b465ZuuTU4U/KOvIb+EEbyygJ3K5x26L6kUPoLxLhznZ1CK9wbcAdHYmwrkIzNQwETPgumkMRKut+/M9e+atVsrt6h9NZlShn7qX3v7WG8FNZ0La/hnzVrSlAE23TwpePBdqsDGB6uVRn2YyC3ZWxLxNgkmjqhTzYCr9jwH7TwuVJyA2R6K2ly2hEh9rGGX/qESvjkWGfxUcejoqN3PZYMP1p4TzFSA5WR7/kDZVHvKmh76Sh3T61EbjRvJp1+zmEnvxRrBTUfaT1Dkj2mje7CFCk7hnf6PJPVbYafaRXvUYs5js2JSXTzIcMpKrjWLHIxD3w3TKyJ+VNDGW0N7/gOvgq8HF2gLbapHQEh9pnfbC41IQjwV/v9c7YXA1JEm/sCJaXZU9adP6f2YyNVjMnvPNd17jASvoZThJT1tlOrVZlAZeYSEZqIksTMFt2DiqyA7N1JlmYTrYPpqqxTVkZrpK6pf16sVVK3kj0aQqq0dYoEqeLAOrU2y30J1iGrDwmMNTyExkHfAzGDRXxK0nPoHZnpF4H5TVlYH0LbKEYHXlobi2ZABq8I7HUZHxTXoN9CmN4E1hy/uyTIge38t5H7nkYcqfxgKAXLAFuCabZ2QBk7TLNayAKcvvGNw5Yz1NyMOeBYH4hgNGldx4d9HHWCpp6dxX1aqdMzXNGafqksRa9NHHDNobLguMuYOhDST4CyDMyRD75jpq54YNDMP+82UH2ms+OnNoHlwVznY4c14kHbzLb9W3n+tvUaWKYVE1ucSSqXry9TXFGdB9O4JWkSh1uLuVsdqnyPrEE7aM4qV63UKpYoUb4wywENk+fuSYwEQZmTYfhVOB4N3RZ5f75b2sFKlPhpxHVrZmdeyxjWw0mcHiW1Wy24prhU8llcKLnAGCcHCRwtoT1jqWVxzR5SnfpthEEzrWl+JOiZox21hK6V/Onvc/wzcU4WwhpUF6K+qrUAuRWo7YYl3o544PdXFTl/YTVIjoKtFkM5m3UiwDKr9Cpn2m4/KcEM84K5WK3z8+9OebYoUYwPpBvm4BFUPYRS5bTpXhfORx45TZ/a+4iXvGbo+JqACWhcjXjm2Fyi6qgp9dT6iP8vtITo6xNWbpiAimYOFw2S7dcXh2XOKSvvGLfFSGllpVzjWoHSQPBcusqqhJB7CBzgox8gQCigdAlI1rxwZ/iUUruQvuxcoM5orhE9xbfd9FhGk3XpyFOGueTlE+2pXy5sy9OIORMGNLNl8LGdaSEUznc02bMclYIeOQ6sAKsOtdUzHfvs95C0I+Bp4xfiNYJMxNvltvDhFjly7spJm2znmfH2Frjr54ewPsTSzdeCMWV+ABSD4l9LMKA2wFzr/RZyUA/s759N3638HjjPeeOxZni/vth4so4cV2qZeT8tSDzDXn/P+sET5920HNV4sMdTd71lgEpqir7dFKQ1CflMLtnvKLjXCBJzx2Cw1n+Sp0MdDichYt1qFs X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fb8f8ef6-98eb-423b-444c-08da86746e8d X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6053.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2022 08:33:05.7301 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: k8X+4xV/p5H69zoNh213N56H21o8oXl6VejZI/52TpwuU/yiFczDf5/gzENA1+5ukKu9sFchhAhZNtA5fqD5Yg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4901 Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org From: Ye Li According to measure on i.MX7ULP and i.MX8ULP, the RCS done needs about 3400us and 6700us respectively. So current 20us timeout is not enough. When reconfiguring is on-going, unlock and configure CS will lead to unknown result. Increase the wait timeout value to 10ms and check the return value of RCS wait to fix the issue Signed-off-by: Ye Li Signed-off-by: Alice Guo Reviewed-by: Jacky Bai Acked-by: Jason Liu Reviewed-by: Guenter Roeck --- Changes for v2: - none drivers/watchdog/imx7ulp_wdt.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/imx7ulp_wdt.c b/drivers/watchdog/imx7ulp_wdt.c index a0f6b8cea78f..12715c248688 100644 --- a/drivers/watchdog/imx7ulp_wdt.c +++ b/drivers/watchdog/imx7ulp_wdt.c @@ -39,7 +39,7 @@ #define DEFAULT_TIMEOUT 60 #define MAX_TIMEOUT 128 #define WDOG_CLOCK_RATE 1000 -#define WDOG_WAIT_TIMEOUT 20 +#define WDOG_WAIT_TIMEOUT 10000 static bool nowayout = WATCHDOG_NOWAYOUT; module_param(nowayout, bool, 0000); @@ -80,7 +80,7 @@ static int imx7ulp_wdt_enable(struct watchdog_device *wdog, bool enable) writel(val | WDOG_CS_EN, wdt->base + WDOG_CS); else writel(val & ~WDOG_CS_EN, wdt->base + WDOG_CS); - imx7ulp_wdt_wait(wdt->base, WDOG_CS_RCS); + ret = imx7ulp_wdt_wait(wdt->base, WDOG_CS_RCS); enable_out: local_irq_enable(); @@ -127,7 +127,9 @@ static int imx7ulp_wdt_set_timeout(struct watchdog_device *wdog, if (ret) goto timeout_out; writel(val, wdt->base + WDOG_TOVAL); - imx7ulp_wdt_wait(wdt->base, WDOG_CS_RCS); + ret = imx7ulp_wdt_wait(wdt->base, WDOG_CS_RCS); + if (ret) + goto timeout_out; wdog->timeout = timeout; From patchwork Thu Aug 25 08:32:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Alice Guo \(OSS\)" X-Patchwork-Id: 600248 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8DD6C04AA5 for ; Thu, 25 Aug 2022 08:33:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237582AbiHYId2 (ORCPT ); Thu, 25 Aug 2022 04:33:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41658 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237536AbiHYIdV (ORCPT ); Thu, 25 Aug 2022 04:33:21 -0400 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50075.outbound.protection.outlook.com [40.107.5.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 73225A6C31; Thu, 25 Aug 2022 01:33:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MwzXQifn1P/UVU4S2uN2dYIVDF+XuG36M5WZTKBjsJz6n4NuDu0CMf7xSk7nNJ4l267YFPxfSL5J99iiGQz40K57Js7yhLPSyUYQxkHPd+IyyNSi6rk7HfSU2oFEDsvEsqO2SwxyYM5oZI6BfVrFQ+Aj9O/gISBucjHwQv4wBwlzrHMdzOxD6Qolz7sAISofG0RYEwMU8gZ/BlFW0biHVBq3Zb/dQBVUm+KB2KgEUnwvsYUZhSyPqx8WV2+kAZ/zzHwFursjjngyF1JJ8Vq2l1hfWYpGEdswabuOn8Me6aQSi8k/Io6Pg6OR/CgS3lmjg45yURdYWVIwlUg1j8AXnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=n0uOd5QLwvAv+7rlEDID8F33L0kD21kSZdZ77C3Otb0=; b=SZpZPNe9Nq8Ocp4Qn4WoS7QSYKqU2OPGHlYUaRaDVk6ci02EOMkztpgM1F3fffCEHaLvNxDWwqKibKC76QTEF3ca5N95H6zI4co6qF+aGoCmOoBZ8NlBTusJvx/UHaRnrHv09T8VUJGgpjheAYeMuhzzW98CPIkrkyMjBcdqincYumA8g9e6Rt9FT1c/VMQgCc+fXNJ53zOHAcYeAajteIz+ZSRx5OpsSHAZRpzcSXjeDs3PUzxCUXEsXx3LWOCJNNJBbkMzHgNsnbUgl6VrWadqig/xMjwDF8TA3DZok+U/DD5wFQ5SlM4lMIItQiPk/v+CWvGda+dsBAeh8UEw1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=n0uOd5QLwvAv+7rlEDID8F33L0kD21kSZdZ77C3Otb0=; b=aqtAn1ynH0jCo4QX6qkXSYZB5htD9Gnmm3FlGu87E7z9Oy4E9z3cw3DsKQAIwcvk35zLPWfMSZPPD5bPTZG55fMpgEU5IUc+K3qOZzC351k6ppoGUkymDWqGwzOCKagSNZ6gDOnKgkHOzLkskIk4QFv+TCJJLAfxSDs447EYJ3c= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) by AM6PR04MB4901.eurprd04.prod.outlook.com (2603:10a6:20b:1::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Thu, 25 Aug 2022 08:33:10 +0000 Received: from AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c]) by AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c%3]) with mapi id 15.20.5566.015; Thu, 25 Aug 2022 08:33:10 +0000 From: "Alice Guo (OSS)" To: m.felsch@pengutronix.de, linux@roeck-us.net, wim@linux-watchdog.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-watchdog@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/7] watchdog: imx7ulp_wdt: Handle wdog reconfigure failure Date: Thu, 25 Aug 2022 16:32:54 +0800 Message-Id: <20220825083256.14565-6-alice.guo@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220825083256.14565-1-alice.guo@oss.nxp.com> References: <20220825083256.14565-1-alice.guo@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0225.apcprd06.prod.outlook.com (2603:1096:4:68::33) To AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c7b2431a-70e3-4d1f-018d-08da86747162 X-MS-TrafficTypeDiagnostic: AM6PR04MB4901:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SqSQaxrz3pv8PDWliHQp9oCCm9qfdO7hA8aB1CYhy8xKQOsDffa0df/KVERW6g8u1meyw4eRZhCpJgzkIDH2n7rYPl12qa1R91KYMVWlqJSyN1eGVvm2TyTbocY6WNsbQUECp1L5zUw81t2s9PALzq9BW8DRvEdBCphMjYg20pU5ffk7aB7sNaL4hjLf7Gkga8j+g47Xist18jNkv1kAK4q4VG5iUzXbR4Un8/s53p2H2yEmkwyF5vE+Lxarpl8PKaMTtA5himv9hCMW5YCg4MDGhpqExiZYpHKv3OZDM1adw6SHu1nv0dxGzvAfhyD0YkbBOHSYjnZbJRVfXBhkeM/Z3oC2TLcuxp+4cV/uxlyW6a7hbSQekuW2uJx/0MiVMMazFpFUdtRg+U4ra5sRzH6DGsNokxoCRTgWvjTrC35lNfnqWDgt76b7BOR5ztCjRfQHIGslbaISo85TvIwZD+Um2yXszm0MgY2NK4h9p4r4r2MdtXd295njsJSSVs+qhsINe56xN7/9JdDSLuwnBsHzCaVLWE3u4LaN2G3ZZ03aMrBIftHQ0+1GoAq8LvMvZ/58BKwwQbUHHDKwp1fZ1tKtX8EMck0YeMVUuO0uyClM3+AmKX7ArR/h4PyTrLDsm1kaxd1D4B1VSPgDB4SMl7homwTmaR/yTC1HKVCmFqYpI4poCvkvkCds3l4vAZGAOZ3I3IoPqjQUN5xDXYvPwWNWJbygpyDn8SVoANmTE+axwM2yk56Hj6u+koaJdFz6k+VkFkk9q2trWZLVhxe/ZA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6053.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(376002)(136003)(346002)(39860400002)(396003)(8936002)(5660300002)(7416002)(38100700002)(38350700002)(4326008)(66946007)(66556008)(66476007)(478600001)(8676002)(6486002)(6666004)(41300700001)(316002)(2616005)(186003)(1076003)(26005)(6512007)(83380400001)(2906002)(52116002)(6506007)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: C00TmKNhPNNXp3KHmfT8WKCcXQcQ3JiJQBzpwGdx70lLHurB9n1PMs12tUph0K5H/mLu8ozcmqsYLO/q7V83YoIvTLhWiPTQFu62GHzHnGcc+ll+wOffUKeWsGUdsNSC4PWC82a3xn5puBTNcO2l2fI7gojwliW7jplTCTvA38W7xPHSGUA8zKGnLi1DrjfzMl3UCAhvUYc3QCzG4fTnnbGXxnTXg92ejrWGdhyrwEr4vL18r5GvAlYbGYhGO6uFiXTYd6LqbB49AtXH1EjQRI8dysDQOeh9dKhzLIOrCmsiryFBkFyW2OUwPQc7DF9BHINekkQf2g9kfuuKcUlIGalXvofczC+1Erm32DnOp4HPaE/8lFV8GL64VjEV2Q912ZN5IrqiTtkduOjA8PUd8SibJdEOSUS62dzKjvB8KC10HQwV40V5HF/1zC2aNTacsCyOM6wQuXyxpBKtHtO7Aq2ArWRZ7WrIHfmpkQzg0saSvsTmSndFpsr8p0vQestjXErofY9kz1ndohqwb7aDfsi4Rh5LeQIKbT1qZUSZU3m0caBeotHHGe7BdcmfCAa+5kmc52gzax3ca52A7TBDfdKN2g3SIlBhH/qbCoiVqXy536Is7bKIwR5pXWhtNKfJzP8//1r+NlVeVMFClNyDOo2gob/wdY/SmEc2wio4wvAL02MIE7Ga4ynIsvctOO9acuFzBUm6dG471frS5Aj4csWfRB/VYKI2V4t7BqCQlOZTGvV/U+Dc3ODRGiLCbGvOqQHdSnpoYMAt4zUrrHx8zFjZLYSlHFSa15JS2nPUEJ5b3xyyKVDgu7llFd7tcc8NAZuT4s9qa0YmuJ/3iJL4G61l4GwY9jW/lmAYdCgDKUx3/HgnzbqRgjS/7O1FUmNHUILoPhMQqjOVDEjak1ef39DhRmi05ExKQbCfNL+Yw2YFU8ylhfo+2+KXL4wNgdLXHiuhTFHsFPLPeAyQ+NW7HIPdue7+u+15P3wqWzW68LnunjXCING3caawtNtLlLHGa/xsFcLtjOqiPJMn8F7CnMXbvZEQqjtXKiuG14De3fFKjuZ8lGXv8esy1KjSez3sjIfnhqeSMQGjYGdjWvulOjEB0wpWpgPR+c/48b96RrprDe0hgXij0oMtLckCLN6ytxvwMJUyO/s79RkBkt/4ZOX+Y7QnXEIrZw/A5k1SOx18ikxvjJQIdgVNUwkLxKMgmvgFmKmCIDd8MLoKK/LlEfCc45H4WwTrtgGl5wKu5tiMj9nBLLGgobq3clKUo0voDEHDoB5EfhlBs33I3cjnxdLInMGdBa4ff+W6dm1vB2IpbrCa6lkGrV9zzcPm/quRonj7AurnecLikPZXBx6IPwuPsmZXli6z/l9wj+GURPvPtmpc6x29YJyDWYlcScoFuJoEkbXVIRTvsjd1DA0eFMAkuMKDlDtgMGPryFOA7agjLwyi0qLTEE0xcsJ++m8dDlrIa9sw39g6Mbhoj+Etyu7Pc/DHaw/qbe1iaXGMT+Uo2ogTHSqTsTsFzMAjJ4lJttB4Et4MNI/PLGabySLfg9J5NpLCKa1/NipnAvqYSvlxHmu226qYf4rvn0wxopMM X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c7b2431a-70e3-4d1f-018d-08da86747162 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6053.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2022 08:33:10.5735 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qSjiKSfxbAkr8dKyLQa5v8S4wd0Zph99VkCWXQATncI9+cMUkAjFkIm05uhuheBiFH5CULSMfeDlZHjfg9X2tw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4901 Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org From: Ye Li Current driver may meet reconfigure failure caused by below reasons: 1. The wdog on iMX7ULP has different behavior after RCS valid. It needs to wait more than 2.5 wdog clock for clock sync before next reconfiguration, while imx8ulp wdog does not need such delay. 2. After unlock, there is 128 bus clock window opened for reconfiguration, but on iMX8ULP, the HW can't guarantee the latency. So it is possible the window is closed before the writing arrives to wdog. 3. If the PRES is enabled, the RCS valid time becomes x256 to the time of PRES disabled. It is about 1715ms on iMX8ULP. So We have to increase the RCS timeout and can't wait it in IRQ disabled. The patch updates the driver to handle failures 1. Using different wait for unlock and RCS. Unlock valid time is very short and only related to bus clock. It must be in IRQ disabled to avoid being interrupted in 128 clock window. But for RCS time, it is longer and ok for IRQ enabled. 2. Add retry for any reconfigure failure with default 5 times. 3. Add "fsl,imx8ulp-wdt" compatile string for iMX8ULP and afterwards platform which don't need more 2.5 wdog clock after RCS valid. For imx7ulp, add post delay of 2.5 clock after RCS valid. Signed-off-by: Ye Li Signed-off-by: Alice Guo Reviewed-by: Jacky Bai --- Changes for v2: - the wait timeout value of the RCS is 10ms, so use the sleep_us of readl_poll_timeout in imx7ulp_wdt_wait_rcs to avoid a 10ms hot wait drivers/watchdog/imx7ulp_wdt.c | 163 ++++++++++++++++++++++++++------- 1 file changed, 129 insertions(+), 34 deletions(-) diff --git a/drivers/watchdog/imx7ulp_wdt.c b/drivers/watchdog/imx7ulp_wdt.c index 12715c248688..0cafa86fff7f 100644 --- a/drivers/watchdog/imx7ulp_wdt.c +++ b/drivers/watchdog/imx7ulp_wdt.c @@ -14,7 +14,9 @@ #include #define WDOG_CS 0x0 +#define WDOG_CS_FLG BIT(14) #define WDOG_CS_CMD32EN BIT(13) +#define WDOG_CS_PRES BIT(12) #define WDOG_CS_ULK BIT(11) #define WDOG_CS_RCS BIT(10) #define LPO_CLK 0x1 @@ -39,7 +41,11 @@ #define DEFAULT_TIMEOUT 60 #define MAX_TIMEOUT 128 #define WDOG_CLOCK_RATE 1000 -#define WDOG_WAIT_TIMEOUT 10000 +#define WDOG_ULK_WAIT_TIMEOUT 1000 +#define WDOG_RCS_WAIT_TIMEOUT 10000 +#define WDOG_RCS_POST_WAIT 3000 + +#define RETRY_MAX 5 static bool nowayout = WATCHDOG_NOWAYOUT; module_param(nowayout, bool, 0000); @@ -50,40 +56,82 @@ struct imx7ulp_wdt_device { struct watchdog_device wdd; void __iomem *base; struct clk *clk; + bool post_rcs_wait; }; -static int imx7ulp_wdt_wait(void __iomem *base, u32 mask) +static int imx7ulp_wdt_wait_ulk(void __iomem *base) { u32 val = readl(base + WDOG_CS); - if (!(val & mask) && readl_poll_timeout_atomic(base + WDOG_CS, val, - val & mask, 0, - WDOG_WAIT_TIMEOUT)) + if (!(val & WDOG_CS_ULK) && + readl_poll_timeout_atomic(base + WDOG_CS, val, + val & WDOG_CS_ULK, 0, + WDOG_ULK_WAIT_TIMEOUT)) return -ETIMEDOUT; return 0; } -static int imx7ulp_wdt_enable(struct watchdog_device *wdog, bool enable) +static int imx7ulp_wdt_wait_rcs(struct imx7ulp_wdt_device *wdt) { - struct imx7ulp_wdt_device *wdt = watchdog_get_drvdata(wdog); + int ret = 0; + u32 val = readl(wdt->base + WDOG_CS); + u64 timeout = (val & WDOG_CS_PRES) ? + WDOG_RCS_WAIT_TIMEOUT * 256 : WDOG_RCS_WAIT_TIMEOUT; + unsigned long wait_min = (val & WDOG_CS_PRES) ? + WDOG_RCS_POST_WAIT * 256 : WDOG_RCS_POST_WAIT; + if (!(val & WDOG_CS_RCS) && + readl_poll_timeout(wdt->base + WDOG_CS, val, val & WDOG_CS_RCS, 100, + timeout)) + ret = -ETIMEDOUT; + + /* Wait 2.5 clocks after RCS done */ + if (wdt->post_rcs_wait) + usleep_range(wait_min, wait_min + 2000); + + return ret; +} + +static int _imx7ulp_wdt_enable(struct imx7ulp_wdt_device *wdt, bool enable) +{ u32 val = readl(wdt->base + WDOG_CS); int ret; local_irq_disable(); writel(UNLOCK, wdt->base + WDOG_CNT); - ret = imx7ulp_wdt_wait(wdt->base, WDOG_CS_ULK); + ret = imx7ulp_wdt_wait_ulk(wdt->base); if (ret) goto enable_out; if (enable) writel(val | WDOG_CS_EN, wdt->base + WDOG_CS); else writel(val & ~WDOG_CS_EN, wdt->base + WDOG_CS); - ret = imx7ulp_wdt_wait(wdt->base, WDOG_CS_RCS); + + local_irq_enable(); + ret = imx7ulp_wdt_wait_rcs(wdt); + + return ret; enable_out: local_irq_enable(); + return ret; +} + +static int imx7ulp_wdt_enable(struct watchdog_device *wdog, bool enable) +{ + struct imx7ulp_wdt_device *wdt = watchdog_get_drvdata(wdog); + int ret; + u32 val; + u32 loop = RETRY_MAX; + + do { + ret = _imx7ulp_wdt_enable(wdt, enable); + val = readl(wdt->base + WDOG_CS); + } while (--loop > 0 && ((!!(val & WDOG_CS_EN)) != enable || ret)); + + if (loop == 0) + return -EBUSY; return ret; } @@ -114,28 +162,44 @@ static int imx7ulp_wdt_stop(struct watchdog_device *wdog) return imx7ulp_wdt_enable(wdog, false); } -static int imx7ulp_wdt_set_timeout(struct watchdog_device *wdog, - unsigned int timeout) +static int _imx7ulp_wdt_set_timeout(struct imx7ulp_wdt_device *wdt, + unsigned int toval) { - struct imx7ulp_wdt_device *wdt = watchdog_get_drvdata(wdog); - u32 val = WDOG_CLOCK_RATE * timeout; int ret; local_irq_disable(); writel(UNLOCK, wdt->base + WDOG_CNT); - ret = imx7ulp_wdt_wait(wdt->base, WDOG_CS_ULK); + ret = imx7ulp_wdt_wait_ulk(wdt->base); if (ret) goto timeout_out; - writel(val, wdt->base + WDOG_TOVAL); - ret = imx7ulp_wdt_wait(wdt->base, WDOG_CS_RCS); - if (ret) - goto timeout_out; - - wdog->timeout = timeout; + writel(toval, wdt->base + WDOG_TOVAL); + local_irq_enable(); + ret = imx7ulp_wdt_wait_rcs(wdt); + return ret; timeout_out: local_irq_enable(); + return ret; +} +static int imx7ulp_wdt_set_timeout(struct watchdog_device *wdog, + unsigned int timeout) +{ + struct imx7ulp_wdt_device *wdt = watchdog_get_drvdata(wdog); + u32 toval = WDOG_CLOCK_RATE * timeout; + u32 val; + int ret; + u32 loop = RETRY_MAX; + + do { + ret = _imx7ulp_wdt_set_timeout(wdt, toval); + val = readl(wdt->base + WDOG_TOVAL); + } while (--loop > 0 && (val != toval || ret)); + + if (loop == 0) + return -EBUSY; + + wdog->timeout = timeout; return ret; } @@ -175,38 +239,59 @@ static const struct watchdog_info imx7ulp_wdt_info = { WDIOF_MAGICCLOSE, }; -static int imx7ulp_wdt_init(void __iomem *base, unsigned int timeout) +static int _imx7ulp_wdt_init(struct imx7ulp_wdt_device *wdt, unsigned int timeout, unsigned int cs) { u32 val; int ret; local_irq_disable(); - val = readl(base + WDOG_CS); + val = readl(wdt->base + WDOG_CS); if (val & WDOG_CS_CMD32EN) { - writel(UNLOCK, base + WDOG_CNT); + writel(UNLOCK, wdt->base + WDOG_CNT); } else { mb(); /* unlock the wdog for reconfiguration */ - writel_relaxed(UNLOCK_SEQ0, base + WDOG_CNT); - writel_relaxed(UNLOCK_SEQ1, base + WDOG_CNT); + writel_relaxed(UNLOCK_SEQ0, wdt->base + WDOG_CNT); + writel_relaxed(UNLOCK_SEQ1, wdt->base + WDOG_CNT); mb(); } - ret = imx7ulp_wdt_wait(base, WDOG_CS_ULK); + ret = imx7ulp_wdt_wait_ulk(wdt->base); if (ret) goto init_out; /* set an initial timeout value in TOVAL */ - writel(timeout, base + WDOG_TOVAL); - /* enable 32bit command sequence and reconfigure */ - val = WDOG_CS_CMD32EN | WDOG_CS_CLK | WDOG_CS_UPDATE | - WDOG_CS_WAIT | WDOG_CS_STOP; - writel(val, base + WDOG_CS); - imx7ulp_wdt_wait(base, WDOG_CS_RCS); + writel(timeout, wdt->base + WDOG_TOVAL); + writel(cs, wdt->base + WDOG_CS); + local_irq_enable(); + ret = imx7ulp_wdt_wait_rcs(wdt); + + return ret; init_out: local_irq_enable(); + return ret; +} + +static int imx7ulp_wdt_init(struct imx7ulp_wdt_device *wdt, unsigned int timeout) +{ + /* enable 32bit command sequence and reconfigure */ + u32 val = WDOG_CS_CMD32EN | WDOG_CS_CLK | WDOG_CS_UPDATE | + WDOG_CS_WAIT | WDOG_CS_STOP; + u32 cs, toval; + int ret; + u32 loop = RETRY_MAX; + + do { + ret = _imx7ulp_wdt_init(wdt, timeout, val); + toval = readl(wdt->base + WDOG_TOVAL); + cs = readl(wdt->base + WDOG_CS); + cs &= ~(WDOG_CS_FLG | WDOG_CS_ULK | WDOG_CS_RCS); + } while (--loop > 0 && (cs != val || toval != timeout || ret)); + + if (loop == 0) + return -EBUSY; return ret; } @@ -239,6 +324,15 @@ static int imx7ulp_wdt_probe(struct platform_device *pdev) return PTR_ERR(imx7ulp_wdt->clk); } + imx7ulp_wdt->post_rcs_wait = true; + if (of_device_is_compatible(dev->of_node, + "fsl,imx8ulp-wdt")) { + dev_info(dev, "imx8ulp wdt probe\n"); + imx7ulp_wdt->post_rcs_wait = false; + } else { + dev_info(dev, "imx7ulp wdt probe\n"); + } + ret = clk_prepare_enable(imx7ulp_wdt->clk); if (ret) return ret; @@ -259,7 +353,7 @@ static int imx7ulp_wdt_probe(struct platform_device *pdev) watchdog_stop_on_reboot(wdog); watchdog_stop_on_unregister(wdog); watchdog_set_drvdata(wdog, imx7ulp_wdt); - ret = imx7ulp_wdt_init(imx7ulp_wdt->base, wdog->timeout * WDOG_CLOCK_RATE); + ret = imx7ulp_wdt_init(imx7ulp_wdt, wdog->timeout * WDOG_CLOCK_RATE); if (ret) return ret; @@ -289,7 +383,7 @@ static int __maybe_unused imx7ulp_wdt_resume_noirq(struct device *dev) return ret; if (imx7ulp_wdt_is_enabled(imx7ulp_wdt->base)) - imx7ulp_wdt_init(imx7ulp_wdt->base, timeout); + imx7ulp_wdt_init(imx7ulp_wdt, timeout); if (watchdog_active(&imx7ulp_wdt->wdd)) imx7ulp_wdt_start(&imx7ulp_wdt->wdd); @@ -303,6 +397,7 @@ static const struct dev_pm_ops imx7ulp_wdt_pm_ops = { }; static const struct of_device_id imx7ulp_wdt_dt_ids[] = { + { .compatible = "fsl,imx8ulp-wdt", }, { .compatible = "fsl,imx7ulp-wdt", }, { /* sentinel */ } }; From patchwork Thu Aug 25 08:32:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Alice Guo \(OSS\)" X-Patchwork-Id: 600847 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B42B5C04AA5 for ; Thu, 25 Aug 2022 08:33:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238348AbiHYIdc (ORCPT ); Thu, 25 Aug 2022 04:33:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41404 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237893AbiHYIdY (ORCPT ); Thu, 25 Aug 2022 04:33:24 -0400 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50075.outbound.protection.outlook.com [40.107.5.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 17B8AA74CD; Thu, 25 Aug 2022 01:33:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iAzLpVlI/R6VKXWfVy6vbDm9niqzY1MC7bA+EoVm89aaO9Ua5fK9cZuDmSNUrJoSZVEtIAqSIu2JzqGjh00sK4ZOgm+QFcXJUw08GvZ9BxStDpuOWyV+wJ7zwsKoX7A2XIR0uQCiX0L57UD/vGn8WbxXVV7jcsQGD+DlP6/S4YLl5uB1/v5Vc4zYvc2Am6DuHfggjxf4MKg8uQ3XKra1YeIcyYbgKHWEncDTTzpOYFJZEOcTR5SlLNq2g/6fVJeqBEyfIV4Ik5sVzmSG1ZRieEbQ+U+70Sc+dKvdSc6SqZxfH5V8e3YoPw8K3hlCEnZFEibVp6nVjVj7BW7Z6pZ1sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Eq18NP4/7hBByccpJqoOVx1AgOzC4V0xM7AvIlkxYnc=; b=RHmIngtYoiCLclMZ5igoUfy7RkJzzs6Aspqz8CF4nAB39pdBA53e0ms3FPu004RTHzMuXoMtFCfb2VmNoKNtZIpg1pZkuYZiSPNHiR6029VKPd9CEK4+5g+FL918vqH7bFz/D773D2Kh2C52R/PHBkXcl25sWaeFIdgHQtoTOU+NnrzTRQb3p9FNRfIhkJeV2Vxg3ifn9+CcQP/MZXfK+7IjUigM2CkIT79xJz2OdU5PZrnC697GfkEJOVorBhgHqqtZSOGG2UAhxE5+PSalYYLjWVgODUEZ+zlLQIa8GxzlQPIT477HRyDD/zcdpMLMeRGOCSoBiPbGLYWvgoVO5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Eq18NP4/7hBByccpJqoOVx1AgOzC4V0xM7AvIlkxYnc=; b=cDSE53Qgwh77cxKtAS6VhqW0YtUfQIpnib9YJIV1uSMH3pbojnMS0YYTFJIl/WquUjD559+bIWRovSNzr/BwDbh5KEPkhOBhb/WFTpSEi3mFMeFtXoQrzwv6ayzE8+a0OwXISNWIbFtvPDMISrUxBli6FNu/LgM7dX+fpdw+p00= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) by AM6PR04MB4901.eurprd04.prod.outlook.com (2603:10a6:20b:1::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Thu, 25 Aug 2022 08:33:15 +0000 Received: from AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c]) by AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c%3]) with mapi id 15.20.5566.015; Thu, 25 Aug 2022 08:33:14 +0000 From: "Alice Guo (OSS)" To: m.felsch@pengutronix.de, linux@roeck-us.net, wim@linux-watchdog.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-watchdog@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 6/7] watchdog: imx7ulp_wdt: init wdog when it was active Date: Thu, 25 Aug 2022 16:32:55 +0800 Message-Id: <20220825083256.14565-7-alice.guo@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220825083256.14565-1-alice.guo@oss.nxp.com> References: <20220825083256.14565-1-alice.guo@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0225.apcprd06.prod.outlook.com (2603:1096:4:68::33) To AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 37a89f51-31d6-40b9-4c10-08da86747402 X-MS-TrafficTypeDiagnostic: AM6PR04MB4901:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: X2RGlD7iaU+EROplLRqNw92nFDyHAcvl6sQHsgSUrDzWtUc09D0WLGchjs2ZzCAjJIX+ok1CHihIOLXaZioZ+TIS3cWG2Sfl2b7zRCY0dKI7DIPTml/NMzT080Pdw8E4s38ZUkHcPOhEX2dWcHqRGEWEOtLr51uu+VxeIFN07Cx5QVuN0w7MT97/5Up44MGSO9j17pNooruTmKPkCwQ/Giw5u5V6mW39oMqBoSUjNveVVUCQeLfYhgKYJX5a+p0TsF/U82TI6dID0JUHNAixHlvG/cS3VJ6MZqRjo3AP1Y+n6SlN5e0Mhwbut8+zBWS+IUcpUnP7F9yNraGSXVkb7vMJ5BbjCG6YAJ3Rc77Jae7e/uUSDXvQTuv9RZzb4p2Ab1jUxutIkRjOPMl5FZ9Tnbn2hlGThO9n+HXEWxRWVFcprL5m8DLwXJxJNQ8Q0oOJq503hnwIfFVJo9c92xtHHV6IVFJh1oyOjTqHVCevED1CBeMy3XQ9WQeUTp6FEm8MjGFB1XjCrAXpzVUVzgl8YTtiQjORUYI5msaLG4geIxhHM3TiKNxv7gWWoURnmfiqh6mvRPeQzzqiUJbnwh5KmbjkvuwHtcNY+Ni2Q/kCI6FNWqxQ07B1jtjcj+AIdq1RlPFrwnGSRf2HW2qIa69O8plbR7wmln6/+CFhsSbojqMSmq7qfAod2u0ZudHhxIe2M8zItpvcWNfJr8GkMr/zHzqCx/xYggfM+MBL1U18+mXRC4JjF256xJuPppAjhdh+7f9+6JgGvcOd/FkPbLbW5A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6053.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(376002)(136003)(346002)(39860400002)(396003)(8936002)(5660300002)(7416002)(38100700002)(38350700002)(4326008)(66946007)(66556008)(66476007)(478600001)(8676002)(6486002)(6666004)(41300700001)(316002)(2616005)(186003)(1076003)(26005)(6512007)(83380400001)(2906002)(52116002)(6506007)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wX1keeo6Hth+l79aJ2M4iKpFoeTI9j/b5QG/D0HL/9hBn7ye6meoIsECmCI/P0t4qXavyjuCnNxD+u2Z3bDIRPjsiogBWS8YiSajtHpaMRHkN34Uhw3AAcvp+icXQFh1yl2UgXZZvKMsETufMT6irzT7MC68bo+kZ5fdgyBtPhFQXncLZ6P32SJBVx92hS7F5KvzJO6npNbBIV5QCzdwNY3k/UuWW2AAMUq7vYADoiTy8fe3aXw7/4OeoCNCtR6qzDh1zTXWXLzXbH9NCtpPepKA7+1WvHnxqNYDt2L4Up5B4AH+I6uIVwoiBDYqeVh/iGJ1Cbg/bmtUaoeGFVRrBlVPwZP7v8p3mSqmkvJjFpGLBhKzM83cYtkkQ3jpbdvqMTP7X9OgwN7bhVNZw5JjLGzT3yhVVoX9LH0Zd4+I1W29kNIISvzVCg/IfYGnxrP5xq9C3wP8K7kKDLSYtH02oTAB/aVbuebUolW+nsZSvu7nOxZX/pH2bi2Sf3uEOkNtD17bzKju09HmDFYhtHWKlnospjMOBlqypnaBnvkwg1B0YjN4YkSbwgBZCd6lZGipEOWuhnZ+Et/gB8La34jIkoQR0NuDYNrYYJX/+wtes9GE44R/+pkhnyr+MP8gy9jZAb33EZcS0P37s7/cIukVGTVL/R/mjlkFgTMV+eAHPxkHMw0hrqqo12SEv/WbV+9H8wMgTAt0eBewr4fsMPZdMiK4MM10/K3QY5jpTlm38+bO76UNLnOyL0dqMNOcP+a1GzGw9Pk7EHV4MkyGngW8zk0Sq6J8ZNylOIuaibbW7n3olk754M4GH2aNZP69Dcen2+08AAv32It8oELd8pFwmlhX9VN5EATd3cP/ObnY1rdIc3NIyl8ZF0QGJ2xFx2pFwfHZtkYcYnyanJP1M0DUdJauHnVKni1hNhtcLdeUHeUjphIAsI3zvr++4hE/mFe+tFPYBwSJRp88AJPuSuQBKb80PuW54b6jRHH/l+3Lx+umoxFVufHfkVhjuLBOhkCfM0obLyVS2KBYPZx/5I9ViKV2lu7GpQDKaAKsJ7BOglCqr5Mj+lqDFEb+7lkdSjoGGzzoXLK0oiZ3lqeJK94BhV+nyx7yYCw4MfG6OesgMi84twm6IBgUVEr7Bb00px/8yw0JsxsHIQBH/SbuHKVVrNh1qJONhQUaBccWs/Z7IFgKNElFgHH4aJqFH0GoN9bOmJJ9rtYgO8hdR9p66Ps/K4eMuLqaEais3Hg/q6lyJktjCTptx1+8WB+33GC0Z8rwS/wFGof/FJovum+qGCxhwgi5OM8QvlQiyLptsKRWaAB4I0j9BPwWxXWYDOeDLqRlwGk4j0uaLaLna2aONsbREXCVTpCIBl0i9+Tky24bFsahDkdQk0c3xGTb9KBB+z1d1iSCE0tlaBFnOQtxtcNR9lm5gp3CUX0BpHieyCm2IQL106mXyhDIrWaLiD1+sItSqswsbpyrEylP0lfsBfls+UiHoQVtvVM9kRZJp+czjfMGY424xX+81uyUZqWioYY1qS0wnCoV2odE/7DSaNuNOb5F75VW1jpYAafBIh3Z+gKETPqtlfT3sy3ynjF4nZUF X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 37a89f51-31d6-40b9-4c10-08da86747402 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6053.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2022 08:33:14.8701 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: glJwEKpfhckEK+SlU4Fri9ahErzySRNrKTRll5M6nqZ7TW9OFK3a3CqH3BYT2M5uJ17946q2BnobVVX4HTmGYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4901 Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org From: Jason Liu Paired with suspend, we can only init wdog again when it was active and ping it once to avoid the watchdog timeout after it resumed. Signed-off-by: Jason Liu Signed-off-by: Alice Guo Reviewed-by: Ye Li Reviewed-by: Jacky Bai Tested-by: Jacky Bai Reviewed-by: Guenter Roeck --- Changes for v2: - none drivers/watchdog/imx7ulp_wdt.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/watchdog/imx7ulp_wdt.c b/drivers/watchdog/imx7ulp_wdt.c index 0cafa86fff7f..dee02c2a52c9 100644 --- a/drivers/watchdog/imx7ulp_wdt.c +++ b/drivers/watchdog/imx7ulp_wdt.c @@ -136,13 +136,6 @@ static int imx7ulp_wdt_enable(struct watchdog_device *wdog, bool enable) return ret; } -static bool imx7ulp_wdt_is_enabled(void __iomem *base) -{ - u32 val = readl(base + WDOG_CS); - - return val & WDOG_CS_EN; -} - static int imx7ulp_wdt_ping(struct watchdog_device *wdog) { struct imx7ulp_wdt_device *wdt = watchdog_get_drvdata(wdog); @@ -382,11 +375,11 @@ static int __maybe_unused imx7ulp_wdt_resume_noirq(struct device *dev) if (ret) return ret; - if (imx7ulp_wdt_is_enabled(imx7ulp_wdt->base)) + if (watchdog_active(&imx7ulp_wdt->wdd)) { imx7ulp_wdt_init(imx7ulp_wdt, timeout); - - if (watchdog_active(&imx7ulp_wdt->wdd)) imx7ulp_wdt_start(&imx7ulp_wdt->wdd); + imx7ulp_wdt_ping(&imx7ulp_wdt->wdd); + } return 0; } From patchwork Thu Aug 25 08:32:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Alice Guo \(OSS\)" X-Patchwork-Id: 600247 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88900C28D13 for ; Thu, 25 Aug 2022 08:33:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237006AbiHYId4 (ORCPT ); Thu, 25 Aug 2022 04:33:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238146AbiHYId2 (ORCPT ); Thu, 25 Aug 2022 04:33:28 -0400 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50075.outbound.protection.outlook.com [40.107.5.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 938ACA6C13; Thu, 25 Aug 2022 01:33:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m6a3lMv+34TAqTqUnQkcZaA6px6hRhDhHImEHqDez8t//eKbnTxluLwlWsyN849DwNvj1VzApg0pgYJrIl+z9yeWFk5PPV2U6uR63G9g2UfKYL4qJc3zd5N8Moe22zM2DSYMzoQNg/YiiK/UE+Gjvdz0Ne6Gol8c3mkoLD23voeasJrAHqkuigKXuQ9pG9uksU/e0drckdrzdoeqKWtFoFj3uKqmb3eEaC2uODTdG8AahsGkVo3istya5taoHzOYZe5VvtAxUOOV+m+7Kd0vOTqgfaQyov1L+4cRM1a5erg142z4JGoEohw2u6zfqAyjblcIdv7A0k3C4eKSWXvY+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QklsSL7Q/a1bjgg5pmMLTYcBv4jx4AqzDyYnHrZv47k=; b=BZPX1vszgbtRtUPHJMJDBrPbgjmT/UpNGyXxlILCha+IDsi858GiekfQdL0m1cZ3D66vp0u4aNPNrnyW/NEev/p9ABC/qMpkad3F5EI8RZNOlONvfurIUMoZkSbkgjcOnIRTylnhiIzRMrM+gzgLP5/ilbNJ/9DYu4IGBCJVrH8bvSMdIRXMJfv7PTV7dR0u7gMyY3VgdKejAfbSyKCD8t/KcFmB5DQUidhitwDv+OxUHCQLrgdL7vL0NFU622HV77AJROaQ/SuGs5+lo4SIj9tfHvZRX094jLzG9uyvXXgjgLML3FnJgfcrxcTUxKcucnggzKJ/YakgjW0lH8RQUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QklsSL7Q/a1bjgg5pmMLTYcBv4jx4AqzDyYnHrZv47k=; b=FCoxUuSGCoyE9LxHwKSfTzM3Cw5wjOkdmU6gzIiXQfpld4ESlVbIAg+U/DsYF9oSXh3yvtb3MdnrKndAKgug6O0WBWcNYZwH9sATFMMdaIQ+mLxVHW5udX/DpCmeKn4cxovACJHWwnzSMTVi/Rj6u1Pi3dg6AWGkZgPQcv429Ik= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) by AM6PR04MB4901.eurprd04.prod.outlook.com (2603:10a6:20b:1::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Thu, 25 Aug 2022 08:33:19 +0000 Received: from AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c]) by AM6PR04MB6053.eurprd04.prod.outlook.com ([fe80::6cd5:f11c:4e5c:d79c%3]) with mapi id 15.20.5566.015; Thu, 25 Aug 2022 08:33:19 +0000 From: "Alice Guo (OSS)" To: m.felsch@pengutronix.de, linux@roeck-us.net, wim@linux-watchdog.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-watchdog@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 7/7] watchdog: imx93: add watchdog timer on imx93 Date: Thu, 25 Aug 2022 16:32:56 +0800 Message-Id: <20220825083256.14565-8-alice.guo@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220825083256.14565-1-alice.guo@oss.nxp.com> References: <20220825083256.14565-1-alice.guo@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0225.apcprd06.prod.outlook.com (2603:1096:4:68::33) To AM6PR04MB6053.eurprd04.prod.outlook.com (2603:10a6:20b:b9::10) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9e9b47b1-f15c-4331-21cc-08da8674768d X-MS-TrafficTypeDiagnostic: AM6PR04MB4901:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WRj5g0uYW1I7KAYimzjp+lxSQt19GRRky5Aq5i0UXP+nZeBR755twcnVGHA8lQgXnHV0WK+J1Ty4MF71H0mi186C3FlW/Gdec3gjqnEWtFzr8pS3kvpYT6+TMOZUUaVqkUEs1VDTUOiFikZAsU7Umr+RVNc3Wr+C5i9XVT6Is1Qs6NjyyBkxV6HKPb+Jd9OqAtb1ORUv6Ua2iyXb+iFAc9ef36Sby4PXTR3SSEjShng4VLBjSP1WHiFRxSe0rlbJvAbE0Hp8D/4ixnWr40p7mDariDnpWcnlACZMoxchLNzjkniggjU2LBFFgRqg272RVQbvqCPI77zWvJRxZyuA0q0M5MPOCKUemibdC63pTJDWFhP0zbSSlBvzGxVCHjnSjzO7lAW02d8VM/B06NSY5EemMZPou9ZnvaIAgUWpbVucjhynRvYrIJjnCGGU3ZiGKXhaWxfUkN3EtuPSQ15UdmY8slwB8iqDYnqqvB6YgykBJMMUNBrF1BceTejPXnbrlnzjY07+J79Sm8Q5+R0B6Xp2Sen+1WK3TobzTwwwOFiOMhfauB8giWI/dmJ0dzwr5hQYxO7YSi8LNHOly+nO8E2MXkxOvtmwR6bmqYTxtwd9N5O9U/ssfdAvPc/WaksALOB7RNM4N/fwOTq6hibKU1WH+DMbKWEIrYfDZV6LTgy9TtfU87n2iGtr+6NUd05OuoUkwS9V7oeFp1a2+Xt9+fh4LDhegtx+SgxFdWTrPvrsKI0h9KWhvLivQ+2Uy1VEJ+h8TR0NaATP8fPKQvre9g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6053.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(376002)(136003)(346002)(39860400002)(396003)(8936002)(5660300002)(7416002)(38100700002)(38350700002)(4326008)(66946007)(66556008)(66476007)(478600001)(8676002)(6486002)(6666004)(41300700001)(316002)(2616005)(186003)(1076003)(26005)(6512007)(83380400001)(2906002)(52116002)(6506007)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HjYAKLRaBOWB1TzhANf6IrpXrtQl2/6+/6KY7XzHH87RKN6bpDfZ4DtkOfqhuVrbADr87B/DhCeDIJqof0pPhIr7hkN7JgmETTk5n7NVTlLinIzvmTIqVaF+713QKs/bc40dCZ6MIOkC1InXtIfy5Cqe2hNvRpMeMAg0mB7VfYYPRb+p6bDsCG4nyOdY6JNOA2Fhn8eQtF07yNjBsp2jgqVQ8Wm6a0b5wikBFIey4O4faDjA5bXzwtj6fP7HgZvabWJASFjgJ7DDw0vaelSubgigZl7wajki+kdH9lBasZ+MToEQDC4Bbyp/6vZlQaIkfh8eu3c1eBoM6+Ee6KkiE87RgXSAy/ZYtctdMXCTUNPW+7/xyHAjCJUMtEoG+Jg3jU1eLQydE9WRdBAwPU9HUIztLV4/ArmKVeAHxmkHChOuQr15LrKS+NVxrcc9c3iUtn8nSRZ0TSAzccITDLaE9pHc8KmE7uGqn76Io7cB9xfnUnqJkbN4xBMrfGhU4wYdgJDXcsGvlTUkF+HBwh2dcpGIOKSMoA8ZLSju6sJAZCtIxsxveAJdRoVFZdKdL7r9jCJglVvF3AGZ1g6rHWK1+HrnDFkh2ZmsI3FDlFVEsBz0rv6pL1eppsbjAyK8QuP+A9ppHiX0YyjV1GlfEugmhfUZJgaxd8N7P3VIBrZhYCUYsExzl19c1dXn6SGqblb0gQ1nBsBNSV9Pg6rsQ3KdbrBUeVcYyIqCkPXUluGLEVjtB2im1clrLdgDS4ggaa/DT2+8ZTqZ6rcN/p79Fgb274g5Htpvc7wE71O8yAxQ2E+j0aH0ZlpjC+cGsjhyIULhZRCG7bxrR7ZxMHE+qC09qOXUI1Pi18CA9muDTkdM3YDquWVFuz2hKwqS4MV74vQLvi6H0MniCiDxV51V1KJ3QvqrFuNtjql7kp/WHtsmFLdXm3Z5aFHuZS+2CURRw1tO11QbqPBRXpyw3UKMtR+RJeAmyuUm3o/GoeUU8WKz13tmRn/lEiBUOZnKlQzwgt78zETwqZ7DZbdUwDsFymvwvbv1PG0LUrFf7MK9KGtDfthYJ3iwJ6A+hkpC84hKHSnwTRK5+BXcJ6cENps7MVlqrwzLyEnsFs5dIE9+o3M8Vt53F+cI/643+X6S3EE4x2BtBjAEkp9PomCpm8NThJo38jrO9FzprpTN4YTIs3LBkO6Yd25QquPuJef/tI15GphutfOIR4u2ziDUPNXsCVYql6ejrQjXXzsmT4SNfQLZk3CU9lXSRVjDBzy3riBKXxkGX5ukYenwpQiDlgy16ZQP3Ej6y7pWM2oxY81MSh2HUwqvsD4jIQ7kGhA71VwR/WqAc8OuniLfiAAkIl0mSxFVezOAx5PXzrSe027XXrdcQttDV5YcL5mFGM221QYF1espTTj3umvie2BKErJ8LzXoH5pE+cnki1yVT2qFFdZUTYMCW0rUpuunXpRtG0NP+2ydS3HuQ7FriRACb9XgfEF2w3KtBtzZgiZR7Ye9/Urcty0nAC79ZQkb2B/fn3JbYLYFOMMnPdeitGH8RZT7P1Q+gIC3bHphgFBkA7xrn0iUL5IesWOEV0i3Md1NxnQhnbsg X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e9b47b1-f15c-4331-21cc-08da8674768d X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6053.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2022 08:33:19.1197 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SpKNS1Ka8ywxzME9UqKXavvybaZwRmt4h4BYhRKq+vs8OS/A80eVXtPc5SsnUeqax1e/6HEHmEWhP9RP99+5Ww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4901 Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org From: Alice Guo The WDOG clocks are sourced from lpo_clk, and lpo_clk is the fixed 32KHz. TOVAL contains the 16-bit value used to set the timeout period of the watchdog. When the timeout period exceeds 2 seconds, the value written to the TOVAL register is larger than 16-bit can represent. Enabling watchdog prescaler can solve this problem. Two points need to be aware of: 1. watchdog prescaler enables a fixed 256 pre-scaling of watchdog counter reference clock 2. reconfiguration takes about 55ms on imx93 Reviewed-by: Jacky Bai Signed-off-by: Alice Guo --- Changes for v2: - none drivers/watchdog/imx7ulp_wdt.c | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/drivers/watchdog/imx7ulp_wdt.c b/drivers/watchdog/imx7ulp_wdt.c index dee02c2a52c9..2897902090b3 100644 --- a/drivers/watchdog/imx7ulp_wdt.c +++ b/drivers/watchdog/imx7ulp_wdt.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -52,11 +53,17 @@ module_param(nowayout, bool, 0000); MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=" __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); +struct imx_wdt_hw_feature { + bool prescaler_enable; + u32 wdog_clock_rate; +}; + struct imx7ulp_wdt_device { struct watchdog_device wdd; void __iomem *base; struct clk *clk; bool post_rcs_wait; + const struct imx_wdt_hw_feature *hw; }; static int imx7ulp_wdt_wait_ulk(void __iomem *base) @@ -179,7 +186,7 @@ static int imx7ulp_wdt_set_timeout(struct watchdog_device *wdog, unsigned int timeout) { struct imx7ulp_wdt_device *wdt = watchdog_get_drvdata(wdog); - u32 toval = WDOG_CLOCK_RATE * timeout; + u32 toval = wdt->hw->wdog_clock_rate * timeout; u32 val; int ret; u32 loop = RETRY_MAX; @@ -276,6 +283,9 @@ static int imx7ulp_wdt_init(struct imx7ulp_wdt_device *wdt, unsigned int timeout int ret; u32 loop = RETRY_MAX; + if (wdt->hw->prescaler_enable) + val |= WDOG_CS_PRES; + do { ret = _imx7ulp_wdt_init(wdt, timeout, val); toval = readl(wdt->base + WDOG_TOVAL); @@ -346,7 +356,9 @@ static int imx7ulp_wdt_probe(struct platform_device *pdev) watchdog_stop_on_reboot(wdog); watchdog_stop_on_unregister(wdog); watchdog_set_drvdata(wdog, imx7ulp_wdt); - ret = imx7ulp_wdt_init(imx7ulp_wdt, wdog->timeout * WDOG_CLOCK_RATE); + + imx7ulp_wdt->hw = of_device_get_match_data(dev); + ret = imx7ulp_wdt_init(imx7ulp_wdt, wdog->timeout * imx7ulp_wdt->hw->wdog_clock_rate); if (ret) return ret; @@ -368,7 +380,7 @@ static int __maybe_unused imx7ulp_wdt_suspend_noirq(struct device *dev) static int __maybe_unused imx7ulp_wdt_resume_noirq(struct device *dev) { struct imx7ulp_wdt_device *imx7ulp_wdt = dev_get_drvdata(dev); - u32 timeout = imx7ulp_wdt->wdd.timeout * WDOG_CLOCK_RATE; + u32 timeout = imx7ulp_wdt->wdd.timeout * imx7ulp_wdt->hw->wdog_clock_rate; int ret; ret = clk_prepare_enable(imx7ulp_wdt->clk); @@ -389,9 +401,20 @@ static const struct dev_pm_ops imx7ulp_wdt_pm_ops = { imx7ulp_wdt_resume_noirq) }; +static const struct imx_wdt_hw_feature imx7ulp_wdt_hw = { + .prescaler_enable = false, + .wdog_clock_rate = 1000, +}; + +static const struct imx_wdt_hw_feature imx93_wdt_hw = { + .prescaler_enable = true, + .wdog_clock_rate = 125, +}; + static const struct of_device_id imx7ulp_wdt_dt_ids[] = { - { .compatible = "fsl,imx8ulp-wdt", }, - { .compatible = "fsl,imx7ulp-wdt", }, + { .compatible = "fsl,imx8ulp-wdt", .data = &imx7ulp_wdt_hw, }, + { .compatible = "fsl,imx7ulp-wdt", .data = &imx7ulp_wdt_hw, }, + { .compatible = "fsl,imx93-wdt", .data = &imx93_wdt_hw, }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, imx7ulp_wdt_dt_ids);