]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Input: bbnsm_pwrkey - add remove hook
authorPeng Fan <peng.fan@nxp.com>
Thu, 12 Dec 2024 03:03:22 +0000 (11:03 +0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 16 Dec 2024 17:34:16 +0000 (09:34 -0800)
Without remove hook to clear wake irq, there will be kernel dump when
doing module test.
"bbnsm_pwrkey 44440000.bbnsm:pwrkey: wake irq already initialized"

Add remove hook to clear wake irq and set wakeup to false.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Fixes: 40e40fdfec3f ("Input: bbnsm_pwrkey - add bbnsm power key support")
Link: https://lore.kernel.org/r/20241212030322.3110017-1-peng.fan@oss.nxp.com
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/misc/nxp-bbnsm-pwrkey.c

index eb4173f9c82044664de6f4ddd6dfab9ed99d7f5d..7ba8d166d68c18b396e616f6f9074ae98c4629b7 100644 (file)
@@ -187,6 +187,12 @@ static int bbnsm_pwrkey_probe(struct platform_device *pdev)
        return 0;
 }
 
+static void bbnsm_pwrkey_remove(struct platform_device *pdev)
+{
+       dev_pm_clear_wake_irq(&pdev->dev);
+       device_init_wakeup(&pdev->dev, false);
+}
+
 static int __maybe_unused bbnsm_pwrkey_suspend(struct device *dev)
 {
        struct platform_device *pdev = to_platform_device(dev);
@@ -223,6 +229,8 @@ static struct platform_driver bbnsm_pwrkey_driver = {
                .of_match_table = bbnsm_pwrkey_ids,
        },
        .probe = bbnsm_pwrkey_probe,
+       .remove = bbnsm_pwrkey_remove,
+
 };
 module_platform_driver(bbnsm_pwrkey_driver);