diff --git a/drivers/nfc/sn1xx/nfc_i2c_drv.c b/drivers/nfc/sn1xx/nfc_i2c_drv.c index 8c49ba9977df..473832fa27b8 100644 --- a/drivers/nfc/sn1xx/nfc_i2c_drv.c +++ b/drivers/nfc/sn1xx/nfc_i2c_drv.c @@ -365,6 +365,7 @@ int nfc_i2c_dev_probe(struct i2c_client *client, const struct i2c_device_id *id) } device_init_wakeup(&client->dev, true); + enable_irq_wake(client->irq); i2c_dev->irq_wake_up = false; nfc_dev->is_ese_session_active = false; @@ -446,8 +447,9 @@ int nfc_i2c_dev_suspend(struct device *device) struct i2c_dev *i2c_dev = &nfc_dev->i2c_dev; if (device_may_wakeup(&client->dev) && i2c_dev->irq_enabled) { - if (!enable_irq_wake(client->irq)) - i2c_dev->irq_wake_up = true; + // if (!enable_irq_wake(client->irq)) + // i2c_dev->irq_wake_up = true; + i2c_dev->irq_wake_up = true; } return 0; } @@ -459,8 +461,9 @@ int nfc_i2c_dev_resume(struct device *device) struct i2c_dev *i2c_dev = &nfc_dev->i2c_dev; if (device_may_wakeup(&client->dev) && i2c_dev->irq_wake_up) { - if (!disable_irq_wake(client->irq)) - i2c_dev->irq_wake_up = false; + // if (!disable_irq_wake(client->irq)) + // i2c_dev->irq_wake_up = false; + i2c_dev->irq_wake_up = false; } return 0; }