From 53f295b746a7383f41f39c627bfb807d01eda09e Mon Sep 17 00:00:00 2001 From: zhangjun10 Date: Mon, 13 Jun 2022 15:20:46 +0800 Subject: [PATCH] : tundra : keep nfc irq always wakeupable keep irq always wake up can get I2C message from irq Change-Id: Ie338aec3f3caf90cd910b87ebbfc5089d7ceb7d1 Signed-off-by: zhangjun10 Reviewed-on: https://gerrit.mot.com/2298808 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Wang Wang Submit-Approved: Jira Key --- drivers/nfc/sn1xx/nfc_i2c_drv.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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; }