Input: tca6416-keypad - rely on I2C core to set up suspend/resume
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 24 Jul 2023 05:30:19 +0000 (22:30 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 29 Jul 2023 01:04:14 +0000 (18:04 -0700)
tca6416_keypad_suspend() and tca6416_keypad_resume() only configure device
IRQ for wakeup. I2C core already does this by registering interrupt as a
wakeup IRQ in case when device is marked as wakeup-enabled, so we can
simply remove this code from the driver.

Link: https://lore.kernel.org/r/20230724053024.352054-2-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/keyboard/tca6416-keypad.c

index 01bc0b8..906dffb 100644 (file)
@@ -287,7 +287,6 @@ static int tca6416_keypad_probe(struct i2c_client *client)
        }
 
        i2c_set_clientdata(client, chip);
-       device_init_wakeup(&client->dev, 1);
 
        return 0;
 
@@ -315,33 +314,9 @@ static void tca6416_keypad_remove(struct i2c_client *client)
        kfree(chip);
 }
 
-static int tca6416_keypad_suspend(struct device *dev)
-{
-       struct i2c_client *client = to_i2c_client(dev);
-
-       if (device_may_wakeup(dev))
-               enable_irq_wake(client->irq);
-
-       return 0;
-}
-
-static int tca6416_keypad_resume(struct device *dev)
-{
-       struct i2c_client *client = to_i2c_client(dev);
-
-       if (device_may_wakeup(dev))
-               disable_irq_wake(client->irq);
-
-       return 0;
-}
-
-static DEFINE_SIMPLE_DEV_PM_OPS(tca6416_keypad_dev_pm_ops,
-                               tca6416_keypad_suspend, tca6416_keypad_resume);
-
 static struct i2c_driver tca6416_keypad_driver = {
        .driver = {
                .name   = "tca6416-keypad",
-               .pm     = pm_sleep_ptr(&tca6416_keypad_dev_pm_ops),
        },
        .probe          = tca6416_keypad_probe,
        .remove         = tca6416_keypad_remove,