From nobody Sat Jul 25 17:34:50 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011009.outbound.protection.outlook.com [40.107.130.9]) (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 C94E13CDBB5; Wed, 15 Jul 2026 09:31:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784107885; cv=fail; b=EjjmXq6omTEsg93XduGXPLjC3DyInVvS3wDm0rAH5ZVSVwEf5TWy1SjvZpRrGAvxqPmrnFTrF8XKMwX4HOyo0hCzR5U+kn19Zkp/PziKdvego5a7CFZwU4bah6JC5Iozb6AxuYEAVedNfK0KB8gSl8IDOohwb7EX8TJ2/MQdfCw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784107885; c=relaxed/simple; bh=1TgEMXeErXhfxxkfRcE+2U0+71rxx3lgO7sPW1apzgw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=bMumthsvjc7LDRrKyP84+Ca47hsVKyk9mksXmjvrhBxVUW535AIehbp1QjCbfNXdKpTXZ96cKZxdBhFiG7Bk3t2Sro5AFSMYOTcKt17oSWOGlMdJKxyPugjWC2OFkc0dyq022nKgeNV3e9khCLqqeWimIVeT5EYjB6wQF9qW6SE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=SIHstvKl; arc=fail smtp.client-ip=40.107.130.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="SIHstvKl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ohj+EYMLstDc0JEpOI/0ckH9HDusX5OHVCZZ7s1rrtBLoE8iV+OoMbNMHc4NGRGN7XqawV/P3IM7308nToSgSwo0yfFMORm21FLiDsIgU66tlc7SUVD7TxXyH7aN3qnCb7PkZdt8as4qhfHi+p2o4eJ5vT7S9lGVuhPZEc/f7jwRMbjmlCHcreX++/tF6znFiQ2nqFg+KZ9uicwaf3U6iXgh7Pk33KIoKQWUnRdyCHkPekiO81EvFQ2KuLtkpvVTEfhqQEdd2M7AFfIdrTLEs2omEgAa7JKKvvTrVwbuaRw+p05wi1mBkaqGi0o8rpu8XxYUZqh3rzkzyiYN85u5Cg== 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=Ne/4HzlJlC6FYrTj5GTrfvcfH6cHDf7ZYARAO6wO3iM=; b=lr/v+SXOwZFnGdOJPhA59AXLNhBHvLrORGEeiS7Em9J4OMSYrD1DU6pOc4ULgAId+tWdip+nVAjOXGa9qQG0SWnBb1/DNVBR7tj6MlCv8bMJEdJz2HBIXH4ToROZ7oJ5jrZhruzJCHxRKK7cW4V5BLXxKTqS2EVw2Ec5wbYIpn3vlwBy9cKkAo5jvPe8zk1b+uN2Q5ey47JfYhvZtOV9jS4qHKwPQI/U0VFUWS3TT6Kptk2C3Mmegf/VGNK5iCmmTo3oLHUA7DkfgOjSs9t/lZteaAGTIy5SUEUXMLMeTIj9KwFaEyWKqXnPtq/9QLV3zIqqmFon05QJOiyiMYULxA== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ne/4HzlJlC6FYrTj5GTrfvcfH6cHDf7ZYARAO6wO3iM=; b=SIHstvKlwS9T6Y9FITAGVDFZyEFzss1I5zr4IgMXq3ZzXXcnzDAenavayn898qVRiAnc7DZq5ySWXRgs2bPdXhdwtypAp4wShh9gg1maPuW7A++eEigMni9WvBqe5U59Y1u+w99TyaVZtHj4aRgRbG0VUVBH4FZOtxOhzk5HrQu1tibgX/rT19TgSxu+FVA9JsHA9QYHiEJ83IM00wCyTDdaGJ/r83mK0n3jpQyMmtBnWXwzacWfSugDAfVf8rw6lDnxT+vGMtq977Db2x3Lgso5WaFKoTiuozlF7LqbGU9Tqf9CUb+68q/Wgg4Tq3XDhmTi5/UkhiPauclQF7jQ+Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB5800.eurprd04.prod.outlook.com (2603:10a6:20b:a4::23) by AM7PR04MB7047.eurprd04.prod.outlook.com (2603:10a6:20b:11b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.11; Wed, 15 Jul 2026 09:31:16 +0000 Received: from AM6PR04MB5800.eurprd04.prod.outlook.com ([fe80::6703:fb32:63c2:a84f]) by AM6PR04MB5800.eurprd04.prod.outlook.com ([fe80::6703:fb32:63c2:a84f%5]) with mapi id 15.21.0223.008; Wed, 15 Jul 2026 09:31:15 +0000 From: joy.zou@oss.nxp.com Date: Wed, 15 Jul 2026 17:33:51 +0800 Subject: [PATCH v5 1/4] Input: snvs_pwrkey - make use of dev_err_probe() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260715-b4-pwrkey-v5-1-07e7353c319e@oss.nxp.com> References: <20260715-b4-pwrkey-v5-0-07e7353c319e@oss.nxp.com> In-Reply-To: <20260715-b4-pwrkey-v5-0-07e7353c319e@oss.nxp.com> To: Dmitry Torokhov , Frank Li , Bough Chen , Peng Fan , Jacky Bai , Ye Li Cc: Joy Zou , imx@lists.linux.dev, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Joy Zou X-Mailer: b4 0.15.2 X-ClientProxiedBy: SG2P153CA0030.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c7::17) To AM6PR04MB5800.eurprd04.prod.outlook.com (2603:10a6:20b:a4::23) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB5800:EE_|AM7PR04MB7047:EE_ X-MS-Office365-Filtering-Correlation-Id: 764979fa-3b7f-4669-b0b0-08dee253d15f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|23010399003|1800799024|366016|56012099006|11063799006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 6GW7Etlr8I7NH9aqdtabgtpJmlMXZta0/TKns4lGcWthGlBtqwYAzn5xiVRxXaDFYzlPSLqwHOw6Vs1gIxWjH7m9CyfPW6f+vgR9VpPVTlxOcetWw033u2Gz21qKBEZiJ2Fg6BvMjPq7nHa5uW79vPL/MN8T8gblUHW80ZX5K5I3kOTSVmWlYT0F0K4AthWL63PF9xK5U1tUkT96oDTcZlXE2E9xGm+TZ2Fuj8YTOgVmHuM9UOfJhQBVeAZU67Hje6eu1zinLXg5o97/otgYzi+tRxUaW4NszF+9cJCcEN3K4zr3ChpBfKs8hyWPtSdNeS+U0VOuVnzNoJfdr4rkWD7rkFPtueng3ZfWYtRtymiDO4pgpl9FpUgpPv1VfjTOO4BKDo7H9yNoYgZlo/7iwUSowHaq9j5gIJiEqmWKdDKqKVMmoOYVmrcwQ/O7RMKDWm+6+++JqM7sQFsOR1QYclDbMQ+gpSp4fDpFXBDqGkzeCENmWGx/ew3Z1bDzSn9Nz2NTbzDESOyIEqfjZKCwrUqdZJP6jaTDT6ykeBCCyC+XNob7Y590hqEH2KNbDHlwk3/Llz57sl+6j3pMetirrQYZnAQmq4gNKWupcEQmNbeQjFqqO6hbBR/Hb550e2j6+uBq4bETk9nFZpt4VWyc8xMEPdSmJ4Wk4PQHic4hzmo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5800.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(23010399003)(1800799024)(366016)(56012099006)(11063799006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RHhPWGZ5bzByMlpha3Jkc1pLUms0N0dtSHYvaXBDRkIyVUNCQWJ4azZYSkpt?= =?utf-8?B?OEszSUtrVks5VE1RRXJ6clFoeHBRQkpPYUVYVzlEZVBFSHFmZEJnK24zTzJ2?= =?utf-8?B?ajFYVmQ4cThGMlFoZHJDZHNoNFVXY3pSRXRJdTZsc1BoalNHS25aenJiMFV4?= =?utf-8?B?ZGhjaDZIV2oxbUNEK3pZYlIyTXlTV1FNZ3VYV1pOY3BnZ1Y3OFhZNjZRdnR4?= =?utf-8?B?eWlVL255OEh5OFcxT3VzUElyWlEwZG9FcEYrQUw2elRqT0JRYVQ2SDMzVTg5?= =?utf-8?B?MDlsM0hKa2NnTzlzVXUwa1VVWUxiL3h1YlpHK3lqUS9yZkNjRWpRTmlrbm8x?= =?utf-8?B?OGNXK2dFRUVtNWZLRjM5S09JN3ZONVFqWFFxRHBvdUpJaEFxN2pZaVlxMGV4?= =?utf-8?B?ZGo3d0xkMiszMVJYNUNZV2lIS3RCTWtpQW1HdDltNUllQ1V0WWUwV0FyakNt?= =?utf-8?B?RmpmZUhVekRWUW5naWxSSzNSVkNpNE1TV2ZzR2RmaEJReU1DWHdFQ1ZQaW5M?= =?utf-8?B?a2ZYazdBL0pyV2pjWUg4ODdIcWFPRHlOdXNuSHd5eWtCSnFvVmVEczlodWI0?= =?utf-8?B?WWd4N0xCcmpobUN2MHU3N2d5QlF0K1dBWEZqV1RxQWZZQXQzWlEwSXZQVzla?= =?utf-8?B?VHhZM2N1NmlGSkN5K3hSK0dNYVF5dzhMSDViaU1EekdJZlVjdU12MkcwNkhT?= =?utf-8?B?UjR1YzBZbktxelVMeUV0K1pib2pXekVqNjhYc01Nc3VZQ2dlazlSTXVFcUoz?= =?utf-8?B?NFFKMzI3UytrbEtOdFFLdE5qL2xwYXdVMlp6ZmZ0VDA4WmhEZmZEWmVROE5J?= =?utf-8?B?Sk9JSUlhNjV4YmM3d3JkbWpUMGFGUGplUVFybzdwdEZvb1hpbzQwWXdBOFJL?= =?utf-8?B?bVRScUVXdUEzSmdXUjA4SkNIRXg0UXZSTnVCWWxoVmlnTHovaEJyS1l6dEZN?= =?utf-8?B?d0YreXFFemltc0IvRlE0ZnZaVWY0K2h1TFpjYWV2cmZGaWdIZ0gvVEJLa3l1?= =?utf-8?B?elVnL1JKWkVMaVFUTXNJdFJjV1pVczNpNWJ5dXdEUEhuQUg4TElDOUZTL21I?= =?utf-8?B?KzRaZUVobEZTU1FneXlJd3FscUtiY2JlOEk5dis5YS9zdy8rOFN6L2hNcEx0?= =?utf-8?B?TXBhcldJR0dwRDBvQTlDV0pNTy9LTko2a0JOalFGNjIvaVpWYkFvNXd2bm5D?= =?utf-8?B?STJKRjhadEowMzlhNWFjMXVMWXFTWFFtSzVRbmxWeFhHME4vNFM4MXRqQi9o?= =?utf-8?B?N2lZNWg5aFZRSnFvQkdObmF0b0ZkaUtCM0lFRDYwcnF6U0YwOVE3cGtZMkxo?= =?utf-8?B?anZMMEZUTFU2UFpJSWpxd1VCNDBPWk1DUWFPZWZxYXlXbm42YUdSU0FHdTc0?= =?utf-8?B?eFRoUDk1TlRFNy9hNGhJTjYzeW1Xc1NWWkFQUUoyaXp3VGhXNk1zT2s5dmhY?= =?utf-8?B?VDE3b0NMYkhWYUFVY1dqMTc4WFd6bC9RYUlCVXBmc1oycWM4MThzcWEyeWpn?= =?utf-8?B?Z29NcW5jblNSY29nQVQxZ0lNM1pKRVFHUmNMRDlZR1RXUWhKRDY1VTYzMFZB?= =?utf-8?B?cWhnYWJ2MkMyekhtNFBlVU1HT1R6ZGZqRGpVY1pGV1dadzliUDVCMFc3eUZh?= =?utf-8?B?bTREa3lkcGhtVFJvbjFLRmw4NFcza3JTY3BKVzBROUZQMTFFTk5aQUdpTFB6?= =?utf-8?B?ZjZJOGt3TVhweko1bUZYRksrOEFBRnpVVk9Nam1NTU8zZC9tRkJ3azBJaHdH?= =?utf-8?B?bmxROFNTcVVUbEkwRHkzUkdnYU92dXhDclY0aEZPcEY1RDhLRVNOU0kvUm54?= =?utf-8?B?OTBuY3BtbzQ2Zkc0ZkxRRmhmR0NQLzFLOENOcWVXK3MwbnNSSFNueThubXdR?= =?utf-8?B?NklQR3lCS08wRUMveDZhY0xwRnBQTmlSSGVxRjMrcWw2ODRzNWxLOFJvek1R?= =?utf-8?B?dTRWcWd6dlYrRFZuUUdyZEtLVytkUUdCaUdzZDE4cncva3dvUHcrZENXR1RM?= =?utf-8?B?UzVER0Y2bEVKakFwbTJTZ2orM1FCV1R3SWVwNFowdUh2UTJSVVc4Nnl0azVj?= =?utf-8?B?ZkRuaWd4Wk5xL1FoL0FQVmhtZG0vWDgzUEMwRDFIWFFMQzdVUENTVGkvQjVj?= =?utf-8?B?RXpWSWNma1IrcE8rOEFYNEpwYlQrK3U3QVBaSENJTER5azFLaXY5cHlYNkhi?= =?utf-8?B?Umhpd29QR0V2QytnaXdMSUtUdWdvb3hxV1BlaTVNSW1XTVBvdTlzcUJKdjdp?= =?utf-8?B?WjJ2enFKTERWMDBCRUpmSy9pYVdxcEFjUzFFRzlDanRxeUgyUFdDMG52WlM4?= =?utf-8?B?Nmw2T3cxaWZXaS9KdkNlb3VwRkVKdk1lRUVlNkc0NVVkZG1SeWpqdjQvMDlh?= =?utf-8?Q?vxLihp+W6iERDz1udxJQPcz3hAuWJO+Ir4PwF?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 764979fa-3b7f-4669-b0b0-08dee253d15f X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5800.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 09:31:15.8808 (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: 5Foc7qgEIBdoUpeFs91vwbtH/Gr7OGAV1EBQeitn2YuDAo4K7ghm9o7YWTBJ2pXRUb1aJEirfBi9XiVs8vlwNNvKRGCw6rNncQQsIdDF57fP3g3AFRgMeG7/rD5dyX6A X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7047 From: Joy Zou Add dev_err_probe() at return path of probe() to support users to identify issues easier. Reviewed-by: Frank Li Signed-off-by: Joy Zou --- Changes in v4: 1. Use dev_err_probe() for devm_input_allocate_device() to simplify error handling. Changes in v2: 1. Drop dev_err_probe() change for platform_get_irq() per AI review comment= s. 2. Add Reviewed-by tag. --- drivers/input/keyboard/snvs_pwrkey.c | 44 +++++++++++++-------------------= ---- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/drivers/input/keyboard/snvs_pwrkey.c b/drivers/input/keyboard/= snvs_pwrkey.c index 954055aaf6e2..8cc6863d26ed 100644 --- a/drivers/input/keyboard/snvs_pwrkey.c +++ b/drivers/input/keyboard/snvs_pwrkey.c @@ -124,17 +124,15 @@ static int imx_snvs_pwrkey_probe(struct platform_devi= ce *pdev) /* Get SNVS register Page */ np =3D pdev->dev.of_node; if (!np) - return -ENODEV; + return dev_err_probe(&pdev->dev, -ENODEV, "Device tree node not found\n"= ); =20 pdata =3D devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); if (!pdata) return -ENOMEM; =20 pdata->snvs =3D syscon_regmap_lookup_by_phandle(np, "regmap"); - if (IS_ERR(pdata->snvs)) { - dev_err(&pdev->dev, "Can't get snvs syscon\n"); - return PTR_ERR(pdata->snvs); - } + if (IS_ERR(pdata->snvs)) + return dev_err_probe(&pdev->dev, PTR_ERR(pdata->snvs), "Can't get snvs s= yscon\n"); =20 if (of_property_read_u32(np, "linux,keycode", &pdata->keycode)) { pdata->keycode =3D KEY_POWER; @@ -142,10 +140,9 @@ static int imx_snvs_pwrkey_probe(struct platform_devic= e *pdev) } =20 clk =3D devm_clk_get_optional_enabled(&pdev->dev, NULL); - if (IS_ERR(clk)) { - dev_err(&pdev->dev, "Failed to get snvs clock (%pe)\n", clk); - return PTR_ERR(clk); - } + if (IS_ERR(clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(clk), + "Failed to get snvs clock (%pe)\n", clk); =20 pdata->wakeup =3D of_property_read_bool(np, "wakeup-source"); =20 @@ -165,9 +162,8 @@ static int imx_snvs_pwrkey_probe(struct platform_device= *pdev) bpt =3D (val / 5) - 1; break; default: - dev_err(&pdev->dev, - "power-off-time-sec %d out of range\n", val); - return -EINVAL; + return dev_err_probe(&pdev->dev, -EINVAL, + "power-off-time-sec %d out of range\n", val); } =20 regmap_update_bits(pdata->snvs, SNVS_LPCR_REG, SNVS_LPCR_BPT_MASK, @@ -185,10 +181,8 @@ static int imx_snvs_pwrkey_probe(struct platform_devic= e *pdev) timer_setup(&pdata->check_timer, imx_imx_snvs_check_for_events, 0); =20 input =3D devm_input_allocate_device(&pdev->dev); - if (!input) { - dev_err(&pdev->dev, "failed to allocate the input device\n"); - return -ENOMEM; - } + if (!input) + return dev_err_probe(&pdev->dev, -ENOMEM, "failed to allocate the input = device\n"); =20 input->name =3D pdev->name; input->phys =3D "snvs-pwrkey/input0"; @@ -198,10 +192,8 @@ static int imx_snvs_pwrkey_probe(struct platform_devic= e *pdev) =20 /* input customer action to cancel release timer */ error =3D devm_add_action(&pdev->dev, imx_snvs_pwrkey_act, pdata); - if (error) { - dev_err(&pdev->dev, "failed to register remove action\n"); - return error; - } + if (error) + return dev_err_probe(&pdev->dev, error, "failed to register remove actio= n\n"); =20 pdata->input =3D input; platform_set_drvdata(pdev, pdata); @@ -209,16 +201,12 @@ static int imx_snvs_pwrkey_probe(struct platform_devi= ce *pdev) error =3D devm_request_irq(&pdev->dev, pdata->irq, imx_snvs_pwrkey_interrupt, 0, pdev->name, pdev); - if (error) { - dev_err(&pdev->dev, "interrupt not available.\n"); - return error; - } + if (error) + return dev_err_probe(&pdev->dev, error, "interrupt not available.\n"); =20 error =3D input_register_device(input); - if (error < 0) { - dev_err(&pdev->dev, "failed to register input device\n"); - return error; - } + if (error < 0) + return dev_err_probe(&pdev->dev, error, "failed to register input device= \n"); =20 device_init_wakeup(&pdev->dev, pdata->wakeup); error =3D dev_pm_set_wake_irq(&pdev->dev, pdata->irq); --=20 2.34.1 From nobody Sat Jul 25 17:34:50 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011009.outbound.protection.outlook.com [40.107.130.9]) (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 031BF4302EA; Wed, 15 Jul 2026 09:31:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784107890; cv=fail; b=P3LyeZMXwtmOYCqFNVECoh3GDolW09RBQDxLYO3/uGR+jnvfqJSwRr6aLIWNh46LyqOFklyxp4YxGi3LTPEw5V+5RqVxi8bv3qQG+6WwB7tJ2z+QIdtAEOF6LBjT8VtmieeIrYfZ8o+oK8TSZ/YjuqrMWSwixZ+iV9MMsoBDTcY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784107890; c=relaxed/simple; bh=rewxjtOtB4zVo3O88fQLC80uyFAVvE/9qJRqO6+AUbk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Qgd/GMNHge13nRWIpvJ2EiTf7/BseKjpLpfZscRM+hE6ZlYIm7c4qf11GrRPOBdGIDZ+eVd5+xt+rs4ZXyhe7NsgxsPFkT8eRq+r1qoDS5ub3XUOSZksInfw6nmpvcuLgBXB+QPM5tjqDa3N0gOApdg0RTJ0zm8M0yFMtUaVGEU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=gRsTf14s; arc=fail smtp.client-ip=40.107.130.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="gRsTf14s" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nCGwFVG6SjXpBMk/mTnF6BCVoPPEoICkhv4+m29SG6lg5JkaVfeN1yDT9Uks6TGkWMWEk9y0eWB+0KRjp0mvTNnH2VLX7e4h2mi2Yuye3LXOCeL8YKBRHiP6Wojny97j3DEBkM/sPgx5yK8EyAa/DNiwFuhRmYANWYxnFUb7izLDLSr5o5H1GS4NywliFVyPa+QSxroFT32pAJAx/IPgijk5V5ShDdtDl/ujvgikqG9RAQFBwx9tP/nylzsRyhS65Ttul4U63prpxY/RJxl4gDY/UMMG367pU+qCeSvhb96kWFSvn3eon/Y59UZvY0rDCssYgX5uTA/zFToAc5M9UQ== 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=xAaUP6v8RLc7eCue2I1knOKf0bfgK29epdr8NxGZo+w=; b=jty6ulWZqwkJ6uggCo0bP4WcY76khsFmkDa9IhQrwUCXWJOqRuEULeOMmCzgmukRnvEnAix9CFEQB5ESdsRcoqf7mz0YP4wyJXesnlaXeoQyVd9/s14XTdCbD8gOpab4pw/WRsEjVA+G9e0tuNSk2wMd2Tz3MfHVxi+Wi0Q3ckvd++ln0P3jXzvEoWQ8rixR0JCbUxoiYVe0vV4at4LjiB8Sd3PcEm9XN/8OahuC+lpJ/XHnnWZU6BOjw/Rg5ptHXkFLO1lN0AnKSNBE46vauNrU+s5PXGxv2Q0hmzakNa6Ea3lq5dcp9o0AxjNsXd8RMze0D+dN0nHVuMG1InzzCQ== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xAaUP6v8RLc7eCue2I1knOKf0bfgK29epdr8NxGZo+w=; b=gRsTf14srYs4F8Vfw8HWzcZR7GhCcxKanH3kx7segOeMGXHojpUjoKIiFmEahOeIoKMpvH+3H7URQJa9zINJLOl6AVSWZ430MYOjf3zFiVZvFdlsi/CDlY/iSGVf4ZtJcRPuCTnFOIyVBrtPB+cSUaJltZXXISzgGDY874DL/OGme7SKOFaccmU6hPLHViu4kf03hriD/v5S77KmUmfyC/pEOpH5lSMmW1Z/7bmBdbkyXJ9Upr+oa3A/SEPZ4ErN87wlFgwYJDKSsl9Zb5wk4ZV0BIGTEXckjEuY2IS7ItvowM8T8I5WlXDmErMkB3s8ybKjCwOTcJ2F8P1CKY95QQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB5800.eurprd04.prod.outlook.com (2603:10a6:20b:a4::23) by AM7PR04MB7047.eurprd04.prod.outlook.com (2603:10a6:20b:11b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.11; Wed, 15 Jul 2026 09:31:22 +0000 Received: from AM6PR04MB5800.eurprd04.prod.outlook.com ([fe80::6703:fb32:63c2:a84f]) by AM6PR04MB5800.eurprd04.prod.outlook.com ([fe80::6703:fb32:63c2:a84f%5]) with mapi id 15.21.0223.008; Wed, 15 Jul 2026 09:31:22 +0000 From: joy.zou@oss.nxp.com Date: Wed, 15 Jul 2026 17:33:52 +0800 Subject: [PATCH v5 2/4] Input: snvs_pwrkey - propagate error code of platform_get_irq() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260715-b4-pwrkey-v5-2-07e7353c319e@oss.nxp.com> References: <20260715-b4-pwrkey-v5-0-07e7353c319e@oss.nxp.com> In-Reply-To: <20260715-b4-pwrkey-v5-0-07e7353c319e@oss.nxp.com> To: Dmitry Torokhov , Frank Li , Bough Chen , Peng Fan , Jacky Bai , Ye Li Cc: Joy Zou , imx@lists.linux.dev, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Joy Zou X-Mailer: b4 0.15.2 X-ClientProxiedBy: SG2P153CA0013.APCP153.PROD.OUTLOOK.COM (2603:1096::23) To AM6PR04MB5800.eurprd04.prod.outlook.com (2603:10a6:20b:a4::23) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB5800:EE_|AM7PR04MB7047:EE_ X-MS-Office365-Filtering-Correlation-Id: 390b537a-faf3-4b46-9810-08dee253d551 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|23010399003|1800799024|366016|56012099006|11063799006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 4kZL8nKVUUQc9UXLG0cYPK2LZFk4TXho0+7/IViw9V6z5DJyrueh8iCvNCFZE/AZOeD1KsF021eqCDEbZeWkqmRZ0G3fx0ZHrcsqUm0YZd9F8iED6FdOrG8z5UqEKyiKgbZBKVCY9FB08VkES3lf3k5bpC57FqXfUDv4asMJeV9vyzXJqZxtpl6F+AgJeoC4n131dq5V7Lc8UennQVBJ1zd+EHul6vJFGv5SX40cz4CRQDSczE27kU2OHRbdFteqvkO9/eHPuBTZx0wQ3fBTb0GEolqOGmHFT9o1f5HxchtyBSiR3gsJOt1VZW9ZTBl+/HERgtfTn5rUaB6Zgl0UGwLvZxfXXnQ3vMplF4BeHx+eGiZyKymoYdG7BXJdwI0vyH9TqkWYt9zR/8bGZ0Hzt5FKzUXtFgMkX00PhZxB5o8NyA1pbvy1U1SsbeQwXupw4qabRj+iaThK8Yg5CEAble9YDh4I5Qf1zr5uHs/TkhidSXNvsEc1oYVBuezsBDqGgDL+oSATjvyiVizLHR7wHGNVf/B03xjnyPyx0l8X5MBaEv02eRTfENYItJrVNUzdxeMlk2+fxPIgJ8OMm02YOGoQQ4w9s7r3sgElxRSBMBEa/nYjADLZrWwl1ndGqsubdWZ4jWqU0DBvO6SWFOp99QHd5BKeHqxkOnyWvs91mX0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5800.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(23010399003)(1800799024)(366016)(56012099006)(11063799006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SzZvV2F5TG9Lck5XZXA3azBsaW02SGRzSDBPclFSTW4xek4xUENIckEwUnJu?= =?utf-8?B?dU5zSlZsS0hPTTg1Mmo4SmpuSDdyZFVpd3BnK0VocjlOaGlDS1czNTQxeWVm?= =?utf-8?B?dHhtenZKWTRJZ01ObE02Zi9GTjBrb29ZVHpDQXdWZStCQThreUlxTkJPdmNX?= =?utf-8?B?UTBRZWkyNURXYVRQS0ZzamFvRkNWV3pWbDFZTlBhd2N1Y0wzajJtN1RWY01o?= =?utf-8?B?Z21xOEg4NzlDUEhtMEZZK0NqcCsyeGFVZytSQWMrSXlNMFVxQTRveDJmRUl2?= =?utf-8?B?dEM1V09UYnVBalJpY2phc3dXN0hleUYzSEU4OEEzalE0TjZZeEtxL2YyOEtS?= =?utf-8?B?ZUZjcjE2MElpMXdzb3RVRFdvMmN0MmxEYWR6dWVWUUJneHh1S0tveUh0YXNY?= =?utf-8?B?M0V5ZkNZcUxpS2pSM1l6NDg0dThISEdMMktXQjhNMW5mLzJsZ1gvaWxINFpP?= =?utf-8?B?WS95aDU2cjhuWjJ6TXkvWk5RNkpJMzF4b3VpQmhwOUxKL2oraVRsa0N1akFL?= =?utf-8?B?RHV2eDJPaHNIZTJGR2JNbjgyMzVrbm1sV1RBQmplelMzWjIxdkV0MnBPR2pT?= =?utf-8?B?cGQwclVPTWZ6OC9rL0lzMlA1WEowM1FUbXRMb2k1VXg2ZXBJbUFHbWw2WmRN?= =?utf-8?B?QmlieWFqVlQ2eEdUeFkzendhSlhjeVNCd3E4UUdpbkZmZWZockw1ZCtNMXRJ?= =?utf-8?B?dmtFK0V0RW9GSlZzbTB0SnpTUVE4WWNZbEg4c0RLUG1ZdmdIVDY2dkxmYVZs?= =?utf-8?B?aGxERnBRdGJWNTg2MkkxYlJvQmZTejVuU2dTMWFxTDRrQTFVeTRJUERtMy9G?= =?utf-8?B?T2wvWExLaDZkeWlNU0ZMM2IvdlBTbUQwekROYW12dWFwNXFEZ2Z2TGw2MXQ2?= =?utf-8?B?UXJWbUV3aTBEcUhMc1NVSHYvSHNIRVNjYkhMak9iOHFTSXNhS3JyREpkeDNN?= =?utf-8?B?YklxUWRQa0VuK21LVnFZazBNSzlpUnNkVW1nejV5RTZxUlZtcEU2dXJzUGdj?= =?utf-8?B?eHp3S3ZmR0hRazJNQjc4akVLVFo5MERrTWNJL2RKSzNEQ0puclJtSmQ0eklp?= =?utf-8?B?NExZNWV4anZ1REJYZnhpVjVOVnN5clAyMmNGUSt2L1VzRUI5ZXdKWWtLb0Z0?= =?utf-8?B?Zkc5c0xYS1p1WVVqandLMkFJLzRWQ2o5dTFJb1pjUENQRnFRTXprZjN3YkRN?= =?utf-8?B?Z2RzY3ZpVUN6YVVvR3ovUlh3d2NuRWlEOHNqM3pHWTBvaTR4cFh4S01uTVE5?= =?utf-8?B?MW1yNnBIaWRWOUxxQmthNmIvbzFza01DTXVnakUveVRIYlJFZWpUWDVUVDVx?= =?utf-8?B?dU9SZjFuMnYxRit3akJhaDdRUmQ3dk8zK3daVVZCZ2RYeUJOc05HcVQ3K3lp?= =?utf-8?B?YkxoL1hKU1ZOV25SUUNpSEVjTzE5TEM2dlMvTXIxTEptdENlS0xoUlcvaVRm?= =?utf-8?B?dy9mR0E1N3VUYi9SMzdVT2Z3cUNxUk9FUTAyNDVxOGhHd2RxdnJpU3pydjdu?= =?utf-8?B?ZmUrMzgyYWszRUs2ZzdTK29FMGxpTnFxdlZPMXFqVUJ2TTNJOGl0MHYza2Fw?= =?utf-8?B?c3JrOVlGcHN4d1VVYU9lc1JZUkZGQjZpcXRPUy9pM2l4dDhaQkxwR1EzeElG?= =?utf-8?B?N3VpclZlNC9keDdJMFI3VDBKbjd6aVpheGtub2NxbXhmNXgzc0RjVzQyZjc3?= =?utf-8?B?Ty9EdUtJTFlZMG1RblY5Nk9mMlE0M3NFZHdFRUlPVXY0R3VaaHZqNG9jaUht?= =?utf-8?B?MHZVcnNnOU9QVFI4NzdiYzR4TGdqWms4aENlZUFuNTZIZ0ZPYnlzZDRnWC9m?= =?utf-8?B?Wk5WNGJwVjRGME8rRGxrYjYyczdjQXN6OE50TVRJcFZ0RE5wZVM5VUZ4T1Yr?= =?utf-8?B?SUVNVi95T29mRG4rU3lZUGR6VzY4Y0QxNlUrbHh5SThmWHc4RWlOT3plN0g5?= =?utf-8?B?OENrTnBhOG9FK09jUkJ1OFo3VlRUbVJidjJPdkV4Y0xDalVjTmFCR25JK1Y1?= =?utf-8?B?cWJTL2hVWlZRWkFsVWl4L1BXK3lsZkl0TEM2NDZva01kVktjWkhPTHY3anZB?= =?utf-8?B?ekF4emZ1ak45NngzV0I0YU1wcFVMY1Q4b01jNVprVk53U3VXYzQzSURjdHZ5?= =?utf-8?B?RkUzTXZpRUxUNGw2WlFlTEV5cEJORWhHNlFMamRscnFmNlhwOXZLSy85bGpq?= =?utf-8?B?ZXlxYWRLSWpWbjhnQWozNDlOTmw4QXRhYjRrSGlEZWxTSTJlbndJQjBNbENK?= =?utf-8?B?QVJxR1dSR1hCZ25RWWJCS2pwSmZoalMra2cxcXRvOVhscUFUOGFsbTVKd1hn?= =?utf-8?B?T0dGdmV2LzIwN3dJRGlBVDBwbE50WE1vU28rMG00KzFXUGV6YnRXSDFySGR5?= =?utf-8?Q?vIy21ffvYCwd7LFqJxXkpec4ctZ3/CZ8ocwcN?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 390b537a-faf3-4b46-9810-08dee253d551 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5800.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 09:31:22.4904 (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: OPxTtXDZMLGW1DASe9QIScWeHr3iFeOjICToqmGa9bZGRXxZcsquBu2f2oB0HeFqJSB9AvH7KgsYmelbPEaqj5nsaa5CtjpsGEKbFzSdJMutvwGE8zdcDS0/pw7ERy6V X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7047 From: Joy Zou Hardcoding -EINVAL discards the actual error code, which breaks probe deferral (-EPROBE_DEFER) and loses critical diagnostic information needed for proper kernel error handling. Reviewed-by: Frank Li Signed-off-by: Joy Zou --- Changes in v4: 1. modify the subject description. 2. add Reviewed-by tag. --- drivers/input/keyboard/snvs_pwrkey.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/keyboard/snvs_pwrkey.c b/drivers/input/keyboard/= snvs_pwrkey.c index 8cc6863d26ed..d58bbbe9fd58 100644 --- a/drivers/input/keyboard/snvs_pwrkey.c +++ b/drivers/input/keyboard/snvs_pwrkey.c @@ -148,7 +148,7 @@ static int imx_snvs_pwrkey_probe(struct platform_device= *pdev) =20 pdata->irq =3D platform_get_irq(pdev, 0); if (pdata->irq < 0) - return -EINVAL; + return pdata->irq; =20 error =3D of_property_read_u32(np, "power-off-time-sec", &val); if (!error) { --=20 2.34.1 From nobody Sat Jul 25 17:34:50 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011009.outbound.protection.outlook.com [40.107.130.9]) (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 5CB8242F6ED; Wed, 15 Jul 2026 09:31:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784107897; cv=fail; b=apJ7WRmtf/Os4naTkoUECwIO/pNetmwp/8TxovZFn1CkGmamfIMZP5zHJuB7C3wouPpfqafxLC/Z+SSAlSTyy+UKO2nXsQ3F8cNSTdjfkErMr/gMGF78hlJMHMmo8P5H374G0Gs7z20ahlua/C2ie1kMjzeHm7OZnL5qhubHi48= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784107897; c=relaxed/simple; bh=AJQEKIoi2VhwpW49EK4+vD/T1pJyv4+nKZ8qkOyWGH0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=mzNIEKYaQi8CxK2m0mE/qvnFqku/Nl1bqOWibgsAyb3RlOTNaYFB7lq01ydMf0ZKJNGYpt3jxeKI+Rhl+H6eU9kv8r2G1AnjzCzBKbVnw7kUzxh/UcAAHk0M2YfkGVUS9ZQPjT+vBgjkbLSo5UpREEQEKjrV3G4zM3CNbbMf+oY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=WgR9nDHb; arc=fail smtp.client-ip=40.107.130.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="WgR9nDHb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vnEIOkHVG7nnNS0/EiOx0xzAf8YgaU6pWmq5GP9kZ88OUS+jDweqj1rHH8TSA1qPrk2oWuNgyHElpvYRi3NqaB7Zl201f9z6j4gtgjsRgbgYfeQRPLiHUpX1GrHYUWjPWJ7tFKpjCYmGC+69hlJ/K++lV/t0XF5K/UTsFaGDFhoaHCHSeuLrP1QK0x6dfeZs+4q276UJisApZSnXpFVgU2elL6LtM6bxAkzezYLoudvI8BFimxH9pT5lKM6gSOJ7QtAX1JrwPwEFHc/0ueGI5ajWbE7P8FtBEnusgKmc/jwSx4DkqIQL+XQXs65RswSjJvZ1pQSV+Q3LREbqhbnQiw== 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=L6YuZnggeGpAV9lnymgHDVsZ4OhqISVjDOmgKLpBagI=; b=vUwiJqDINgBmHGCPVo2CVh/EezeXFrOp7q9K0E5ZguwpgiyThBkLqRCx+le241qZ3gMU7WbdufowcMYQH4SNKhTrCWi1073dfqzCEOEC6MjDtoyxyzpCI+e41gs3DtuiORu9UqreJBjsY+qORAR9rkF3r1HAVcalcXLSyt0FpkdCLYJsTwh97MFphBc9fE6Tl4EtiGa2gRw9KDHZOFFHc2ys2LkBIkr6afBJQO1fbO/uZKWaNdUjyls8j7BnnMXDVW6pPJTwIiQrLQ9iP0qgmrDIbwFD+ejTl2+mCc64DqKYLZfJ64ismnQOGcb+8KzJD/rz2YFYzDKFko4jQTraxA== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L6YuZnggeGpAV9lnymgHDVsZ4OhqISVjDOmgKLpBagI=; b=WgR9nDHb4m9XFF3GGVVsN5X3KZXIPuudvHHNn/JaIJoUcc6Q6JvqpanXCOA6ZbCG+uiBAWY1/l647gqS0CskfgWfoZfc6veUpyoLpRYty7BlDQ260KVptAYrO0S1sy9jwgNLzmw8kl1PcT8L3wljYoQ2PWNJwngxKTqqOmqKrGkHEibuHp7kI5Uo+PQY5LZhE3SJzso0G8d7rcHhK3rQtSMoP79jz0sVdDevNwXfHZnCIRTBsfJHs3jPxcjs9pTZmuLjlP+NKtKKwHsDeUO/XHRkLa0t9/M28F/LQZbWQpLohz8BqDtVLNk3HyL3MDiXHohkLo/chKH0ljcbNLIklw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB5800.eurprd04.prod.outlook.com (2603:10a6:20b:a4::23) by AM7PR04MB7047.eurprd04.prod.outlook.com (2603:10a6:20b:11b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.11; Wed, 15 Jul 2026 09:31:29 +0000 Received: from AM6PR04MB5800.eurprd04.prod.outlook.com ([fe80::6703:fb32:63c2:a84f]) by AM6PR04MB5800.eurprd04.prod.outlook.com ([fe80::6703:fb32:63c2:a84f%5]) with mapi id 15.21.0223.008; Wed, 15 Jul 2026 09:31:29 +0000 From: joy.zou@oss.nxp.com Date: Wed, 15 Jul 2026 17:33:53 +0800 Subject: [PATCH v5 3/4] Input: snvs_pwrkey - use local device pointer to simple code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260715-b4-pwrkey-v5-3-07e7353c319e@oss.nxp.com> References: <20260715-b4-pwrkey-v5-0-07e7353c319e@oss.nxp.com> In-Reply-To: <20260715-b4-pwrkey-v5-0-07e7353c319e@oss.nxp.com> To: Dmitry Torokhov , Frank Li , Bough Chen , Peng Fan , Jacky Bai , Ye Li Cc: Joy Zou , imx@lists.linux.dev, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Joy Zou X-Mailer: b4 0.15.2 X-ClientProxiedBy: SI3PR03CA0007.apcprd03.prod.outlook.com (2603:1096:4:297::18) To VI1PR04MB5807.eurprd04.prod.outlook.com (2603:10a6:803:ec::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB5800:EE_|AM7PR04MB7047:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b302cb1-e425-4303-d508-08dee253d934 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|23010399003|1800799024|366016|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 9ns8/zIbyjerjDJEyJQcQX/Olsov14d6T8YdkTwbo+JxSRAimpmeptMN68VnpGSjwTaAZLff/2mAhhMeuyF5mi4Tdg4+GGzpIdqgbbdfzv+Vws0hua0XKD76NTBdFJZfEmGJFdVusjLm7DR2nbxmiyNyDAEmgck1ZrW/QXydkT92loQH5Gxy8PUz7OdOm2HbW3GPL4/8f/57b6LmgqdABSZp7pli0CGI7f0sg6zt7nauEQn0JcdY7ajCODOtp3CCTVgLxmNbuvOUncURPi1X7ZH/N7Pi/jQPgiuheC164Ozev61BUEeeiBWsACfZZ9XZMD7CuvExqpgQ5L7zErlUJvxQ6kbW+ZyJKjwDJ61nuNzdQ08uE1qj3m+Nq5jzZJMieyIuJ+negcd97g75dtedwGBn+NgpNvoxWEnPXNRF7XMpVh98TbuWE02+RkGT99Oanv/2Yqoh+zB9ecl1q+ilP0YZR8biUT81BDZU+Tbn+Q5N9HMsMG8DhW38f2AjLh4Yf0a7fVOE5VZDh/vDW4XRln1fLlDVWgVGb+vx9pQjBG4S6+bc98AlSaO9Xb0xNA85ZW3NPp1BXLFG7t/y6xbjoZ+Z44LUN6Jwc/3Kkk951ulQZ3XJGISg8ZTo3P3jJsehAViL73J3ih+2Ors0dfkis+mE1HhQOI3QFpU8/wM8DlI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5800.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(23010399003)(1800799024)(366016)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?S3g1djNxQTRURTdiQTNrWTYvR2ZGNGZzZldVVmxsL3BvUmVudWN2S3NNa2Rh?= =?utf-8?B?ekpoejdtODN5Vjl2OHM0UGdQTWw3N0ROOEpqdmFSYWdhaTNucWRDQ2I2OElu?= =?utf-8?B?SXU0OGVuR0UybWlrRjF2WXBsZlVKQ3B1N3ZYK2I1T0R2NmRtRS9HeGt3V3ZW?= =?utf-8?B?UUhvN1FsVU5hZStZM1d3c0oydHozVHBPM0J5cjZFWldtalY1L1BhUzBCK2Qy?= =?utf-8?B?Z2dXc1ZUdnhnYzNad0lSVCszNGhpSnViTGJ0NW40R1dBQVhseGxHb2tvNjgy?= =?utf-8?B?ZXBHUU1nd242Y0o2eWZ3bWtjOTN1QXkvVTNiVG1zTmRuNVRyUXF5RHVKN2lR?= =?utf-8?B?MnhxOFJrTXVGUTZscnVIT0RYME0wN3BCRFBibVl4RDU5RjF4SDE5UGp2RjhN?= =?utf-8?B?THNQeTl1cUMyUUR3ZTJRUlhJbGVWclpQT0IybisxSlhjeWlVc1FmK1hEWFlp?= =?utf-8?B?ZVpXSFYxQ3JwWUMzYlRwMTYxNWRwVnlqbm5CWHJVUkhPYmlHTnhGUkRxNjZC?= =?utf-8?B?Skthb21Nd3kvc3UxWk5oZVRteVREU3Y2MjJ1bGdZdWJuQUV1S1RxeW9LVFlO?= =?utf-8?B?bVpmUENjNnJtV2w5bWMwU04vV3RqdXduQnZ6eUx2QWllOFpya2RoS3hVV0ln?= =?utf-8?B?N1RaeGlETy9vYjQ1US9Sb0lyWHlrNFhNVkp0cHNLbk5nUHlxWTE0QzJnbVd1?= =?utf-8?B?Ui8ySDZJNGxHdXRZNXlzTkpWZXk3bjVuUjNGN25vUnZ3SExTbytsSzltZlR6?= =?utf-8?B?UHU1cHhRc0dHOHgrVitldXhrVGJMZkpsRkhIL0pzb0xYejR1a0hrNzFLZGtP?= =?utf-8?B?dklxWW1TWU1LbVJxeFF4QmlsMldldnNNT1g1aW9aVjAwRW5GL2dDY0ZuUVFG?= =?utf-8?B?ZVNrSXI5bHFwYXVucGdnMkFyeTJMVDJzT01nT2hEZ3BIVTMzeElzWG9UeFNm?= =?utf-8?B?V0NJcFRIUWJZdTFNczVUeC84elVpT2JQMTdzSFFzQTRrRjBDQjMydkhqZTNj?= =?utf-8?B?ZzNhSGdBbTZTeXVJcUxtQy9wMjlMMUhmY3YwYXJHeHZycTFkd1JDRUc0a25l?= =?utf-8?B?dkVZdlJRL1hOamhYVHpJeFJjT3NxQWFmOFovZmlUU1ZWNjZNYWg3QmN0cUpC?= =?utf-8?B?VVFaYTVIWmFtTXhnMFR6S2ZFRGJJV3NORU55V2I0OXVNeTFlYjZhbVJJRXZs?= =?utf-8?B?NURYbllZOXZFT3JCQWgrSWdBUStHd1lGMzBYY3o1V0ZwblZMdXowSVNMenRG?= =?utf-8?B?YmpYV08vQXZTWjdnWFFEL29hdHdkaTNZNEUySk1Dbm15SWdxeFEwVERKK042?= =?utf-8?B?NFpRZVlIdXN4bkhxdnJTY3FKNjVZTW8rd0VSZndSQ280SmxmcExLRklsUWlU?= =?utf-8?B?ZXpKK0t1UjJkd3pGWkhNR1lIb1dqZ0RUdGlTQVlBbE9UVmltekVCay9XV1p0?= =?utf-8?B?aDZ0V0NkdUFvbmoxLzJvSTFBTG1vNzY2NzFROFBXeHRRZTh3ZzhLQ1dJRjZM?= =?utf-8?B?T2hYa2VReWdsUFVMYUl2OEZWd2VTaGNtWDE3dllBamcwQlJldG5QekxpM1Jn?= =?utf-8?B?VGpIVDU3b0l4UmJNNFhOMWR4a0ZWbzNZckZVNDVXQ3pBdGhkUFh0L0k3YVhQ?= =?utf-8?B?NXVRSGhKVXYvdFFJYW1UbytUT3ZUNmpSOU9Md3ZUeEJTS0ExNDJKKzcwRnBB?= =?utf-8?B?TXFjQmtyNWJLaHUrWjNuakZGZWp3ZlNnRHhHTUx1SGNwOWJUV3owYzQxakYr?= =?utf-8?B?aDhhNHBNNTBHeHdsTDQ5ZEE1TThlbjcvd0dXMGdtNXFEa3ZaWG5IemdqZzFm?= =?utf-8?B?bmE2Um9XYmw2dGZBa2Vuc2VUTVpqMmlxb2tHYlBud0hDUGhBdy9xeThEV2NI?= =?utf-8?B?ZmJkWTQ5S2JHM2lHMGlJTHJMVjdsbU1hdEp4MG5GRjJEc3VIczloZGd3U3JR?= =?utf-8?B?R1RJYjVFdlZ6Y0I0d2MvR3RJZWVPUVlnQ2p4czFQVHgxelhVYkYzT254dlNO?= =?utf-8?B?cHBzbnJKdkpiTWFBajhnN2FNemJoYUcrcThyWi9KN1M0ZTZ2T3BzMFI3bEk5?= =?utf-8?B?V0lNMU1iZGRSKzdpbzhXSGtXQjMwS2U1T2ZuZEJ4UFhMQW5TaGRra2dUa1FP?= =?utf-8?B?ZnFoMnZkeS82OU5xRFFhWUIydjA4MFpCd0pHTGNVeTgrYUVrcE9NN0pQNThq?= =?utf-8?B?bmlpYi9IckxvZ2NtR0ZuM0xvR0J4dnRCVngvUW1qLzlkbGl1Ry94V1pRRHRH?= =?utf-8?B?QmIzRk12V0x5dW9rdUVvSDJjdmNEWVBSbS9VendUWVhMUDNINUd3eStuUGxi?= =?utf-8?B?VDlydTY0V2prVGJheGwzTGtlZnNEbzd1UUVSemZCOEpOOWVYL0ZJdnBoOTVX?= =?utf-8?Q?YH+ybQv/Me4HXZdXLzw4V1R22UBmlfnhZalq7?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b302cb1-e425-4303-d508-08dee253d934 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5807.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 09:31:29.4366 (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: UGBH7XZGK3f3ho/zTnaDB04Ane7Cj50R5WgO2VpTJTYTjR3XMiY48e+JELBwIJQAI35dYF+Q+HOC8VCFLXfksr0iuQPGY9P1A2PceR47O5TgAtM+h6lgx3olwSFNZokB X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7047 From: Joy Zou Use local struct device pointer to avoid reference the platform_device pointer every time. No functional change. Reviewed-by: Frank Li Signed-off-by: Joy Zou --- Changes for v4: 1. Add Reviewed-by tag. Changes for v2: 1. Use dev instead of &pdev->dev for devm_input_allocate_device(), which was missed in patch v1 per AI review comments. 2. Modify commit message. --- drivers/input/keyboard/snvs_pwrkey.c | 41 ++++++++++++++++++--------------= ---- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/drivers/input/keyboard/snvs_pwrkey.c b/drivers/input/keyboard/= snvs_pwrkey.c index d58bbbe9fd58..cbe44a38d2b3 100644 --- a/drivers/input/keyboard/snvs_pwrkey.c +++ b/drivers/input/keyboard/snvs_pwrkey.c @@ -112,6 +112,7 @@ static void imx_snvs_pwrkey_act(void *pdata) =20 static int imx_snvs_pwrkey_probe(struct platform_device *pdev) { + struct device *dev =3D &pdev->dev; struct pwrkey_drv_data *pdata; struct input_dev *input; struct device_node *np; @@ -122,26 +123,26 @@ static int imx_snvs_pwrkey_probe(struct platform_devi= ce *pdev) u32 vid; =20 /* Get SNVS register Page */ - np =3D pdev->dev.of_node; + np =3D dev->of_node; if (!np) - return dev_err_probe(&pdev->dev, -ENODEV, "Device tree node not found\n"= ); + return dev_err_probe(dev, -ENODEV, "Device tree node not found\n"); =20 - pdata =3D devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); + pdata =3D devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); if (!pdata) return -ENOMEM; =20 pdata->snvs =3D syscon_regmap_lookup_by_phandle(np, "regmap"); if (IS_ERR(pdata->snvs)) - return dev_err_probe(&pdev->dev, PTR_ERR(pdata->snvs), "Can't get snvs s= yscon\n"); + return dev_err_probe(dev, PTR_ERR(pdata->snvs), "Can't get snvs syscon\n= "); =20 if (of_property_read_u32(np, "linux,keycode", &pdata->keycode)) { pdata->keycode =3D KEY_POWER; - dev_warn(&pdev->dev, "KEY_POWER without setting in dts\n"); + dev_warn(dev, "KEY_POWER without setting in dts\n"); } =20 - clk =3D devm_clk_get_optional_enabled(&pdev->dev, NULL); + clk =3D devm_clk_get_optional_enabled(dev, NULL); if (IS_ERR(clk)) - return dev_err_probe(&pdev->dev, PTR_ERR(clk), + return dev_err_probe(dev, PTR_ERR(clk), "Failed to get snvs clock (%pe)\n", clk); =20 pdata->wakeup =3D of_property_read_bool(np, "wakeup-source"); @@ -162,7 +163,7 @@ static int imx_snvs_pwrkey_probe(struct platform_device= *pdev) bpt =3D (val / 5) - 1; break; default: - return dev_err_probe(&pdev->dev, -EINVAL, + return dev_err_probe(dev, -EINVAL, "power-off-time-sec %d out of range\n", val); } =20 @@ -180,9 +181,9 @@ static int imx_snvs_pwrkey_probe(struct platform_device= *pdev) =20 timer_setup(&pdata->check_timer, imx_imx_snvs_check_for_events, 0); =20 - input =3D devm_input_allocate_device(&pdev->dev); + input =3D devm_input_allocate_device(dev); if (!input) - return dev_err_probe(&pdev->dev, -ENOMEM, "failed to allocate the input = device\n"); + return dev_err_probe(dev, -ENOMEM, "failed to allocate the input device\= n"); =20 input->name =3D pdev->name; input->phys =3D "snvs-pwrkey/input0"; @@ -191,27 +192,27 @@ static int imx_snvs_pwrkey_probe(struct platform_devi= ce *pdev) input_set_capability(input, EV_KEY, pdata->keycode); =20 /* input customer action to cancel release timer */ - error =3D devm_add_action(&pdev->dev, imx_snvs_pwrkey_act, pdata); + error =3D devm_add_action(dev, imx_snvs_pwrkey_act, pdata); if (error) - return dev_err_probe(&pdev->dev, error, "failed to register remove actio= n\n"); + return dev_err_probe(dev, error, "failed to register remove action\n"); =20 pdata->input =3D input; platform_set_drvdata(pdev, pdata); =20 - error =3D devm_request_irq(&pdev->dev, pdata->irq, - imx_snvs_pwrkey_interrupt, - 0, pdev->name, pdev); + error =3D devm_request_irq(dev, pdata->irq, + imx_snvs_pwrkey_interrupt, + 0, pdev->name, pdev); if (error) - return dev_err_probe(&pdev->dev, error, "interrupt not available.\n"); + return dev_err_probe(dev, error, "interrupt not available.\n"); =20 error =3D input_register_device(input); if (error < 0) - return dev_err_probe(&pdev->dev, error, "failed to register input device= \n"); + return dev_err_probe(dev, error, "failed to register input device\n"); =20 - device_init_wakeup(&pdev->dev, pdata->wakeup); - error =3D dev_pm_set_wake_irq(&pdev->dev, pdata->irq); + device_init_wakeup(dev, pdata->wakeup); + error =3D dev_pm_set_wake_irq(dev, pdata->irq); if (error) - dev_err(&pdev->dev, "irq wake enable failed.\n"); + dev_err(dev, "irq wake enable failed.\n"); =20 return 0; } --=20 2.34.1 From nobody Sat Jul 25 17:34:50 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011010.outbound.protection.outlook.com [40.107.130.10]) (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 0A1D6432E69; Wed, 15 Jul 2026 09:31:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784107915; cv=fail; b=iL9Jxg3ckskgSSBlWGe48ENpQJ+c7LGGPUv0acZxFdTCEMqqApUBQEiW67dv1/jSTcEVAGsFAdw6/RyUj5wLq4MLEgWKoX9E370ED3Ar/qIel9q1gxaYhlg4eRMLDwh2kJfiVQQmQTea/RYMBFuX3Uqsc+UP11TWq5eJW/3Rimo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784107915; c=relaxed/simple; bh=0nMx/B1DDmadKjqga69ELH14oqYF1ypYJI7bzhCQtWc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=boVnvk1bAAQ3mhwFnum6qgPqR959HXGhYi5TytOms9ITRqTt98MEb1wwK/g3t9F3EvZVybFhirJMH4FUxK3AzckAHzcStjHcCD0vNVMY7ScSeosTAO/qxbHA1J3MGRclVxaPVROmyyhV3Il8ltxI1obWKY/f8rcQEoBh7zGpwfw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=tahjcDGn; arc=fail smtp.client-ip=40.107.130.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="tahjcDGn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H5crkhkPVczLabQmIhVneeF0ZkmCbsxF6tUrFYHSDAiSwRGM5WztbqeP3msT4sFOIdWr5Yt5r9syJ81hO7RldeaPqeGPZ4ZtwdkJ3fVjS2i+dRM7P+u0gEa7S0A8urTxjPSPkqCIsImx5s3WcwEW/DLZPVmnfEbGbWlk/g3t8Fl01wgFuokESM/XuXMfUJCZREvIKGPrc8AtO84IsGW+W305SlA0rsMNODi4jBkpsui5jfoIJJhq6BtpKvhBqcpRAaGJj6RB+cyDGUX5b9931VfiZHmA+8t6ld2IDDTs/EBbS8CbPmiyk393gb4YgG2WtJiemQ15Tl0piPQqSgy2kw== 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=w1Czf7jtLJXh8pWbETfXupF0ks30LZ/uZjW8HZ1hqgY=; b=hiDT+n9d4cc/pmUAZLZsMpXkgbNRFqxX4UvKpAggB8IV+4h+31jXzu+kIoH7y4GbBVe2YvrpaPHXAbQFHHqfgPlweql/Gaq9venqIlTSiHeAfTNTINPgLZNxsf3AjY4WOuzsQyLHbnstUSzTGHJDbUYZAdlbkiiYQzClloeDfLlILGYbMsUE7LmHD24DcbE7VeWdhTEiFiHGYCp6Jr+KnU7nONvdhVrX06AjSYdikJnKXWAqD4Cq8T8jaCPTyfrIm7qykwaafDMRhRh54PlJDaJCS9fuLg4/PVIJ0o+G7a0Rz8IFLIyGmuASamAKa7NVw7epMMW5U/ho24WkL3R+/w== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w1Czf7jtLJXh8pWbETfXupF0ks30LZ/uZjW8HZ1hqgY=; b=tahjcDGnqp4DpNUO0tDvHn/gxvEwlfsgi1IDkbjSerYolZNvrFU9nomjYOpAsX28/wzEkVCZ2SW7QGdiXb/+d6Q+Kmi59q5qTuRjxOHEGT3aPnm9f92RXdXMAfxlDrH2uV06W42XH4u1enFw84uUO9gkb51n+PR+rhlaqxKaBQEBu7k7nEwr1rEi+VEK+ADvc7e7CxEVXczFo8Zw03ecZ+L7ND8sLdq9Fry99Yyb7dkO08qmSQTvKAT7H+sp1N0lF5V8OXRmsLCGE+/DThPhFA0hrVJdKReXjmOW075I+N4pqjb4GvtsgmyyW2rzPbfrSjEEog1irUGf3e4XZUXoJA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB5800.eurprd04.prod.outlook.com (2603:10a6:20b:a4::23) by AM7PR04MB7047.eurprd04.prod.outlook.com (2603:10a6:20b:11b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.11; Wed, 15 Jul 2026 09:31:38 +0000 Received: from AM6PR04MB5800.eurprd04.prod.outlook.com ([fe80::6703:fb32:63c2:a84f]) by AM6PR04MB5800.eurprd04.prod.outlook.com ([fe80::6703:fb32:63c2:a84f%5]) with mapi id 15.21.0223.008; Wed, 15 Jul 2026 09:31:38 +0000 From: joy.zou@oss.nxp.com Date: Wed, 15 Jul 2026 17:33:54 +0800 Subject: [PATCH v5 4/4] Input: snvs_pwrkey - add press event reporting to avoid event loss during suspend Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260715-b4-pwrkey-v5-4-07e7353c319e@oss.nxp.com> References: <20260715-b4-pwrkey-v5-0-07e7353c319e@oss.nxp.com> In-Reply-To: <20260715-b4-pwrkey-v5-0-07e7353c319e@oss.nxp.com> To: Dmitry Torokhov , Frank Li , Bough Chen , Peng Fan , Jacky Bai , Ye Li Cc: Joy Zou , imx@lists.linux.dev, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Joy Zou X-Mailer: b4 0.15.2 X-ClientProxiedBy: SI2PR01CA0020.apcprd01.prod.exchangelabs.com (2603:1096:4:192::6) To DB8PR04MB5803.eurprd04.prod.outlook.com (2603:10a6:10:a9::27) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB5800:EE_|AM7PR04MB7047:EE_ X-MS-Office365-Filtering-Correlation-Id: 928692ff-58da-4076-2102-08dee253de4e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|23010399003|1800799024|366016|56012099006|11063799006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: VFTZpCaNaRyUFRbwdjunOLJd7mltsk+Ri4WKedKUTPkXDv1VIHNcdUIFkPLWj+aptzx+RqLIo/H9HPxiyVymYxzl/SesyQnTNa2+DvRhW1cdJVKYKl15aQqT4ZRFIXTLQaXw2Dw925FWAOcKUlQgOTLK4OHPaDjSuOGDP5M9yH944oQMJfXfycJAREIyjXnLbCcK9nSIqIlvtt22K8O6pcz9i0/QNo3jDl4jSHvkcOLUR2W6gpDTHhVt8mkTQHa/dOc8o6NSGLopF4fITOjHrN0PzGXh6ULymwl1Y6Xk+u1yekUvPK+1cPxYM0abBJVpjI3hwHWvPCBu4F50TEyUsja28aQQKd8HFqKQBrNlXXO1OqkyD0REPnJK2cq0wNg2MMvciQ89CKV9fyiEanWiWqoEGfIeuaezXVXuyK/KtI88AP+Vc9wPWHSBnPgVN79nZbtONFROnp9N6y62rY+V6OSP1atHhE6WkafXWNF2ApnZH7UlI99BCK3bDfpvUBxMOnULxT/tRGH99XkDdeRUywHAXqNivCcQbfR3nrpCIjlRccNxjzxGXKFsNDtvx4IlraIVtJPokKgOxn3w99UtKZLntxDUbfh0Xti2RfWKfLQtspQy694VfIZfXvxqMxrrVcvIysZDM2ZhF94qJEKfRbmwgXudB2pl721I0D/SWsw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5800.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(23010399003)(1800799024)(366016)(56012099006)(11063799006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?S1JuYnhLeFRBY0NmU3ZtWlVITzk1ODJJbVMzRjVqR0NhcUlyN2hnWG5qOFRo?= =?utf-8?B?ZlRrc1dWcVV4akcya0U3cXFFWEJOamx5V0c5dU5SbEhqKzYvdEkrbEw4NmFt?= =?utf-8?B?YlhOd0RaWkN0ZEllQ0s3TktXNjQ0Y1BDVkdLS1ZmWE02L0hPcXpIZ0Q5MGdQ?= =?utf-8?B?T29MZTlvSFlNVTIwQ09ZVDV2SGFzaENaT0h2aXhjSnFFejYyQUFIWXRHa2ZG?= =?utf-8?B?UEhZYmcxalRMYVd2cXFTQW9YamMxU0tVMWwrbThFTUN1UEM3bTJuYWpkV1Nw?= =?utf-8?B?elBXOHp4Sjl3RlRLcEJPVUtMYkVqYkMvaE1YaitBYUlURUtkUUZZRHZQK1lo?= =?utf-8?B?dzlOUDVlTzVxUXpiZ3RCc0MydjFsaWppU1dSSUkxM1hydzRSRE1xWDFQMWsy?= =?utf-8?B?dFdnbzAyVHc0K3ZQYll2SGsybDVYNjNHdlFqZnNpU1k2dHpWeVJDRy8vK0dw?= =?utf-8?B?aVNXajRFUTZTVlFxMzJFZVpWZ1NlUE5tWWgxaDB1Q2cvV1d2VTRvUWFFa1ZE?= =?utf-8?B?TU02Smo2cmwvaVppRmZmb1ZneDE0SWYzMnVXaERDSDlxYk9Ham5BQ29RWnVz?= =?utf-8?B?QnFzMWJaVjhmdGRRbkJTUEdhNEErWE83UnlFVlR6alUwd1pIUnAyUG03RzlW?= =?utf-8?B?QVZRZXNEZy9VUEZ3bHQvL3hvTWlaKzNoOGV6cXNDZkd5akxReU1ZZjRkRmNC?= =?utf-8?B?UGZmU3NqTTlQVlM0SmRrY1d0QkE5eFRmYzhsdldVTmxYdmpjd2dpZVhMbWE1?= =?utf-8?B?U1kwNFdwV3V5TWJCNjFlUEhRV0pLbHRsTEM1Z0h5KzR6UzRTL0dDWWZvV0Vl?= =?utf-8?B?NFU4OHQwbWVFNVNsNzBsSUVaRE9UbUtrRzAvZi83S0E2c3h1RS90bmNaMjZE?= =?utf-8?B?akpGQzRyd2FoNDF6aW1YNmdWNktqOWNlbkc4SDBiTWNwUDZXQ0FKM3JXY0g4?= =?utf-8?B?L1B1MmVuRGVyL1czWTVSWVBFZklqOWNja2tTVXZISnNzWDFFZzQ4MEkyN2p4?= =?utf-8?B?OWpwMXhkcFE0ZHVEa2FJUytGbkZTcUN5T3ZuM0NxSDlValpsK2V6TzB1V3BI?= =?utf-8?B?SGZVM3Fzb1RXem84Mk9VelUxeFF6dXZvK3lLMmRkOVFXMWtTa1NhWlMzOUlZ?= =?utf-8?B?bDU1SEdSME1vTEhTWS8yKzUvMjNVUmZUSUVxSjZWQkwyOWtFUzJuK3JWQnUy?= =?utf-8?B?VjI5UFR4NjJUWkJmYlRQV2prWjU0WWtWMTJqOWJIdGFwb25JblE2ZGwzektz?= =?utf-8?B?a3BLMXorQzdCVitIamcvMlJCOFlnSTRYSnFTdkJlenAxc2pSUW00YVd0Z2gw?= =?utf-8?B?cW1wL0Y0SW1mdWxzb0g2MTdQUmN4SXBjbmIzNnpLdjRrV0NXQmVXT01JaHJj?= =?utf-8?B?ZWczcC94ckNUR2VJOWJFQXBsTGFRUXpnMEdnOEFhY3dNOHdtVTRkVERaZCtW?= =?utf-8?B?SSs3K1JUb1B5azlNMHZPelovSDljS1NuNWVvWEZDWmtxWm1sZjFZUzgyU1lB?= =?utf-8?B?ZE5DdzJQU3Z6VmNpaDF5TjFaUkROY0h4SERYZVNOMTMvOU1CbUZPWHU5YjFI?= =?utf-8?B?a000OUk1NVFEMWN5d3FRMWRvaFo1VC8wNTFpOGJrc2pSVFcwR21aV0phS2VW?= =?utf-8?B?MTZHSU1NWS93N01EUmVqSW80ZUQwNlU4ekZVS2FaanJrcFZ2VGJaOHEyNnBt?= =?utf-8?B?Y0txQThOY05uU3BqaG9uTlhsbWFkRE1ramRHdTExN0l0d1lGYTY2a2VFZUxw?= =?utf-8?B?V0gyVEUzM2FENG1CMlUyN3hoNEhoeVJNZytyUEJqYUtIeGVqVC8wMnMzS0Ux?= =?utf-8?B?Q1ZLaWNubU1CWTZTN2t0OVhoL3ZvWVdEcHVqcS9HN2ducUVaZHA4dmxldmtN?= =?utf-8?B?M2hidjhFQitUekNoSUxTN3ZrNmpxTDdMR2RLMm5oMFlYeXdjYmVpL1VReEQv?= =?utf-8?B?Z2FqUjN1QWNIaUdGM3I1VXJZVGVLek5Rd20rNUtRRmZBSmIyS3NSeW5oQVh6?= =?utf-8?B?N3JDeVd1RUxVaUZVWDNSUXVPYmhQZ0pTQjB1MGo1cWJHY1dNb0d6OHBCdXRM?= =?utf-8?B?MG5qS2M0OS9PVVFLa1NZUFBiN3Ura1ZISSttbUxVSis3UWJVVWJTS001TkIy?= =?utf-8?B?RUtCOTNNeXBHeFdtWmtkaXl3eENlNlMvT0dVNlhZZTRIUFJPMnYrVzljb1M2?= =?utf-8?B?amRlV1RZK0hBaFY3TTJDaXFKR2NWMkhxclE0OWtjR1RZNCtkY1Vsdyt6VkZY?= =?utf-8?B?Q0Z0V3BYem13TWhyV2hjVE05UnBIRlAyVEJuWDdlRzJvQ3Q3STJCTUhrNktx?= =?utf-8?B?STJCV3lvZHB6K0M2clVaZkNUL2tKL3ZpTGZJN3g2K1UxUGErMXFBMkFrS04v?= =?utf-8?Q?iKTIAAG+Ksfdole5Hu59a0k6+hVx/ZKwCP+Fp?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 928692ff-58da-4076-2102-08dee253de4e X-MS-Exchange-CrossTenant-AuthSource: DB8PR04MB5803.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 09:31:38.0222 (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: Mii95toH/U17qL8olxFeHApGtfXpXFNcZlaUJq1VbF7lNoBNWEcLtGwfXfYGQP4a1umiAdhlFD2HpE0ogzVpTLEFIs0yYqUbpO1Xdq4mfPGOau+ABYYihGZgX81mcC7/ X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7047 From: Joy Zou The driver implements debounce protection using a timer-based mechanism: when a key interrupt occurs, a timer is scheduled to verify the key state after DEBOUNCE_TIME before reporting the event. This works well during normal operation. However, key press events can be lost during system resume on platforms like i.MX8MQ-EVK because: 1. During the no_irq resume phase, PCIe driver restoration can take up to 200ms with IRQs disabled. 2. The power key interrupt remains pending during the no_irq phase. 3. If the key is released before IRQs are re-enabled, the timer eventually runs but sees the key as released and skips reporting the event. To prevent event loss during system suspend, set a pending_press flag in the interrupt handler and report the press event from the timer callback when the flag is set. This avoids out-of-order event delivery and keeps the existing timer-based debounce mechanism for normal operation. Signed-off-by: Joy Zou --- Changes for v5: 1. Replace SIMPLE_DEV_PM_OPS with DEFINE_SIMPLE_DEV_PM_OPS and remove __maybe_unused from suspend/resume callbacks. 2. Use pm_ptr() to wrap pm_ops pointer in platform_driver. 3. Replace suspended flag check in interrupt handler with a pending_press latch: set pending_press in hardirq context, consume and report the press event from the timer callback in softirq context. Changes for v3: 1. Add spinlock for pdata->keystate and pdata->suspended per AI review comments. 2. Replace hardcode value 1 with local variable keystate in input_report_ke= y() under suspended. Changes for v2: 1. Add a boolean variable suspended and PM callback functions to replace the use of the is_suspended field per AI review comments. 2. Move event report handle to else branch in suspended state, since the pdata->minor_rev =3D=3D 0 branch has no debounce detection per AI review comments. 3. Modify the commit message. --- drivers/input/keyboard/snvs_pwrkey.c | 72 ++++++++++++++++++++++++++++++++= ++-- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/drivers/input/keyboard/snvs_pwrkey.c b/drivers/input/keyboard/= snvs_pwrkey.c index cbe44a38d2b3..970c7d65bd57 100644 --- a/drivers/input/keyboard/snvs_pwrkey.c +++ b/drivers/input/keyboard/snvs_pwrkey.c @@ -39,6 +39,9 @@ struct pwrkey_drv_data { int keycode; int keystate; /* 1:pressed */ int wakeup; + bool suspended; /* Track suspend state */ + bool pending_press; /* Key pressed during suspend, report from timer call= back */ + spinlock_t lock; /* Protects keystate, suspended and pending_press */ struct timer_list check_timer; struct input_dev *input; u8 minor_rev; @@ -49,14 +52,38 @@ static void imx_imx_snvs_check_for_events(struct timer_= list *t) struct pwrkey_drv_data *pdata =3D timer_container_of(pdata, t, check_timer); struct input_dev *input =3D pdata->input; + bool state_changed =3D false; + bool pending_press; u32 state; =20 regmap_read(pdata->snvs, SNVS_HPSR_REG, &state); state =3D state & SNVS_HPSR_BTN ? 1 : 0; =20 - /* only report new event if status changed */ - if (state ^ pdata->keystate) { - pdata->keystate =3D state; + scoped_guard(spinlock_irqsave, &pdata->lock) { + pending_press =3D pdata->pending_press; + if (pending_press) { + pdata->pending_press =3D false; + pdata->keystate =3D 1; + } + /* only report new event if status changed */ + if (state ^ pdata->keystate) { + pdata->keystate =3D state; + state_changed =3D true; + } + } + + /* + * Report a press event latched during suspend. If the key is still + * held, state_changed will be 0 (keystate already set to 1 above), + * so no duplicate press is reported. If already released, + * state_changed will fire next to report the release. + */ + if (pending_press) { + input_report_key(input, pdata->keycode, 1); + input_sync(input); + } + + if (state_changed) { input_event(input, EV_KEY, pdata->keycode, state); input_sync(input); pm_relax(pdata->input->dev.parent); @@ -92,8 +119,17 @@ static irqreturn_t imx_snvs_pwrkey_interrupt(int irq, v= oid *dev_id) input_sync(input); pm_relax(input->dev.parent); } else { + /* + * If the key is pressed during suspend, latch it so + * the timer callback can report the press event in + * softirq context, avoiding out-of-order events. + */ + scoped_guard(spinlock_irqsave, &pdata->lock) { + if (pdata->suspended) + pdata->pending_press =3D true; + } mod_timer(&pdata->check_timer, - jiffies + msecs_to_jiffies(DEBOUNCE_TIME)); + jiffies + msecs_to_jiffies(DEBOUNCE_TIME)); } } =20 @@ -151,6 +187,7 @@ static int imx_snvs_pwrkey_probe(struct platform_device= *pdev) if (pdata->irq < 0) return pdata->irq; =20 + spin_lock_init(&pdata->lock); error =3D of_property_read_u32(np, "power-off-time-sec", &val); if (!error) { switch (val) { @@ -217,6 +254,32 @@ static int imx_snvs_pwrkey_probe(struct platform_devic= e *pdev) return 0; } =20 +static int imx_snvs_pwrkey_suspend(struct device *dev) +{ + struct platform_device *pdev =3D to_platform_device(dev); + struct pwrkey_drv_data *pdata =3D platform_get_drvdata(pdev); + + scoped_guard(spinlock_irqsave, &pdata->lock) + pdata->suspended =3D true; + + return 0; +} + +static int imx_snvs_pwrkey_resume(struct device *dev) +{ + struct platform_device *pdev =3D to_platform_device(dev); + struct pwrkey_drv_data *pdata =3D platform_get_drvdata(pdev); + + scoped_guard(spinlock_irqsave, &pdata->lock) + pdata->suspended =3D false; + + return 0; +} + +static DEFINE_SIMPLE_DEV_PM_OPS(imx_snvs_pwrkey_pm_ops, + imx_snvs_pwrkey_suspend, + imx_snvs_pwrkey_resume); + static const struct of_device_id imx_snvs_pwrkey_ids[] =3D { { .compatible =3D "fsl,sec-v4.0-pwrkey" }, { /* sentinel */ } @@ -227,6 +290,7 @@ static struct platform_driver imx_snvs_pwrkey_driver = =3D { .driver =3D { .name =3D "snvs_pwrkey", .of_match_table =3D imx_snvs_pwrkey_ids, + .pm =3D pm_ptr(&imx_snvs_pwrkey_pm_ops), }, .probe =3D imx_snvs_pwrkey_probe, }; --=20 2.34.1