From nobody Sat Jun 13 11:22:49 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011066.outbound.protection.outlook.com [52.101.52.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E85A13B583E; Thu, 7 May 2026 15:47:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778168844; cv=fail; b=XMAbRYY1ANt9BNq7eVuM2m0hxnxNibfSWZuyM3iWlC/Sn0nHAoTkbfN93OBaQP/LELOlPK6WjU+Ewdhvy05lJdm35hE/0+aZfXtz1I7yzUyutrkQJYtBeKgGw5UGjumf1MX8ZB90zSA3MYTlr9dVsNrTqrhmylxFZycM68f4MOU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778168844; c=relaxed/simple; bh=9Dm/sHoOFUgpeGgXe4XsCiNfcLtPzB50LBbQEKp1mZ0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=SsvF5aoN0MnVv46DUtUZpGsmJ3ncrfOQlztZdtsnWZI9mWdaYVE4q9TVeHsAer89myQqpQpCv7kB6Gr4/NPyLCFH5aMRCs/b+ldeD182o06byusK3zdBstr9YcrFRfbdop76n99I+nHzAt4qFx+DJkL9PhniA8+FKA/gpPXWsqs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=f4foOIos; arc=fail smtp.client-ip=52.101.52.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="f4foOIos" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NSseR2PUe0HJ9eVCICaAOmA1K66ZP1E2j3vLvxGfmB7Lnb29TlyRXzL9DUyX/GKCKkGtX6jHP9ctY6q/wlrDQwpD+ex3ULLGTvzXYn9KHY4eKaXSxvRMbrFK9jgLcNFDsUDypXmghCBQLbDFNbkFO2oitayaVCzLPt52tVSJ8JK1fR1+nl/dD+zQNRFbp0RppR+Y/n+3kQQXw1gvq8/B+t7TcWrEAWUxMt/ssjKrvd7LZejBrv+jCTVx6PqEZHzb3AjlFpfNuxu4c5BE7Qlu/JoXkSmyK5KyUk/d4YY/zMQOaZXLhh1lbx1Px5FjEf0sqY6cJIFYXo0MDAfdr6zXxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=mbj6hZQkxCTP0Yi0RKyrymjwiPmk8ciw2v1t5767OMU=; b=gejT3WeZ7JV8t810jTBARB2nHD9evgAqnHZaqggk4KvWUpyT8HmaiMYSuBDqMUeOsoax2X8yPrxqqfNQp27Wo+/6kkeyz6RNnHIEigL/Z2zZdqJC5pF5+r6yysL/dtAArcXP2QigF7CfvCGHBm9Orj48XuPr/wit7cCaLRm6EHPA39JEEW1652eIPtRZo5Aoss5S741+cHnjn8UH4mps4RX5t+a99soeNdMW4SGc7aYeRs24/P8QB8dxren2/rKa1lV+GNFbwwwnwg+PwB4AIXVjpPlrFjjSinuBeoIftEcZ7tJFRe5RndTtdVXYAdjFjdK671OTLqiiRVItakr3JQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mbj6hZQkxCTP0Yi0RKyrymjwiPmk8ciw2v1t5767OMU=; b=f4foOIos/ScFv0ywQCtE9oMgGYNQ3T3nLgvcFeTfFsoAsrzORDjdkcGdIvJ2KUOBKzPS5ye2+AUrwbQiEBkcX0JsYc0k0g2HpBUCCVPPmLdgpCa9w3PqXczP8VvfC4OWwNb8W0wuPfYZ81PAaBNS4dr1W/KX/IaWtBMJSAA1Iz+M8CU7FOlxB1hlu+08gVJPNmRpnw/+YvHuPS0shZtwZ/MNbP2PRai2nW7MQpKft2KX6i03u2s08fn4t7MIq6v/vYeucMDIt25s59cUFGfNWXDlNn9X19xM1W7IPyAUlyrNmKgCkaIBlajHa2Z3JJG7zubF2d/Ob18ri2LEf9TOzw== Received: from MN0PR04CA0008.namprd04.prod.outlook.com (2603:10b6:208:52d::22) by PH7PR12MB7212.namprd12.prod.outlook.com (2603:10b6:510:207::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May 2026 15:47:16 +0000 Received: from BL02EPF0001A0FB.namprd03.prod.outlook.com (2603:10b6:208:52d:cafe::91) by MN0PR04CA0008.outlook.office365.com (2603:10b6:208:52d::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.18 via Frontend Transport; Thu, 7 May 2026 15:47:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BL02EPF0001A0FB.mail.protection.outlook.com (10.167.242.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.9 via Frontend Transport; Thu, 7 May 2026 15:46:50 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 08:46:22 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 08:46:21 -0700 Received: from kkartik-desktop.nvidia.com (10.127.8.13) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 7 May 2026 08:46:18 -0700 From: Kartik Rajput To: , , , , , , , , , CC: Subject: [PATCH 1/4] clocksource/drivers/timer-tegra186: Fix support for multiple watchdog instances Date: Thu, 7 May 2026 21:15:54 +0530 Message-ID: <20260507154557.2082697-2-kkartik@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507154557.2082697-1-kkartik@nvidia.com> References: <20260507154557.2082697-1-kkartik@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FB:EE_|PH7PR12MB7212:EE_ X-MS-Office365-Filtering-Correlation-Id: 090e7576-f8a9-47ed-1e6e-08deac4fdafe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: lXodxVUngW+BS2+z+6eKflEb1Xagi0jqQCxU4/jOQDbkOGeZGUbXeCEPO/0U6CbfzACTyf1xdEQdiWnDLfhUV2s2dRoPBzcvmXfpAmOhwEVdXQABDkAhs1A9SS5I+xzJna0R64S6/+VynoNP5VceJ+Ic5oR3vLPhVQT07NveEECJK71b9LiCFq6DuG0/X81RIYmXi1xVKiKS6IEbGEJJVpIwRFgur67KWiGW17YGwqqd432GiqIUr2pBcBJQS0KfhzRFUYzBn8pxxoieQHPbgG/69miCkSd0PJ6uPoR91LL+u/rFsY4oSDka+bNiiHF52woPfrHb2zS6e59cjRVn62I2ZOBp4e+UmZyweTPBwoF2tsZ+m6jzehSH72NQ1VU/VS2DFi2dBw0hXVT4GXawM09EFJZfkXtM1zBI3fL7NzgU3RCHOW4u+Owlz0MdrReTpD0YLL+DfUMvIu3lDKJpcU9ldybCoOILS6i4HC9xFUxTOeGpQPWltRPJFMuiVovJ7MnzunKRTjjgL+2tSFyTb99/7jW71rSXZIddDWqbLG0DOacOSSAQvBLHQWE2U6HdGZATr4hv9lF1XVey6pjhqTJOp6kaMQePUdMAfa6ACKyqqMr8bI2D+YnHjyWsn/DQ5mF1d04wi3L55fz+fh7SX+vw1/oTLmBcn9i/Ofk3KpqVKns1n1Oe6t7h5iG2bJ1vDwky61nxuyYJn8nksZN1roVpfERznMHwwb4r/wTZW7CE4ibWYX0U9m0NSytMZgo2q9nNc1t2kU8CAYcopRPXEw== X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(921020)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NrxJZxwTX0oHysKpoZnhdRPW9s33CXHk/kuO5IAHoOneuB4cv/mXgbFV1wft8q45IfC2nznrSWREf9m43QTkDbeJFQGFTVrjCGnRYbFkyo46VddbffoRUgaq5aW2jeVYSTKnayMrFpmlLJeiGJxasKdqK2eFkRcaDEIjt0vSR3uBVZh8/xZesE8fry0kkulNC7uYdO5KnmsguJpVyFqgg17oqzqYYkvqed60No6pefLQZ3Pn+DcuHRsWvU5P9pqG5v9lR4ridoKTkJieznTWwcp3xuFlBt6i7JWK57b+A3qEVT3faTCnPKoy+Y6Krp3/SyWXWuHOKydFOlV4JXxZaJkvSdnLz/Vd7Tl8tLR0vuwmtUGK/fvQJdneOmeuLiSx9o+rg+EQfO7xJ1nIQ4qNJb28Lkj6b7QCwOjN5WqTuSgwU1Saw56mTLOYEUlYyt6C X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 15:46:50.7910 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 090e7576-f8a9-47ed-1e6e-08deac4fdafe X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0001A0FB.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7212 Content-Type: text/plain; charset="utf-8" Tegra SoCs support multiple watchdogs; currently only one (WDT0) is used. When multiple watchdogs are registered, tegra186_wdt_enable() overwrites the TKEIE(x) register, discarding any existing watchdog interrupt enable bits. As a result, enabling one watchdog inadvertently disables interrupts for the others. Fix this by preserving the existing TKEIE(x) value and updating it using a read-modify-write sequence. Fixes: 42cee19a9f83 ("clocksource: Add Tegra186 timers support") Cc: stable@vger.kernel.org Signed-off-by: Kartik Rajput Reviewed-by: Jon Hunter --- drivers/clocksource/timer-tegra186.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clocksource/timer-tegra186.c b/drivers/clocksource/tim= er-tegra186.c index 355558893e5f..bfe16d2d5104 100644 --- a/drivers/clocksource/timer-tegra186.c +++ b/drivers/clocksource/timer-tegra186.c @@ -149,7 +149,8 @@ static void tegra186_wdt_enable(struct tegra186_wdt *wd= t) u32 value; =20 /* unmask hardware IRQ, this may have been lost across powergate */ - value =3D TKEIE_WDT_MASK(wdt->index, 1); + value =3D readl(tegra->regs + TKEIE(wdt->tmr->hwirq)); + value |=3D TKEIE_WDT_MASK(wdt->index, 1); writel(value, tegra->regs + TKEIE(wdt->tmr->hwirq)); =20 /* clear interrupt */ --=20 2.43.0 From nobody Sat Jun 13 11:22:49 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011054.outbound.protection.outlook.com [40.93.194.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AA7B449EB2; Thu, 7 May 2026 15:46:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778168807; cv=fail; b=E3nLih1t8SvdTeR5UojJm5af7unSwXXuNCEptYY7a7/giHexJDyhFH4bWybEGvmbYyhs1/W86aSoJIsRnPhoq8fTgdlAE0JoJLXHVPK5y01TweJBVW5oisxpjNAc8ggUPat5M5aHilGWNdGwMd4mJ3oU8orhEDJWA8bzF7yf4nI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778168807; c=relaxed/simple; bh=7rU+2gn8l93DiQsmB0xRwI8LIU36Sj6bfy6r8+TSX5E=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HTxyxNVr0WWTJuVAgAvkhYVMAaNghtvRE2oCG6hfE61bhmIwJ8hOc6TFmGfMBlQQFnJa1UaN4ae4jubbO0cnJxSC07UB9kWONyH7+oynHQ7Vy5vnvUK+VGQkJpKGJX+NX2q94jBKzlL3C6qo6swWk3DV6F5hhZ3xw/dZbLV4F0w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=hjmyy844; arc=fail smtp.client-ip=40.93.194.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="hjmyy844" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=c3w3ovhf8q085psa81SVGFd5Q8zLHjkM5wLUP7/2GqmpF0XR2hKArtEa8R0NKdEJcFG8SFzLDUfb3cMy0dvM8eZ8K5MjszJut1FUxzwUzPuJVKGet0Z0akPajCIEBgiQVK9RxVBpnIr64aTcol/iUwlNqefHh+WNDfDYFLTdJLy5iw91ysOsn7Skz4qHL7ytjIrlJQ++hDtC1wrUosPhU6laG5nbVDmVjc9e3JCCkiaB4pXhw8fndk/eK+fxDLwbDJWMxTibF7Fq8orhcs+SoVjc6+uNv3NRVwqoQIVRKwoTms0yDN5JwiqkMwI2P2MDN/Bz4p0tCbRiD0uMcB8GHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=SQjD5d0JIONQO7qM8OXzU38bV5XfopoEBbGVPjRVJgo=; b=qYsG5nMZKhcCW0xBpmBx0W2gOsfMz+XyKg0X1J4I2cHelyUuXyJMTjdQ8qdSIQ5GrHSVzqg1VrX3C91JvSTTjJgp32bOjsn6aFw7ZAg1uyjQkFxa2tBBKnTdiw+7+X+BLR6lnsqmmJig8tZpQ5QbfbT2KEBQ+128NYsRKTktICLg6UWCJGAep73SMUfpfGZ/SFhmvzmOyhEZmkD15uYwK7f3lV/MnGrJo6tuEpgQCS6zAahJwFmRUovVPIjPvCRO3f51XCW9NGKmHBdFHQ4lOiaVD6NCpdjV65FOrpedsJpTwWA2IwJGF2VyfEkeYz9UsfWo0ZEHWiWolBvbA6Aqog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SQjD5d0JIONQO7qM8OXzU38bV5XfopoEBbGVPjRVJgo=; b=hjmyy8445qr/JPVqAaH5FZ4Jt3idq7EjiZa+tS7dTb1388e1Ma3+czFtrGoHGNBEBZ80F3lMfOUA2P6ORc6yfJ63wWQZydV9fWs8qTl6l1JdpEipNejPjTaGSOpW0tN2wxRhY25CtwffU+lZndhTxt1GylT/TDDFa93TG0UGWpgy05yDzRwHZWfm6w0kTckTTIGvsNcCePya5G39GMheiv/fN3ksqGY7ofTk+H18PmRJrcRE/h44uzMFG1mTiIE31nV5wBX4dxN6wiLAztWtvj9bq27C2rqVTU+fnBKkd8hhtaoCvatf4p9abmdK3nP97u6tYTXu3jx1/SyHdchpMQ== Received: from CH2PR14CA0015.namprd14.prod.outlook.com (2603:10b6:610:60::25) by PH7PR12MB6393.namprd12.prod.outlook.com (2603:10b6:510:1ff::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May 2026 15:46:39 +0000 Received: from DM2PEPF00003FC8.namprd04.prod.outlook.com (2603:10b6:610:60:cafe::3a) by CH2PR14CA0015.outlook.office365.com (2603:10b6:610:60::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.17 via Frontend Transport; Thu, 7 May 2026 15:46:39 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by DM2PEPF00003FC8.mail.protection.outlook.com (10.167.23.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.9 via Frontend Transport; Thu, 7 May 2026 15:46:38 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 08:46:25 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 08:46:24 -0700 Received: from kkartik-desktop.nvidia.com (10.127.8.13) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 7 May 2026 08:46:22 -0700 From: Kartik Rajput To: , , , , , , , , , Subject: [PATCH 2/4] clocksource/drivers/timer-tegra186: Correct num_wdts for Tegra186 and Tegra234 Date: Thu, 7 May 2026 21:15:55 +0530 Message-ID: <20260507154557.2082697-3-kkartik@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507154557.2082697-1-kkartik@nvidia.com> References: <20260507154557.2082697-1-kkartik@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM2PEPF00003FC8:EE_|PH7PR12MB6393:EE_ X-MS-Office365-Filtering-Correlation-Id: ecd5d3b3-be82-4021-7880-08deac4fd3df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|921020|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: FzEjGESkW2JVQocR3WwaEMXP5PRfQod+f6bVuwIT9tvhmKXk5mIrE4EGwXl8u4dL4hVmUwkn+EdFlxywxX/oEZfPF/LrgVWtSfltS0bddEYyzZ63pUMOKFrDhxfiHNjQ79ly1KMgXA6nHBhm49BGedIZxEgF62QH3Hc7ugT1MKglYd1k8LRvXL075xdZGzLtbHn0yyc/mdZewiqFoy3dk5Ji6c7E/DgTyRTdLN7ljhPLq9lDDs676gElj0ZHjkpwiLHvRwsmG3Ceq9sRuj+seHo8hQ5+lnGiaIlJy+nyd5m7nGI1mauHISQkm0Ckhbo/p+zPdewCGs8nRm9XQ94vT74CUqn8lsKpeDzVXkrp8zfEKDOW7BDg0dCQN++9/e6bnBwmRt0sPTU9DovQZ47npZlED0QIgk1qiNQoc/Mb6z0JvJC42xBW0tuPyNjbY/Ra+8QXkaOILEM8FVHDZAPTJbcqJbI7RfGVptWA+1NoVtz4y7n+zwLtVF/67zrYQT0HSJcLEq71l+HIyORo8lEM7IX6D+YywHONFgYeOk3VkR1dxZR4yu7I5QF3szL4foG8XmIF3cKNwq3qH+JesakQx2CB/fCq2OJ2C2balIYAvlbluTWyVw+Tg1e+md1HdpxJapFc4VqhpFl0UOEu1lswqa38Nt8nyx/dzd3yOgSFwAXmKe+SwZk793bZXSmYo020aOLGYTLVxdej1G9Qx5VbG6ftDybLmi/3IpRSDVMhSiAZt6dBMs3TyQoG2hmwE3Bfxd2OmLriiRAYb05kMMR97g== X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(921020)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9ZcYqJriFfGCorvqg5+/u2w7Q1xEhWIWnSzt1U6ADpVNQpqetjINN8ROk88XD3WZrEjFTBhY3RVc9ReG6iz1NE356fgTrX3/1ODOMYE4TMAfsEAb/wRyMTBfIJxm49qFA1w+zaTGEldnYzCePp5nEcc2kiqzepRyci/bftnNqFXvcjwYdiaqBsVrZWzQ238B1n65VHn9zk63w2Z8ROB4mY7TW2buJi3t7Mv6jaBxqVaLxnmaQHccGIlrNVTD7X2K8Er7/fEuIncPnGnCXLyUeiCtjRAgiKQU9aBxrWaC0FLhUoagODk2kTvHgIzB7LGhApenP/SPI/JL4zQejOsinIj37qf6WXma1O2GgOlKn/5DeJLqiDPT6ZyONgXpWDOYucw/Z9ra/mjva82b54W5lAXVk0ymTdt68nocY4/EKBSsBn74SP8DJf1nJN3Oa20X X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 15:46:38.9045 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ecd5d3b3-be82-4021-7880-08deac4fd3df X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM2PEPF00003FC8.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6393 Content-Type: text/plain; charset="utf-8" On Tegra186 and Tegra234, WDT2 is connected to the Audio Processing Engine (APE) and cannot be accessed from Linux. Only WDT0 and WDT1 are accessible to Linux. Update num_wdts from 3 to 2 for both Tegra186 and Tegra234 to reflect the actual number of watchdogs available to Linux. Signed-off-by: Kartik Rajput Reviewed-by: Jon Hunter --- drivers/clocksource/timer-tegra186.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/timer-tegra186.c b/drivers/clocksource/tim= er-tegra186.c index bfe16d2d5104..fd82a73ab2d2 100644 --- a/drivers/clocksource/timer-tegra186.c +++ b/drivers/clocksource/timer-tegra186.c @@ -511,12 +511,12 @@ static SIMPLE_DEV_PM_OPS(tegra186_timer_pm_ops, tegra= 186_timer_suspend, =20 static const struct tegra186_timer_soc tegra186_timer =3D { .num_timers =3D 10, - .num_wdts =3D 3, + .num_wdts =3D 2, }; =20 static const struct tegra186_timer_soc tegra234_timer =3D { .num_timers =3D 16, - .num_wdts =3D 3, + .num_wdts =3D 2, }; =20 static const struct of_device_id tegra186_timer_of_match[] =3D { --=20 2.43.0 From nobody Sat Jun 13 11:22:49 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013052.outbound.protection.outlook.com [40.107.201.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9F4F441B344; Thu, 7 May 2026 15:47:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778168822; cv=fail; b=ucUi+QBa9lI0cXuD8sVIf59XQzQY5tvfXcdYdTG4hcQVzBkFAPhJLJcAL1seBm9AG325EObaFTR7CHBlzrBDCFdYa2obRsTaEjMB31gySVHKmINR+dkyiFGs6v9/HGD/AhqtEe8TvlxQP9/aP3LmFqVJc9u+x+ydEYK+FUz1vsM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778168822; c=relaxed/simple; bh=e48QN2mKd+UY2QfbRkdFoWWXjT4Efq91VMOMIJ6dJ2c=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kTkvZDYK5JiFZgnBHefBYWu4wfhJYu929w2ZE9JS5Zn7K3aH9sdEF8ZMlqOorah74S5/NbegEx/tyCcwojtEXnjdu/VtANsTaneUieGA0NoOc38SDjAuVKbkepL9tidwI+Vygdm3oxHE30GANaL14VfecGArAQgX+41isAcrrIQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Usn72fYp; arc=fail smtp.client-ip=40.107.201.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Usn72fYp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FIK7vjJ0MAY4MlOys8yO1vuOmDUEoHqxRaAMeQSJ3edbNFn4N1kTgmYXWd/MlixF6zjQh/GzFDUgrO/tjGzySR9vgYZNMIjc+4UsLBv6KP0uSeK7EUIhsVNIHqQWgGSk72I0kEiW6IrJM2PjvDdZb1sTjYCdTAT7/ChjiYUzA7j6QuD+DP6EpLkKbCjoBnmK94gyMaLQbzXv+ymITHvJz2T7V0GP+iOzzkHGSmXFctXgKSwQIA8K50dZ1auFP/oFbyO4rbT/VGoDADV6Tua7LSQfOioNrz+to3WLqrpYCveltu1bJxtUDgeOBHxIKPmcC6jQD7CajE47Y7G0zXQBgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=zjB8csys2Dg9c7fRaG6x0ecHAyTQ1wC9WWzyJt5DgyU=; b=NDX9TAYdpc7jFSKgAMsk60SHaR6KR3XvI94Sp7u8uQPmzmoeqU0A9QD4TQJZ1oZBmAJyEdAXoMHOjkj0Kk2+9teEDa8fUquZ75daWm2DypsGZ4lJxa27aG7y3urrTgChcZUfycNYWM0yiZK6JaGGFt46hOo9+zrJ6T+n3nn1H5dWhwuLUZB8Cx+85M1hILo6Av6CJsx3aiKcebmoBqBlgJTxjXAnQZltuW02BRbgfyXeWVALe8VJNmhyEUm5izRyDRpWQp/m8hGDzUb6WrYIKgiA0gK1leY7oq4pwkW0L1g2RrtkV7Z/O9iEBmI1GgiCvbALbkznGFlhjQaJOTS15w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zjB8csys2Dg9c7fRaG6x0ecHAyTQ1wC9WWzyJt5DgyU=; b=Usn72fYpEscM9S0aGUT1osKZjCTDXgngnqNbjtceUCK3Ml5Tdbrkrc38gQn0MDu7PI05mIBe78S59RolS0RhOaxSdnRKW01VN74Y1BshzIMVWzGj2GjdTkVX7y/AWO8waJiWQogRBlSDkV5gnDkzhUVb35pbxZMMBGn2LfNcnoXCSqXn+/f1r79jJ2pdEfTKt2fl9tWY6x8TaTJUr7IGqGxnBpBZ6EcPqZO/jNWuxkOcZoX63CyLw8xaDB/N7iznenX6nmXsuiwxtE2Ch8sYCQu6e36+ViYSOrJxkwjHkw7Jh3zjxb7XtSg83wPCZFWzWq7cRsVuudGTtB/+AY4oRQ== Received: from CH0PR13CA0031.namprd13.prod.outlook.com (2603:10b6:610:b2::6) by SJ0PR12MB5676.namprd12.prod.outlook.com (2603:10b6:a03:42e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.16; Thu, 7 May 2026 15:46:47 +0000 Received: from DM2PEPF00003FC9.namprd04.prod.outlook.com (2603:10b6:610:b2:cafe::4e) by CH0PR13CA0031.outlook.office365.com (2603:10b6:610:b2::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.11 via Frontend Transport; Thu, 7 May 2026 15:46:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by DM2PEPF00003FC9.mail.protection.outlook.com (10.167.23.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.9 via Frontend Transport; Thu, 7 May 2026 15:46:46 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 08:46:28 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 08:46:28 -0700 Received: from kkartik-desktop.nvidia.com (10.127.8.13) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 7 May 2026 08:46:25 -0700 From: Kartik Rajput To: , , , , , , , , , Subject: [PATCH 3/4] clocksource/drivers/timer-tegra186: Register all accessible watchdog timers Date: Thu, 7 May 2026 21:15:56 +0530 Message-ID: <20260507154557.2082697-4-kkartik@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507154557.2082697-1-kkartik@nvidia.com> References: <20260507154557.2082697-1-kkartik@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM2PEPF00003FC9:EE_|SJ0PR12MB5676:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b34cdac-b0fd-41e7-9cba-08deac4fd88c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|22082099003|18002099003|56012099003|921020; X-Microsoft-Antispam-Message-Info: CX6l4f2oua/bAHPYI07SIu4Krf6crHyNmu86KptexAJRuuInlCaYVNxvwLEAJT+eGgq6p1CCRTQpJ/Fglmwedjj3ljey1WnvQe6tu+t/En8Hxwqm5zlwxrQUfnnKUmNPKFgzLoFns4aFEjH+PwWZDCNRmmErpVDzXMDGNFW8KAVhNsAQ4vghOMwLzS4vzdupu6SzupxnYQdxCT+piI27Z+F2KvvI0tUBxf1YntW3xrYlkydxeQ4S6U2m4/BHwVQK4XoCt644CdyB1YQA9VKIcJZyux+RtWRVQPnLmnbFsIWooetAEJcCI3opKAjQq9FSRiRB6frRu/GaO2yDNGak763op4duajr7n7jpc+ciHlfOms5lM46OR4W85DoW0ONB+A4coGwCRcE0upKnfrDJ4s+kGc2HR3q6EC0Pf/5J6qa8MuZdKxAhygKnyprgn6mzOHrqe5TtaI6dpO7cG2ErtI5BklDB4G/WjVb5plPA3xaYX8Pow1/ABS0yi+fPz90PPRNaenzuCJAeKqNO/fhTn5HswjrzftfPnt1Ucm9lixbjarKZS0R6v9RjFJNLgH1v4J8Yj5fYe+tmJ/qPW7r7zCyNYItAQsiWYAgVpBpbhdjEm9O4zyrxq5qGfCEgmEtibGxH2aLmZWFPvcy2vFoXoJdcXEAOTKvogWRQA0H3bXdNIQJGiawojeur/jKMVSZJ6f50caCxNpMJa1DZjocDbXdXPFzTHAq6QKSSC7m8QagCubz0zCS9gofH9vI8kXsZqqsAX7OyBxzI5vRzt/9Y4Q== X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(22082099003)(18002099003)(56012099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wuPkPpOVZNLe3gbn47IcmBMb3p76xi2hMSklNtxF+vL3q94iTkjDQdWT2FEoUM+sZAIhRicsgqPPoo6oxafm3EmSbS9vnCUNsAnIFJ741T65jg/0NrsaAHwHhq5GLr8VQtcpfACuqCCGQiEgHejhpR9QX/8S8JUFwVQP2To2LsU1HIYiDHDaGYKim8EQQBJXnLEVMNw4sxvkGBF6haLyTVXJ4O7Ici079nUEKk8SGThhmLh7rPpc8y0tugXlyJ5Z0TrN1v3QzM6OeqOYbrKbGsq5L+pPTUPBE3omboxMD2ffbTdOES6cC45PgSz9p4JeTF5rP6s2EcgSl/etSrEK3LQ/b/8EFxHb/Rx44ko16au0Vjc4IIH30xqefjdRLToNY/3MqmhPMDldY0nSwHKkBJqkpRUE+hJYq5VUnCllkHTUFBXpI3nlZ5SwWXGnqCCe X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 15:46:46.7523 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9b34cdac-b0fd-41e7-9cba-08deac4fd88c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM2PEPF00003FC9.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5676 Content-Type: text/plain; charset="utf-8" Tegra186+ SoCs expose multiple watchdog timers, but the driver only registers WDT(0). Iterate over num_wdts and, for each WDT, check the SCR (firewall) registers in the TKE block to determine whether Linux has read and write access. Register the watchdogs that are accessible. Signed-off-by: Kartik Rajput Reviewed-by: Jon Hunter --- drivers/clocksource/timer-tegra186.c | 61 +++++++++++++++++++++++----- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/drivers/clocksource/timer-tegra186.c b/drivers/clocksource/tim= er-tegra186.c index fd82a73ab2d2..dd1d1a0dd63e 100644 --- a/drivers/clocksource/timer-tegra186.c +++ b/drivers/clocksource/timer-tegra186.c @@ -57,6 +57,13 @@ #define WDTUR 0x00c #define WDTUR_UNLOCK_PATTERN 0x0000c45a =20 +/* WDT security configuration registers */ +#define WDTSCR(x) (0xf02c + (x) * 4) +#define WDTSCR_SEC_WEN BIT(28) +#define WDTSCR_SEC_REN BIT(27) +#define WDTSCR_SEC_G1W BIT(9) +#define WDTSCR_SEC_G1R BIT(1) + struct tegra186_timer_soc { unsigned int num_timers; unsigned int num_wdts; @@ -89,7 +96,7 @@ struct tegra186_timer { struct device *dev; void __iomem *regs; =20 - struct tegra186_wdt *wdt; + struct tegra186_wdt **wdts; struct clocksource usec; struct clocksource tsc; struct clocksource osc; @@ -298,6 +305,23 @@ static const struct watchdog_ops tegra186_wdt_ops =3D { .get_timeleft =3D tegra186_wdt_get_timeleft, }; =20 +static bool tegra186_wdt_is_accessible(struct tegra186_timer *tegra, unsig= ned int index) +{ + u32 value; + + value =3D readl_relaxed(tegra->regs + WDTSCR(index)); + + /* Check OS write access if write blocking is enabled. */ + if ((value & WDTSCR_SEC_WEN) && !(value & WDTSCR_SEC_G1W)) + return false; + + /* Check OS read access if read blocking is enabled. */ + if ((value & WDTSCR_SEC_REN) && !(value & WDTSCR_SEC_G1R)) + return false; + + return true; +} + static struct tegra186_wdt *tegra186_wdt_create(struct tegra186_timer *teg= ra, unsigned int index) { @@ -424,6 +448,7 @@ static int tegra186_timer_probe(struct platform_device = *pdev) { struct device *dev =3D &pdev->dev; struct tegra186_timer *tegra; + unsigned int i; int err; =20 tegra =3D devm_kzalloc(dev, sizeof(*tegra), GFP_KERNEL); @@ -442,12 +467,20 @@ static int tegra186_timer_probe(struct platform_devic= e *pdev) if (err < 0) return err; =20 - /* create a watchdog using a preconfigured timer */ - tegra->wdt =3D tegra186_wdt_create(tegra, 0); - if (IS_ERR(tegra->wdt)) { - err =3D PTR_ERR(tegra->wdt); - dev_err(dev, "failed to create WDT: %d\n", err); - return err; + tegra->wdts =3D devm_kcalloc(dev, tegra->soc->num_wdts, sizeof(*tegra->wd= ts), GFP_KERNEL); + if (!tegra->wdts) + return -ENOMEM; + + for (i =3D 0; i < tegra->soc->num_wdts; i++) { + if (!tegra186_wdt_is_accessible(tegra, i)) { + dev_warn(dev, "WDT%u is not accessible\n", i); + continue; + } + + tegra->wdts[i] =3D tegra186_wdt_create(tegra, i); + if (IS_ERR(tegra->wdts[i])) + return dev_err_probe(dev, PTR_ERR(tegra->wdts[i]), + "failed to create WDT%u\n", i); } =20 err =3D tegra186_timer_tsc_init(tegra); @@ -489,9 +522,12 @@ static void tegra186_timer_remove(struct platform_devi= ce *pdev) static int __maybe_unused tegra186_timer_suspend(struct device *dev) { struct tegra186_timer *tegra =3D dev_get_drvdata(dev); + unsigned int i; =20 - if (watchdog_active(&tegra->wdt->base)) - tegra186_wdt_disable(tegra->wdt); + for (i =3D 0; i < tegra->soc->num_wdts; i++) { + if (tegra->wdts[i] && watchdog_active(&tegra->wdts[i]->base)) + tegra186_wdt_disable(tegra->wdts[i]); + } =20 return 0; } @@ -499,9 +535,12 @@ static int __maybe_unused tegra186_timer_suspend(struc= t device *dev) static int __maybe_unused tegra186_timer_resume(struct device *dev) { struct tegra186_timer *tegra =3D dev_get_drvdata(dev); + unsigned int i; =20 - if (watchdog_active(&tegra->wdt->base)) - tegra186_wdt_enable(tegra->wdt); + for (i =3D 0; i < tegra->soc->num_wdts; i++) { + if (tegra->wdts[i] && watchdog_active(&tegra->wdts[i]->base)) + tegra186_wdt_enable(tegra->wdts[i]); + } =20 return 0; } --=20 2.43.0 From nobody Sat Jun 13 11:22:49 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010052.outbound.protection.outlook.com [52.101.85.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B951144BCB6; Thu, 7 May 2026 15:47:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778168825; cv=fail; b=hpTLHZ73Gl4mZO2H9MCZsQGl00VAWiQt54j9+QsREy7bwN0Wij9onQylK0KPYPEIyc+LGd92pdGkXe6GP+86HbtEkQEYYqfkKqZNeQqmMR1Hfqub8Rz78MEHLHAQxqZf2cwHEOhqQ71EucPJRZ3j3nD83prPSi8/n8OasuXlPPk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778168825; c=relaxed/simple; bh=f448NaSCHtSWLDyqcB8yC7taW/HpLTwBPfBstUuNgzo=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Bzwy4WPqwSRcZIg2n4zufuBeFNdsxhMZuB4RQ5Q3csLAdeXOOCkXAT6Zeg5nTqB+VHcIbsX6cBb/YwW+yG8vhmayn2yzDiUwzYeGCFwisUG1ECDxb26pbwUKOEBtyfqxIlcj1FEE06D0XRZkP6Dk25EONAQPCDLt2SV8AhD03BY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=i6UD9stE; arc=fail smtp.client-ip=52.101.85.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="i6UD9stE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Qcu8+HNrbNcWzLYSJUjDJ+c/7xGB3y0YcbNdel7WJQ5eOs/mwEoTP1YYvVSLwR9tBQmqdIFfdE4yH6Qw3RwSVrLkLqWhnyCF/dRAddg8CjPDl5TKdFIQ2qN0trVZ1qx/ab6zu4SXC+QY8N/whqkwPbgXW7fju9JPFUqUACU1fEPaMsUkRMZK6Z+ERY3MYUDgX5TjTL4HjpM2Jvm73bI5NjFa8ir/srLaqXRSeuRWEZhRYhFg1r+E2+bzj0/IuRV4XkG8fqlJ5BBcPqPZv8TbyUD6GQBrCVHrTHta4/ET0NheVqW005xcxfhJZXPHgUDQJkjwnMWMhwG1SXLM9ARrXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=cp87CucEDEMcKQOxo1YTtasFyJ91OR6sh0XMoWWIA/A=; b=CwvS/RyFbuOedciIGlWPJZ0RPdzqCESbYSsoWj4eQ/xiDrHlLeqj8D4WQ0r+VDxeXRISINXelsc/azfRZRcftFXHf//cmbQNGNWVD+NAZdO6Imv0C09MUf0QGpCrVIifpd8PsVO4wAmDtoDX2aScWNyMRF9S6NuNPEmELSa4zIl3MGzwk/PNONRkQ2+7JUvgvXsvQC1SZmJz1WMloWAJF66XnZycnW5JWY45rItoUBnPZuzOgE1OTN02Sl7+YhmVaiacgJdi3GitxA5ULNJI+IwqsUwRBmzvSil3/JnL5opSm5CpqePPnyO6opkRgcnzSVP3zYbSe7XuQhayvAdi3A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cp87CucEDEMcKQOxo1YTtasFyJ91OR6sh0XMoWWIA/A=; b=i6UD9stEIEGC8DFFEp3P3rT8cXaHXoajKgWkC2+dqWsWH8KmTHyrbfO7ZLUbNoXKCej4sRw58j7ROcteh2D0hQHU1QNHoYAJ+XEcDTAUj71m4qkLsT8i0Oh30dJ7SmPzdtQ1HncsrX/He5tKnSUPv3Jfmqs7L5Yoq4n8nJJeTL9Er+MPCYH9Q4BYHPWdqaIKk3ScdYcSL3WM+VojlaTeKDQtn6NJZtR3Q+jQQ7GnziuGNVl8zbFRRoDJCTnO1Z3jH/fXIcjrfEgxKdGkbYuy46U/OWGV0XCdu2SVG1hwBQH/VP1Om7LUWIPQPhvmz2tEp1TuIXF/No/2qjUUP2IilA== Received: from BN9PR03CA0796.namprd03.prod.outlook.com (2603:10b6:408:13f::21) by SAWPR12MB999139.namprd12.prod.outlook.com (2603:10b6:806:4e0::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Thu, 7 May 2026 15:46:59 +0000 Received: from BL02EPF0001A0FF.namprd03.prod.outlook.com (2603:10b6:408:13f:cafe::c4) by BN9PR03CA0796.outlook.office365.com (2603:10b6:408:13f::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.15 via Frontend Transport; Thu, 7 May 2026 15:46:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BL02EPF0001A0FF.mail.protection.outlook.com (10.167.242.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.9 via Frontend Transport; Thu, 7 May 2026 15:46:58 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 08:46:31 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 08:46:31 -0700 Received: from kkartik-desktop.nvidia.com (10.127.8.13) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 7 May 2026 08:46:28 -0700 From: Kartik Rajput To: , , , , , , , , , Subject: [PATCH 4/4] clocksource/drivers/timer-tegra186: Reserve and service a kernel watchdog Date: Thu, 7 May 2026 21:15:57 +0530 Message-ID: <20260507154557.2082697-5-kkartik@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507154557.2082697-1-kkartik@nvidia.com> References: <20260507154557.2082697-1-kkartik@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FF:EE_|SAWPR12MB999139:EE_ X-MS-Office365-Filtering-Correlation-Id: b03db274-927e-4cfd-bb5b-08deac4fdfbe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700016|921020|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: nn+9gQ9ogWvvnOk6E51wzQQ1etEtCP83scWwdM2lIrGjS3dbdHhgl948+IsiONkK4BuZg9jfXKpqRLfmSZvi8k0b8H7xXhvY+Zm3ZZqYdK53HzF2mlVmZaCa3XWpc1zZQZtDuYN8+Iyj5DeFiIk0gVqKdSiOw35nsWoQ0CfnYnhKibcIZNzRPxkrDZYw18YGllH9PtgRvw6ybvderaqxVYj61RA4ixiC9WujNzRV/Qzi6VvgQE1MaSpO97eDYpjWw9ODGKztd/ySMS5r8AAH9Cqay5aXOewS+oBsfkF7CqPFLScBykp6SMdGjXO3XC+0zHKm81AUbzQ6DF7NYzmQOrmieBAnR5iTau/TkfQuAz2pdlfPiUwT4OG8bjxj0Xx961m5AD63hgE/lWWELZmPtVVnmWmN13gqkSw/+N6xtwz5uqTiBxFTt6EURe6U+CFwpC71Xl2ifLooCiyb2YpZzLXiaRvQZo0orO72TPz7XjtsOXhBE2D37W8GO3ymTjGCB3iI96+lwK8RA3kTdRFcomQ5HwpsvdsdbkM1PDAAWkmVAgy24E3ztTy6LZIwBQCY+puYHAj6kAW0rBZm48/YU+8qTcJf6UeIkdudEBp5ZZo5XRh56zBd3u2pr/ewt0wRSe62eCMLEQEyhkTB1QNOre/KuU6khtdGGXTRheH+J4aFIH5gcV6EzhOkOqLPWa+RUtOZjku9YtK+R9gjzleUpWh4WI/fkpsZo1XtCqWlnQwmcZVX9SQ6+2jxqSKMJiRVYuEJJ8r5C1VSREup6AARyQ== X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700016)(921020)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vC3z8jACN2sL5VwMrIazCOBq9Zb8fvk1wk99Rmci6XvUXgUjJWoxfqXD1Sd8JmPDrGqi3BMYPdzpammNhvQsp09DiFEMUllx7ne5PjfecN5QN20DAVckWcIXjMHSvtbuR1jd8I2vTa/2x7odSSmFuTx4NNcFhfGjZ1Wkopa+RtVO4HrpeDWHF5SGhCim58xN3qNKv07A6Lmmeciv9Uaq8/rzqRcHgUgJbWbYT2z0pcix6djWgHioG80Y0iRp4PKZ0SbqHCAIsIraAqkPWZf0ARaa/8nR6NZU4k7juuNsqBfDSmhjT5gCEVGAoNyOF9aoPbZx1zZY4H5qWtGJRBfCwSxycJzBlc+uQtRUbiPhLyJyHaKMnAE73RL+/RXEwA+ZkUrUBLM+V0wa4XpXXT6NhtBns4M3BnHU3FzBhZZ8dbu/qXJlaz15qdvuddpXx08Z X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 15:46:58.7594 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b03db274-927e-4cfd-bb5b-08deac4fdfbe X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0001A0FF.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SAWPR12MB999139 Content-Type: text/plain; charset="utf-8" Tegra SoCs supports multiple watchdog timers. If the kernel crashes or hangs before userspace enables a watchdog, the system cannot recover and may remain bricked, e.g. after a failed OTA update. The driver currently leaves all watchdogs disabled until userspace configures them. Reserve first available watchdog as a kernel-only watchdog for Tegra186 and Tegra234. Arm it during probe (120s timeout) and keep it alive in the driver IRQ handler. Do not register it to userspace. Other available watchdogs remain exposed to userspace. This guarantees the system can reset itself in case of a hang or crash even when userspace never starts. Signed-off-by: Kartik Rajput Reviewed-by: Jon Hunter --- drivers/clocksource/timer-tegra186.c | 62 ++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/drivers/clocksource/timer-tegra186.c b/drivers/clocksource/tim= er-tegra186.c index dd1d1a0dd63e..78600ddeb1c6 100644 --- a/drivers/clocksource/timer-tegra186.c +++ b/drivers/clocksource/timer-tegra186.c @@ -57,6 +57,8 @@ #define WDTUR 0x00c #define WDTUR_UNLOCK_PATTERN 0x0000c45a =20 +#define TEGRA186_KERNEL_WDT_TIMEOUT 120 + /* WDT security configuration registers */ #define WDTSCR(x) (0xf02c + (x) * 4) #define WDTSCR_SEC_WEN BIT(28) @@ -82,6 +84,7 @@ struct tegra186_wdt { void __iomem *regs; unsigned int index; bool locked; + bool is_kernel_wdt; =20 struct tegra186_tmr *tmr; }; @@ -182,6 +185,10 @@ static void tegra186_wdt_enable(struct tegra186_wdt *w= dt) value &=3D ~WDTCR_PERIOD_MASK; value |=3D WDTCR_PERIOD(1); =20 + /* enable local interrupt for kernel watchdog */ + if (wdt->is_kernel_wdt) + value |=3D WDTCR_LOCAL_INT_ENABLE; + /* enable system POR reset */ value |=3D WDTCR_SYSTEM_POR_RESET_ENABLE; =20 @@ -219,6 +226,16 @@ static int tegra186_wdt_ping(struct watchdog_device *w= dd) return 0; } =20 +static irqreturn_t tegra186_wdt_irq(int irq, void *data) +{ + struct tegra186_wdt *wdt =3D data; + + tegra186_wdt_disable(wdt); + tegra186_wdt_enable(wdt); + + return IRQ_HANDLED; +} + static int tegra186_wdt_set_timeout(struct watchdog_device *wdd, unsigned int timeout) { @@ -361,10 +378,6 @@ static struct tegra186_wdt *tegra186_wdt_create(struct= tegra186_timer *tegra, if (err < 0) return ERR_PTR(err); =20 - err =3D devm_watchdog_register_device(tegra->dev, &wdt->base); - if (err < 0) - return ERR_PTR(err); - return wdt; } =20 @@ -446,9 +459,11 @@ static int tegra186_timer_usec_init(struct tegra186_ti= mer *tegra) =20 static int tegra186_timer_probe(struct platform_device *pdev) { + struct tegra186_wdt *kernel_wdt =3D NULL; struct device *dev =3D &pdev->dev; struct tegra186_timer *tegra; unsigned int i; + int irq; int err; =20 tegra =3D devm_kzalloc(dev, sizeof(*tegra), GFP_KERNEL); @@ -467,6 +482,8 @@ static int tegra186_timer_probe(struct platform_device = *pdev) if (err < 0) return err; =20 + irq =3D err; + tegra->wdts =3D devm_kcalloc(dev, tegra->soc->num_wdts, sizeof(*tegra->wd= ts), GFP_KERNEL); if (!tegra->wdts) return -ENOMEM; @@ -481,6 +498,17 @@ static int tegra186_timer_probe(struct platform_device= *pdev) if (IS_ERR(tegra->wdts[i])) return dev_err_probe(dev, PTR_ERR(tegra->wdts[i]), "failed to create WDT%u\n", i); + + /* Reserve the first accessible WDT for the Kernel. */ + if (!kernel_wdt) { + kernel_wdt =3D tegra->wdts[i]; + kernel_wdt->is_kernel_wdt =3D true; + } else { + err =3D devm_watchdog_register_device(dev, &tegra->wdts[i]->base); + if (err < 0) + return dev_err_probe(dev, err, + "failed to register WDT%u\n", i); + } } =20 err =3D tegra186_timer_tsc_init(tegra); @@ -501,8 +529,22 @@ static int tegra186_timer_probe(struct platform_device= *pdev) goto unregister_osc; } =20 + if (kernel_wdt) { + err =3D devm_request_irq(dev, irq, tegra186_wdt_irq, 0, + dev_name(dev), kernel_wdt); + if (err < 0) { + dev_err(dev, "failed to request kernel WDT IRQ: %d\n", err); + goto unregister_usec; + } + + tegra186_wdt_set_timeout(&kernel_wdt->base, TEGRA186_KERNEL_WDT_TIMEOUT); + tegra186_wdt_enable(kernel_wdt); + } + return 0; =20 +unregister_usec: + clocksource_unregister(&tegra->usec); unregister_osc: clocksource_unregister(&tegra->osc); unregister_tsc: @@ -525,8 +567,10 @@ static int __maybe_unused tegra186_timer_suspend(struc= t device *dev) unsigned int i; =20 for (i =3D 0; i < tegra->soc->num_wdts; i++) { - if (tegra->wdts[i] && watchdog_active(&tegra->wdts[i]->base)) - tegra186_wdt_disable(tegra->wdts[i]); + struct tegra186_wdt *wdt =3D tegra->wdts[i]; + + if (wdt && (wdt->is_kernel_wdt || watchdog_active(&wdt->base))) + tegra186_wdt_disable(wdt); } =20 return 0; @@ -538,8 +582,10 @@ static int __maybe_unused tegra186_timer_resume(struct= device *dev) unsigned int i; =20 for (i =3D 0; i < tegra->soc->num_wdts; i++) { - if (tegra->wdts[i] && watchdog_active(&tegra->wdts[i]->base)) - tegra186_wdt_enable(tegra->wdts[i]); + struct tegra186_wdt *wdt =3D tegra->wdts[i]; + + if (wdt && (wdt->is_kernel_wdt || watchdog_active(&wdt->base))) + tegra186_wdt_enable(wdt); } =20 return 0; --=20 2.43.0