From: Christophe Ricard Date: Sat, 6 Jun 2015 11:16:51 +0000 (+0200) Subject: NFC: st21nfcb: disable irq when st21nfcb is disabled X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=05f0939f76659260763d31890cb962e8d6060038;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git NFC: st21nfcb: disable irq when st21nfcb is disabled When st21nfcb is disabled, the irq line may remain active while no data are available, flooding the system with irrelevant i2c transaction. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz --- diff --git a/drivers/nfc/st21nfcb/i2c.c b/drivers/nfc/st21nfcb/i2c.c index 41b5bdb11cdb..dbc0dfd8ae85 100644 --- a/drivers/nfc/st21nfcb/i2c.c +++ b/drivers/nfc/st21nfcb/i2c.c @@ -70,6 +70,9 @@ static int st21nfcb_nci_i2c_enable(void *phy_id) gpio_set_value(phy->gpio_reset, 1); usleep_range(80000, 85000); + if (phy->ndlc->powered == 0) + enable_irq(phy->i2c_dev->irq); + return 0; } @@ -77,10 +80,7 @@ static void st21nfcb_nci_i2c_disable(void *phy_id) { struct st21nfcb_i2c_phy *phy = phy_id; - /* reset chip in order to flush clf */ - gpio_set_value(phy->gpio_reset, 0); - usleep_range(10000, 15000); - gpio_set_value(phy->gpio_reset, 1); + disable_irq_nosync(phy->i2c_dev->irq); } /*