i801_smbus: no runtime pm since a9c8088c7988 ("i2c: i801: Don't restore config registers on runtime PM")

Heiner Kallweit
2021-05-21T08:19:35Z

Before the referenced commit we used i801_suspend and i801_resume also as
runtime pm callbacks. That's no longer the case, and at least on my
platform the SMBus controller PCI device doesn't support PM. Therefore
PCI core can't do what it would do for other devices: bring them to D3hot
or D3cold.
Having said that effectively there is no runtime pm any longer. Not sure
whether there are SMBus controller versions where the PCI device supports
PM.

So my questions are:
Does the SMBus controller support any power-saving modes?
i801_suspend() just sets SMBHSTCFG to the value it had when the driver
was loaded. Means if SMBHSTCFG_HST_EN was enabled already, we won't clear
it. And this bit may have an impact on some internal PLL's (just guessing).
If there's no good-enough power-saving option, then runtime pm support
could be removed completely, or?

00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
DeviceName: Onboard - Other
Subsystem: ASUSTeK Computer Inc. Device 8694
Flags: medium devsel, IRQ 16
Memory at a1316000 (64-bit, non-prefetchable) [size=256]
I/O ports at efa0 [size=32]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801

Heiner