diff mbox series

ata: ahci: Add Tiger Lake UP{3,4} AHCI controller

Message ID 20230213102450.1604-1-simon@invisiblethingslab.com
State New
Headers show
Series ata: ahci: Add Tiger Lake UP{3,4} AHCI controller | expand

Commit Message

Simon Gaiser Feb. 13, 2023, 10:24 a.m. UTC
Mark the Tiger Lake UP{3,4} AHCI controller as "low_power". This enables
S0ix to work out of the box. Otherwise this isn't working unless the
user manually sets /sys/class/scsi_host/*/link_power_management_policy.

Intel lists a total of 4 SATA controller IDs in [1] for those mobile
PCHs. This commit just adds the "AHCI" variant since I only tested
those.

[1]: https://cdrdv2.intel.com/v1/dl/getContent/631119

Signed-off-by: Simon Gaiser <simon@invisiblethingslab.com>
CC: stable@vger.kernel.org
---

As noted above this doesn't include the other PCI IDs listed by Intel
for those PCHs (RAID modes). Also the same is probably needed for newer
generations. But for both I don't have hardware to test handy right now,
so only included what I have actually tested.

Added stable to CC, since on systems using S0ix this prevents S0ix
residency and therefore leads to such high power consumption that
suspend is effectively broken.

 drivers/ata/ahci.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Damien Le Moal Feb. 14, 2023, 3:27 a.m. UTC | #1
On 2/13/23 19:24, Simon Gaiser wrote:
> Mark the Tiger Lake UP{3,4} AHCI controller as "low_power". This enables
> S0ix to work out of the box. Otherwise this isn't working unless the
> user manually sets /sys/class/scsi_host/*/link_power_management_policy.
> 
> Intel lists a total of 4 SATA controller IDs in [1] for those mobile
> PCHs. This commit just adds the "AHCI" variant since I only tested
> those.
> 
> [1]: https://cdrdv2.intel.com/v1/dl/getContent/631119
> 
> Signed-off-by: Simon Gaiser <simon@invisiblethingslab.com>
> CC: stable@vger.kernel.org

Applied to for-6.2-fixes. Thanks !
diff mbox series

Patch

diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 14a1c0d14916..3bb9bb483fe3 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -421,6 +421,7 @@  static const struct pci_device_id ahci_pci_tbl[] = {
 	{ PCI_VDEVICE(INTEL, 0x34d3), board_ahci_low_power }, /* Ice Lake LP AHCI */
 	{ PCI_VDEVICE(INTEL, 0x02d3), board_ahci_low_power }, /* Comet Lake PCH-U AHCI */
 	{ PCI_VDEVICE(INTEL, 0x02d7), board_ahci_low_power }, /* Comet Lake PCH RAID */
+	{ PCI_VDEVICE(INTEL, 0xa0d3), board_ahci_low_power }, /* Tiger Lake UP{3,4} AHCI */
 
 	/* JMicron 360/1/3/5/6, match class to avoid IDE function */
 	{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,