[PATCH] i2c: i801: Exclude device from suspend direct complete optimization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx>
Signed-off-by: Jean Delvare <jdelvare@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxx>
---
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(+)

--- 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);


-- 
Jean Delvare
SUSE L3 Support



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux