From nobody Sat Jul 25 20:08:04 2026 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A49E348C76 for ; Tue, 14 Jul 2026 05:39:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784007594; cv=none; b=eZkXLCFNg159HAThDFmZUg57kAdFvRlD7vc01byrB2BlEpi2f4hISQT6F4eVYpo9lCKNLb9VHwRUdip3LV/URWMrBoFp5KUVobmeAyzYbwWFu21i6gf8UTwIuKyHe7KJCxkQvSEDbrX37cktpicWBWA4+xXZssjGES3y3b3TAjM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784007594; c=relaxed/simple; bh=O+zpxtco1vGs4iQLGtpBVCp8TNbvWelI5pjKpHMtF7U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EbI/oR1YfLwULP/0TLeqVguDmoYZjrnbqiI9YX7RVXtmBqS3+LRoNEDcUzOD5yXwIIjeOIkUOnd/TFdyw0QfD6IEwGDHiMU+bsjyDpDu4Gt22yU98ksX0/4tpvYGs7WOMH6IoJFByuS/TZ0kcHDpvoEBc9vKN0IdJlQ9ytEnU1k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NqWvptyD; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NqWvptyD" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2cc891373e0so45838555ad.2 for ; Mon, 13 Jul 2026 22:39:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784007589; x=1784612389; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=6vLs2pnpyfUpM4296TeOwGpRPQVn2UEDthdemoKxSj8=; b=NqWvptyD7Oa+f48RRfC4Hoex2LU+fTylCSYa5xZmTKL80O3P+R2W32n4/eekjYJ3NX fhPwi7LVAt5yVUpLyZ3B9Vif/FrMtl1MpXu4kQUZZvokONFDUKGpHYJgZW4LKkIo5/oh Eqi2uyhF0sE55kizG7v5xA8uFWPlWxLWYUuoTGxbi3E2DAnZEfvef5V0xEs95BSL+7M2 SR59mQ+rECU8wS1FFKToodyDyWRe7ufjGSI+fYyCve5THkUPDGg/mouTjF0hGnCa/grd gTkMqWW/DOY2armDF5d9plrXw8PF1Tuh4f1z/QtHPGO4W3Bx4UqxgUdnoyGoYfVfSY/d uYpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784007589; x=1784612389; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=6vLs2pnpyfUpM4296TeOwGpRPQVn2UEDthdemoKxSj8=; b=AGezCGllSBV8haZI0TRHTe4A+NJEddWNcvBdh6kKxWckPH8LP5N40lJbquq1ftDJPh JBlrHApWE7+v9OoUgG0tFw9O4luPuopyLr0VuRSWha3rmnZbqAfBjfprNUAzOAEhckPm o+QmU1fAdGwMxQxveZlWRnyJWYOhb92CJ7E4CtUKNVxyJ1isXe5szT2PU4WBuW6abA7P 10R9rogF0/FnWLGWZMZyDFwgNB6zYgHNpuAt+szOHEtnsg826CHeJBwJk2INIcqCty8R 6kWuQ/S5g58jtynnyOFby/3JjcpV6NsuA6xCSuYUC1vhwRQZYzJjPztj04RG1o7W2T6e +kDQ== X-Forwarded-Encrypted: i=1; AHgh+RraqB2N3vWgLa3JwdB//r8Nucu6x15S/mRzoVANiavb+Efl2zetKLvHOHIBi8QMyRTEZfmYEyn9XmE73dU=@vger.kernel.org X-Gm-Message-State: AOJu0YyYoxJ7SQ9Pz9ilF5aMr8m+GGv6hBpr800sgvybc70Z1s0q1LcW El5N9nAL3OnKWEmtSumRl/GTmPhjD7ELSW8cOeG/I07/ltyvsClM8aIV X-Gm-Gg: AfdE7cnvUo52Lc6tLBGxzcVETF2CDC/5HQInzxOdZkYGiNy7I+CdX5sxyFypVsFACrF DPAakcEhcv1oM7wpiqg5FTvGwhmg0V5NMzPnUtZcTIj3O46Nk+QbpCjTQ+E1XdSB71QBvSuwKbf y2lSVcde4BHjfAckjpp5ONQw48rL5aTia7uhcHK1D1rPnQ4VLCmxO3qD4elTecrBUoKcHKVxTKh 3NvJ5nTOu5mlwSqs9dMkkbE/8wW85/rg52PnSruGksGBs29/GmhaHcu4WLAH4seBJuBsoPY9Krc 59f8K52cxuTF41dVrOrwr9mJlTD1NHCzKtgTV48DV3OQ8gOINZBCr5vtHNb3TfeUeK3Gou2eUk1 p/DKHRJCr2SZC8qWxjUG9DpS1KrQp7xUWe5DdKAoAphSQB/RP3Q8o0fNWFNL90mVL59K+nvSDPc VQAW0mmqKvweaL87zsRDddb7unAjd0INKgkYITUc8UKHdQGZofI3EwUlegx/rDL8ylDpoZwmfDD ags3lrmNk5ZLrk= X-Received: by 2002:a05:6a21:151b:b0:3bf:6c04:a812 with SMTP id adf61e73a8af0-3c110b2d86emr12502322637.51.1784007588911; Mon, 13 Jul 2026 22:39:48 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:e15f:5d5f:580b:f2e9]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13b9a67c217sm18127165c88.8.2026.07.13.22.39.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 22:39:48 -0700 (PDT) From: Dmitry Torokhov Date: Mon, 13 Jul 2026 22:39:37 -0700 Subject: [PATCH v2 1/3] Input: samsung-keypad - clean up wakeup configuration logic Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260713-samsung-kp-irq-v2-1-acc84b6daf9a@gmail.com> References: <20260713-samsung-kp-irq-v2-0-acc84b6daf9a@gmail.com> In-Reply-To: <20260713-samsung-kp-irq-v2-0-acc84b6daf9a@gmail.com> To: linux-input@vger.kernel.org Cc: Krzysztof Kozlowski , linux-kernel@vger.kernel.org X-Mailer: b4 0.16-dev-b242f When checking if the device can wake the system, we should pull the device_may_wakeup() check to the caller instead of repeating it inside the toggle_wakeup() handler. Furthermore, when configuring the wakeup, we should safely ensure we write to the registers in the correct order: configure the interrupt receiver before enabling the peripheral's wake functionality, and vice-versa. Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Dmitry Torokhov --- drivers/input/keyboard/samsung-keypad.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/input/keyboard/samsung-keypad.c b/drivers/input/keyboa= rd/samsung-keypad.c index 17127269e3f0..a578f429d100 100644 --- a/drivers/input/keyboard/samsung-keypad.c +++ b/drivers/input/keyboard/samsung-keypad.c @@ -492,15 +492,14 @@ static void samsung_keypad_toggle_wakeup(struct samsu= ng_keypad *keypad, =20 val =3D readl(keypad->base + SAMSUNG_KEYIFCON); if (enable) { + enable_irq_wake(keypad->irq); val |=3D SAMSUNG_KEYIFCON_WAKEUPEN; - if (device_may_wakeup(&keypad->pdev->dev)) - enable_irq_wake(keypad->irq); + writel(val, keypad->base + SAMSUNG_KEYIFCON); } else { val &=3D ~SAMSUNG_KEYIFCON_WAKEUPEN; - if (device_may_wakeup(&keypad->pdev->dev)) - disable_irq_wake(keypad->irq); + writel(val, keypad->base + SAMSUNG_KEYIFCON); + disable_irq_wake(keypad->irq); } - writel(val, keypad->base + SAMSUNG_KEYIFCON); =20 clk_disable(keypad->clk); } @@ -516,7 +515,8 @@ static int samsung_keypad_suspend(struct device *dev) if (input_device_enabled(input_dev)) samsung_keypad_stop(keypad); =20 - samsung_keypad_toggle_wakeup(keypad, true); + if (device_may_wakeup(dev)) + samsung_keypad_toggle_wakeup(keypad, true); =20 return 0; } @@ -529,7 +529,8 @@ static int samsung_keypad_resume(struct device *dev) =20 guard(mutex)(&input_dev->mutex); =20 - samsung_keypad_toggle_wakeup(keypad, false); + if (device_may_wakeup(dev)) + samsung_keypad_toggle_wakeup(keypad, false); =20 if (input_device_enabled(input_dev)) samsung_keypad_start(keypad); --=20 2.55.0.795.g602f6c329a-goog From nobody Sat Jul 25 20:08:04 2026 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F831348896 for ; Tue, 14 Jul 2026 05:39:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784007595; cv=none; b=hmIEBwee89H6cvCq0gGnbcbcIGGlf2wmozZUrxMti3TdR/4Cr8TLuyIK0saKGYYYBPJgtnl1G0MwrWiQscJShTk4mrh151UkFifya3Xj8Fidu+Dp8/8aLXc8jeAfBZVVhiEL9ej+mp7s1uhdiOP4uh07CzFesG3Z9RYWxKjZOl0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784007595; c=relaxed/simple; bh=ksw10MQovv3Metf03wMB728pff5hzZhCYxZu07ghQIc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pPQqk35wNXOOzQlZakAVfK802Ok7fCZsFVYBdAPFZ2cO9Sh2hfHJ2cxv77On2BOqDOyGsVlqP/2YToJxMC3nNwW0KM1OXSo3TrqreUwtacBhhlZ4HOEuoB4Zy6ViunCyGKhTQVWlg9Sm81I4nddNlEdrTD2/eymeOvgk7rmZ+h8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=qINKFo6O; arc=none smtp.client-ip=209.85.215.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qINKFo6O" Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-c999f162c9aso2308984a12.3 for ; Mon, 13 Jul 2026 22:39:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784007590; x=1784612390; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=k2lHS08yiSSbdpwwu4OaOpdnqnXLqyVO0+OVfh2Ctyo=; b=qINKFo6OpNVBoCHje1Zg5mGB1zsj3VPN6BlxI4hGVMD0HTS3i9ITxc7QZJhI9OTGG0 5YAkCY/7y7t5PiQ6UavnNAlrY2J8i4BQk6FHniyo4dv2x1KXNxFiqr7vUttjLI/d0ybO Z6rGGLfuhZnTCgPKs6rJc0MNJA98biWybOgAqv46mnL51brlvvlJHDbbvhW7bX+44sQP sfxVVgdALaEtPMv5sJbaAvVSzBHYoZGfCJR/RaKz71wMWTkTOrf9uqUutmJa/xnLxEH9 WbiRaDwvuNaEpct/OGSpkEuvURDNUXmDHj29CZMjc0M7VjWlVWiSbAFV6j/+RQgEsSaw 87rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784007590; x=1784612390; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=k2lHS08yiSSbdpwwu4OaOpdnqnXLqyVO0+OVfh2Ctyo=; b=JDHNyVB5cZZw5RXZ7DlnAq115b+1suRa2R7np/2ADwL24OO1koBIcbl16Z8eyuKxcE 2IoYlWa3cOhOzXr6vdSRvWdkQmnZPQRapMNa0CEIprLqy37XRnIrJ/rUXf0sHaiV31+P yiptaNWMBdzoLfvU7p1U3OXw7LTun6AFiDokIy6lynoyrJ+oZVlZCzxerEhT/DX8RiDs p9HvexY3Q/PQUCXRhwqtr7h02EzDKjd/zQ2njWqC9cXNlW39GKU1CSPmGD/D/CvVnUbz +2ypemI91gHpad+24aOmwWX+FRH/uuEjQZ2cMSewTiB9DOkzhLiys99VIFuaFdXiNrFF 0SCg== X-Forwarded-Encrypted: i=1; AHgh+Rq+AWxH6HHAMRCQME3VaqzV//OSi3ErYfOkB/Uj4GlkwhjG8I3QiDsd0k/H+G0KDwtKveklGYZM+pxYe/M=@vger.kernel.org X-Gm-Message-State: AOJu0YyUMe2Iu6+WXEriaWWyCBDvg18pYLho7hRKmBIimO7YDqGTz+gy sCpbV6IOUEHzX7V0Lu8Kzuh7KuImARxTU7/6YrJbCVr2lxPkSPQ2PBlk X-Gm-Gg: AfdE7ckMOi/JWAYjxdV41MjM0iZ538uOZ7/GdJSTufMTWuVchzzqBhuSPb8JBWKuNX6 icvqi8Vi25BuRWN0pzEuPDx1d7JtNgG6+NBCdAe4EiidPRb9n7IoA0OL+LVNNc91E/zDM3c0McC EP9NWV+IM87maPAGm6QOzlxiD5OkKBHBSj0QW1gntoA8j64M72dy7Y2YHUUv5QrNFO09yYOIvt7 sqEnkczNuxUwCDmYP8QbgnjVnmCJSLfCrir1IJskK90Bu9ZB2A5n07mg/YK9VF6bqAecj5Je/4U ilZaR47g9rSZ5xdVNJCEyN9mrE0cNjFR+SUn8LN+oMnQbTPlezQZkfDlukIy7vm3GhZF3vYXobn RZo7EZbWFQ+YDEh8xj5O1B8Z66cr8wR7MAghBhRsZoexO437uOxShR3so5+1Sls3St2625mgIVD wlRdD0eVHiO/H1N7XSqx+YZDy+zZk+moO5AXj/E6QuFggiaAK+aHFcycytJy3Y2ZkBl8dU/gbBI D8J X-Received: by 2002:a05:6a21:320b:b0:3c0:9c1a:8939 with SMTP id adf61e73a8af0-3c34d8b7157mr3038230637.65.1784007589978; Mon, 13 Jul 2026 22:39:49 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:e15f:5d5f:580b:f2e9]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13b9a67c217sm18127165c88.8.2026.07.13.22.39.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 22:39:49 -0700 (PDT) From: Dmitry Torokhov Date: Mon, 13 Jul 2026 22:39:38 -0700 Subject: [PATCH v2 2/3] Input: samsung-keypad - keep interrupt disabled while closed Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260713-samsung-kp-irq-v2-2-acc84b6daf9a@gmail.com> References: <20260713-samsung-kp-irq-v2-0-acc84b6daf9a@gmail.com> In-Reply-To: <20260713-samsung-kp-irq-v2-0-acc84b6daf9a@gmail.com> To: linux-input@vger.kernel.org Cc: Krzysztof Kozlowski , linux-kernel@vger.kernel.org X-Mailer: b4 0.16-dev-b242f The driver requests the interrupt during probe, which by default enables it. If the bootloader left the keypad interrupts enabled, or if a spurious interrupt fires early before the driver is fully initialized and clocks are enabled, the interrupt handler will attempt to read registers and may cause a synchronous external abort. Fix this by requesting the interrupt with IRQF_NO_AUTOEN, keeping it disabled during probe. Enable the interrupt in samsung_keypad_start() when the device is opened and ready, and disable it in samsung_keypad_stop() when the device is closed. Remove the redundant re-enabling of the interrupt at the end of samsung_keypad_stop(). Additionally, manually clear the pending interrupt status during system resume when the device is closed to avoid immediate resume. Fixes: 0fffed27f92d ("Input: samsung-keypad - Add samsung keypad driver") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Dmitry Torokhov --- drivers/input/keyboard/samsung-keypad.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/input/keyboard/samsung-keypad.c b/drivers/input/keyboa= rd/samsung-keypad.c index a578f429d100..a51f0f639e9e 100644 --- a/drivers/input/keyboard/samsung-keypad.c +++ b/drivers/input/keyboard/samsung-keypad.c @@ -183,6 +183,8 @@ static void samsung_keypad_start(struct samsung_keypad = *keypad) writel(0, keypad->base + SAMSUNG_KEYIFCOL); =20 pm_runtime_put(&keypad->pdev->dev); + + enable_irq(keypad->irq); } =20 static void samsung_keypad_stop(struct samsung_keypad *keypad) @@ -206,12 +208,6 @@ static void samsung_keypad_stop(struct samsung_keypad = *keypad) =20 clk_disable(keypad->clk); =20 - /* - * Now that chip should not generate interrupts we can safely - * re-enable the handler. - */ - enable_irq(keypad->irq); - pm_runtime_put(&keypad->pdev->dev); } =20 @@ -412,7 +408,8 @@ static int samsung_keypad_probe(struct platform_device = *pdev) } =20 error =3D devm_request_threaded_irq(&pdev->dev, keypad->irq, NULL, - samsung_keypad_irq, IRQF_ONESHOT, + samsung_keypad_irq, + IRQF_ONESHOT | IRQF_NO_AUTOEN, dev_name(&pdev->dev), keypad); if (error) { dev_err(&pdev->dev, "failed to register keypad interrupt\n"); @@ -499,6 +496,9 @@ static void samsung_keypad_toggle_wakeup(struct samsung= _keypad *keypad, val &=3D ~SAMSUNG_KEYIFCON_WAKEUPEN; writel(val, keypad->base + SAMSUNG_KEYIFCON); disable_irq_wake(keypad->irq); + + if (!input_device_enabled(keypad->input_dev)) + writel(~0x0, keypad->base + SAMSUNG_KEYIFSTSCLR); } =20 clk_disable(keypad->clk); --=20 2.55.0.795.g602f6c329a-goog From nobody Sat Jul 25 20:08:04 2026 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BD4EA351C0B for ; Tue, 14 Jul 2026 05:39:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784007596; cv=none; b=YeoxTW8U9h20OFp0d3dLD5NOBN3FaJyttYARg9sUhwU7jVR1tqpx6vGBlVOsPKJcDQAQjoVwQDDMmIZEidQ3/QiH7i6BHAgyqRC5KjwvHj7KyVzXaGUdH4E7aVzlq/4V3ieWGua1V9zBsKDShTvEL7iV5dSgy8hm5gCH4CfxeQw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784007596; c=relaxed/simple; bh=dAktNI0ywwV7Ui1PNrhlu9qMQfmJlP/Ob++z04sLTSA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZvOYrhy/dLWJZuTHeZKsIsj6XVN1Vs1aH1XqMgplHZp+rycHMsrlrzN/TPuYpqZu5LtXzCk9NsrgjlHs05zC17Ayy4VSpmvFxSUT6jpm+LnV+KTfZDZulh1Efzz3DMdXvQj7mcX9mkviCN2RKWCBfmba2wC51r+9xhsbnUTjlic= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SEFv0YV+; arc=none smtp.client-ip=209.85.216.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SEFv0YV+" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-38dfe7eb825so512801a91.0 for ; Mon, 13 Jul 2026 22:39:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784007591; x=1784612391; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=8Hpfl3qQrnbgXRzky8j4lTj5LtUOfsjsIX2OOcbfit8=; b=SEFv0YV+T24O0lhWBpsUD6gRLb4EGNiRkz8H+Z30B/PejXIXncBhCf2g4GxYIeNEge M8dJopFPkX4TzKVbItSZ/VmytTrIs6WTucwpVG+kdLXKd0NssFrCt+SGOuojWVLkGpy9 aR4Fka4HU3cu1juv1u5Lxgk9/3UrEmq+NiF7YWUiq/CceRG9hoDilAIJ6RQZjNN9yQUF ouFSBXs8R0EWIucMwJzHII1tmxVVxbP7gv4dKUibYWTutUrYv0C+PIWq/1zXV0/fX9LU xJm9GazGAa7h0Dz0D3jPzSZYXWt/dTtguDwuU/1llH/p/iR6/Mzn/AX1QMmQrSlo4vNI aggA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784007591; x=1784612391; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=8Hpfl3qQrnbgXRzky8j4lTj5LtUOfsjsIX2OOcbfit8=; b=sucLq5bBorBb4wtdLR9audS2tGVhgsHXrnXKRMe5MNj8fVmJiimMFVC1VeVHqGSJy2 ZF8BGBUyS73XkCcFrK9eDoC1l7t88T7r0tBtJ4e4KA4kDTXZhrUv7l76x/1G1tsUjeVK oW42yO/Wdsxk20YJM0Vxt4y8/OLQQzOr8mXT/pdEmjDFhuSjJXj/v/86COMqfU+2hwcw +AY6H4cX9mal6gP4hGQIrmVoLDDVmC6xothqma7qWNwQY3cZnAHlOcrGA4hQ02jTG4MW uuZ2r3nvIMikbTb9y85h4ZBZ5MQOoXA+2iqZbqjQOpar6uAwVdIhoEOS6u1Zru1rYlw1 0udg== X-Forwarded-Encrypted: i=1; AHgh+RpKiH0nAW0o7zmh4WeMpyl0odzMB0ClZG3SHBekIR5gjLe+Mztk2LMdpFq8bEGq7SkDX1QFq0t10gKG6+I=@vger.kernel.org X-Gm-Message-State: AOJu0YyXQbbCUqdDgdYPlDdGzm2r3+i+oNsJJb7ebKNXJJ8L22G+ikp6 nCpXWEgDYKOQ11vD6yEJuYYLjapyklYJ9m0eUdzu2Yyv7SKPKSZymI5W X-Gm-Gg: AfdE7cljcjylbwpA+MaMVXNfyJgITf9dVhEPaOcKNnYzAXfW2wokCSJUb6GVUOX4544 80DkFeNC5roDsIKA7r9yYRlTfL6KYU+ZLwS8YJ4oDZq5aT5OULpviHVaChdM4Euq3U3rw47e0Rh UQL+cyC2h0RSFN2GyZFjDUldwvdhrU+v16lBzhBiM/r7z8udv8pzMcmFhpEiQvixNrf9GlTH6SG U7xmJj7vxxAi7GyaRPUGbpjzKkY+sEYV8vNhfq3N6HjgZCl0ETRkDLOj43FsQgEB+TdqFIgWA0Y UEr+zw+qUD3YqapgotXxtM4gD0npkeVJCSu6KRHXIYFhHZ2u1dy9k0TQcR5jeiL+T/6Y3hbmsOv sfuFPtcrg1P41buEdd1Xjf20+HF4TiA4+Gf5ekkgeEZJhSTswHrRzeWw0efkap86+XnPacaghpp zrFKgu6zI7n+ch90ZeI3wZ2mag16ZMLkODfdIUSGAeiFlc396KoRAFzAZH06VEIqQhcs2praPx3 5TF X-Received: by 2002:a05:6a20:394a:b0:3bf:c2ce:972b with SMTP id adf61e73a8af0-3c110b6344bmr13408459637.50.1784007591135; Mon, 13 Jul 2026 22:39:51 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:e15f:5d5f:580b:f2e9]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13b9a67c217sm18127165c88.8.2026.07.13.22.39.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 22:39:50 -0700 (PDT) From: Dmitry Torokhov Date: Mon, 13 Jul 2026 22:39:39 -0700 Subject: [PATCH v2 3/3] Input: samsung-keypad - use pm_runtime_active guard Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260713-samsung-kp-irq-v2-3-acc84b6daf9a@gmail.com> References: <20260713-samsung-kp-irq-v2-0-acc84b6daf9a@gmail.com> In-Reply-To: <20260713-samsung-kp-irq-v2-0-acc84b6daf9a@gmail.com> To: linux-input@vger.kernel.org Cc: Krzysztof Kozlowski , linux-kernel@vger.kernel.org X-Mailer: b4 0.16-dev-b242f Simplify the driver by using the block-scope guard(pm_runtime_active) instead of manually invoking pm_runtime_get_sync() and pm_runtime_put(). Assisted-by: Antigravity:gemini-3.5-flash Signed-off-by: Dmitry Torokhov --- drivers/input/keyboard/samsung-keypad.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/input/keyboard/samsung-keypad.c b/drivers/input/keyboa= rd/samsung-keypad.c index a51f0f639e9e..deffa98749c0 100644 --- a/drivers/input/keyboard/samsung-keypad.c +++ b/drivers/input/keyboard/samsung-keypad.c @@ -142,7 +142,7 @@ static irqreturn_t samsung_keypad_irq(int irq, void *de= v_id) unsigned int row_state[SAMSUNG_MAX_COLS]; bool key_down; =20 - pm_runtime_get_sync(&keypad->pdev->dev); + guard(pm_runtime_active)(&keypad->pdev->dev); =20 do { readl(keypad->base + SAMSUNG_KEYIFSTSCLR); @@ -158,8 +158,6 @@ static irqreturn_t samsung_keypad_irq(int irq, void *de= v_id) =20 } while (key_down && !keypad->stopped); =20 - pm_runtime_put(&keypad->pdev->dev); - return IRQ_HANDLED; } =20 @@ -167,7 +165,7 @@ static void samsung_keypad_start(struct samsung_keypad = *keypad) { unsigned int val; =20 - pm_runtime_get_sync(&keypad->pdev->dev); + guard(pm_runtime_active)(&keypad->pdev->dev); =20 /* Tell IRQ thread that it may poll the device. */ keypad->stopped =3D false; @@ -182,8 +180,6 @@ static void samsung_keypad_start(struct samsung_keypad = *keypad) /* KEYIFCOL reg clear. */ writel(0, keypad->base + SAMSUNG_KEYIFCOL); =20 - pm_runtime_put(&keypad->pdev->dev); - enable_irq(keypad->irq); } =20 @@ -191,7 +187,7 @@ static void samsung_keypad_stop(struct samsung_keypad *= keypad) { unsigned int val; =20 - pm_runtime_get_sync(&keypad->pdev->dev); + guard(pm_runtime_active)(&keypad->pdev->dev); =20 /* Signal IRQ thread to stop polling and disable the handler. */ keypad->stopped =3D true; @@ -207,8 +203,6 @@ static void samsung_keypad_stop(struct samsung_keypad *= keypad) writel(val, keypad->base + SAMSUNG_KEYIFCON); =20 clk_disable(keypad->clk); - - pm_runtime_put(&keypad->pdev->dev); } =20 static int samsung_keypad_open(struct input_dev *input_dev) --=20 2.55.0.795.g602f6c329a-goog