i2c: pxa: keep i2c irq ON in suspend
authorLeilei Shang <shangll@marvell.com>
Tue, 14 Jul 2015 07:36:40 +0000 (13:06 +0530)
committerWolfram Sang <wsa@the-dreams.de>
Mon, 10 Aug 2015 06:37:29 +0000 (08:37 +0200)
During suspend there may still be some i2c access happening, as the
interrupt is shared between multiple drivers.
And if we don't keep i2c irq ON, there may be i2c access timeout if
i2c is in irq mode of operation.

Signed-off-by: Raul Xiong <xjian@marvell.com>
Signed-off-by: Xiaofan Tian <tianxf@marvell.com>
[vaibhav.hiremath@linaro.org: updated Changelog]
Signed-off-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Cc: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-pxa.c

index d9c0d6a17ad6c39b3e5fadfd4bc36564562a4478..f4ac8c595a45dd03ab7702ffe773ce0f1b6fdfd0 100644 (file)
@@ -1232,8 +1232,9 @@ static int i2c_pxa_probe(struct platform_device *dev)
                i2c->adap.algo = &i2c_pxa_pio_algorithm;
        } else {
                i2c->adap.algo = &i2c_pxa_algorithm;
-               ret = request_irq(irq, i2c_pxa_handler, IRQF_SHARED,
-                                 dev_name(&dev->dev), i2c);
+               ret = request_irq(irq, i2c_pxa_handler,
+                               IRQF_SHARED | IRQF_NO_SUSPEND,
+                               dev_name(&dev->dev), i2c);
                if (ret)
                        goto ereqirq;
        }