[PATCH v2 3/3] Input: samsung-keypad - use pm_runtime_active guard
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2026-07-14 05:39:52
Also in:
lkml
Subsystem:
input (keyboard, mouse, joystick, touchscreen) drivers, the rest · Maintainers:
Dmitry Torokhov, Linus Torvalds
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 <dmitry.torokhov@gmail.com> --- 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/keyboard/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 *dev_id) unsigned int row_state[SAMSUNG_MAX_COLS]; bool key_down; - pm_runtime_get_sync(&keypad->pdev->dev); + guard(pm_runtime_active)(&keypad->pdev->dev); do { readl(keypad->base + SAMSUNG_KEYIFSTSCLR);
@@ -158,8 +158,6 @@ static irqreturn_t samsung_keypad_irq(int irq, void *dev_id) } while (key_down && !keypad->stopped); - pm_runtime_put(&keypad->pdev->dev); - return IRQ_HANDLED; }
@@ -167,7 +165,7 @@ static void samsung_keypad_start(struct samsung_keypad *keypad) { unsigned int val; - pm_runtime_get_sync(&keypad->pdev->dev); + guard(pm_runtime_active)(&keypad->pdev->dev); /* Tell IRQ thread that it may poll the device. */ keypad->stopped = false;
@@ -182,8 +180,6 @@ static void samsung_keypad_start(struct samsung_keypad *keypad) /* KEYIFCOL reg clear. */ writel(0, keypad->base + SAMSUNG_KEYIFCOL); - pm_runtime_put(&keypad->pdev->dev); - enable_irq(keypad->irq); }
@@ -191,7 +187,7 @@ static void samsung_keypad_stop(struct samsung_keypad *keypad) { unsigned int val; - pm_runtime_get_sync(&keypad->pdev->dev); + guard(pm_runtime_active)(&keypad->pdev->dev); /* Signal IRQ thread to stop polling and disable the handler. */ keypad->stopped = true;
@@ -207,8 +203,6 @@ static void samsung_keypad_stop(struct samsung_keypad *keypad) writel(val, keypad->base + SAMSUNG_KEYIFCON); clk_disable(keypad->clk); - - pm_runtime_put(&keypad->pdev->dev); } static int samsung_keypad_open(struct input_dev *input_dev)
--
2.55.0.795.g602f6c329a-goog