i2c: tegra: Keep IRQs enabled during suspend/resume
authorThierry Reding <treding@nvidia.com>
Wed, 6 May 2020 18:47:25 +0000 (20:47 +0200)
committerThierry Reding <treding@nvidia.com>
Fri, 8 May 2020 10:42:32 +0000 (12:42 +0200)
One of the I2C controllers on Tegra SoCs is typically connected to a
system PMIC, which provides controls for critical power supplies for
most platforms.

Some drivers, such as PCI, need to disable these regulators during a
very late stage during suspend and resume them at a very early stage
during resume.

To support these use-cases, keep interrupts disabled during suspend/
resume.

Suggested-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/i2c/busses/i2c-tegra.c

index 119377d..26673be 100644 (file)
@@ -1694,8 +1694,8 @@ static int tegra_i2c_probe(struct platform_device *pdev)
 
        irq_set_status_flags(i2c_dev->irq, IRQ_NOAUTOEN);
 
-       ret = devm_request_irq(&pdev->dev, i2c_dev->irq,
-                              tegra_i2c_isr, 0, dev_name(&pdev->dev), i2c_dev);
+       ret = devm_request_irq(&pdev->dev, i2c_dev->irq, tegra_i2c_isr,
+                              IRQF_NO_SUSPEND, dev_name(&pdev->dev), i2c_dev);
        if (ret) {
                dev_err(&pdev->dev, "Failed to request irq %i\n", i2c_dev->irq);
                goto release_dma;