diff mbox series

i2c: i801: Exclude device from suspend direct complete optimization

Message ID 20201005173931.3c40f15d@endymion
State New
Headers show
Series i2c: i801: Exclude device from suspend direct complete optimization | expand

Commit Message

Jean Delvare Oct. 5, 2020, 3:39 p.m. UTC
commit 845b89127bc5458d0152a4d63f165c62a22fcb70 upstream.

By default, PCI drivers with runtime PM enabled will skip the calls
to suspend and resume on system PM. For this driver, we don't want
that, as we need to perform additional steps for system PM to work
properly on all systems. So instruct the PM core to not skip these
calls.

Fixes: a9c8088c7988 ("i2c: i801: Don't restore config registers on runtime PM")
Reported-by: Volker RĂ¼melin <volker.ruemelin@googlemail.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Cc: stable@vger.kernel.org
Signed-off-by: Wolfram Sang <wsa@kernel.org>
---
This is the backported version for kernel trees 5.4 and 4.19. The
difference with the upstream commit is that DPM_FLAG_NEVER_SKIP is used
instead of DPM_FLAG_NO_DIRECT_COMPLETE, which did not exist back then.

 drivers/i2c/busses/i2c-i801.c |    1 +
 1 file changed, 1 insertion(+)

Comments

Greg KH Oct. 9, 2020, 2:08 p.m. UTC | #1
On Mon, Oct 05, 2020 at 05:39:31PM +0200, Jean Delvare wrote:
> commit 845b89127bc5458d0152a4d63f165c62a22fcb70 upstream.
> 
> By default, PCI drivers with runtime PM enabled will skip the calls
> to suspend and resume on system PM. For this driver, we don't want
> that, as we need to perform additional steps for system PM to work
> properly on all systems. So instruct the PM core to not skip these
> calls.
> 
> Fixes: a9c8088c7988 ("i2c: i801: Don't restore config registers on runtime PM")
> Reported-by: Volker RĂ¼melin <volker.ruemelin@googlemail.com>
> Signed-off-by: Jean Delvare <jdelvare@suse.de>
> Cc: stable@vger.kernel.org
> Signed-off-by: Wolfram Sang <wsa@kernel.org>
> ---
> This is the backported version for kernel trees 5.4 and 4.19. The
> difference with the upstream commit is that DPM_FLAG_NEVER_SKIP is used
> instead of DPM_FLAG_NO_DIRECT_COMPLETE, which did not exist back then.

Thanks, now queue dup.

greg k-h
diff mbox series

Patch

--- linux-5.4.orig/drivers/i2c/busses/i2c-i801.c	2020-10-05 14:59:14.454238658 +0200
+++ linux-5.4/drivers/i2c/busses/i2c-i801.c	2020-10-05 15:54:31.399988586 +0200
@@ -1891,6 +1891,7 @@  static int i801_probe(struct pci_dev *de
 
 	pci_set_drvdata(dev, priv);
 
+	dev_pm_set_driver_flags(&dev->dev, DPM_FLAG_NEVER_SKIP);
 	pm_runtime_set_autosuspend_delay(&dev->dev, 1000);
 	pm_runtime_use_autosuspend(&dev->dev);
 	pm_runtime_put_autosuspend(&dev->dev);