From: Jian-Hong Pan <jhp@endlessos.org>
To: Mika Westerberg <mika.westerberg@linux.intel.com>,
David Box <david.e.box@linux.intel.com>,
Damien Le Moal <dlemoal@kernel.org>,
Niklas Cassel <cassel@kernel.org>,
Nirmal Patel <nirmal.patel@linux.intel.com>,
Jonathan Derrick <jonathan.derrick@linux.dev>
Cc: linux-ide@vger.kernel.org, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, linux@endlessos.org,
Jian-Hong Pan <jhp@endlessos.org>
Subject: [PATCH 1/2] ata: ahci: Add force LPM policy quirk for ASUS B1400CEAE
Date: Tue, 30 Jan 2024 17:59:33 +0800 [thread overview]
Message-ID: <20240130095933.14158-1-jhp@endlessos.org> (raw)
Some systems, like ASUS B1400CEAE equipped with the SATA controller
[8086:a0d3] can use LPM policy to save power, especially for s2idle.
However, the same controller may be failed on other platforms. So,
commit (ata: ahci: Revert "ata: ahci: Add Tiger Lake UP{3,4} AHCI
controller") drops LPM policy for [8086:a0d3]. But, this blocks going
to deeper CPU Package C-state when s2idle with enabled Intel VMD.
This patch adds ahci_force_lpm_policy DMI quirk for ASUS B1400CEAE to
fix s2idle's power consumption issue when Intel VMD feature is enabled.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218394
Signed-off-by: Jian-Hong Pan <jhp@endlessos.org>
---
drivers/ata/ahci.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index d2460fa985b7..6bc5298a4adf 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1434,6 +1434,33 @@ static bool ahci_broken_devslp(struct pci_dev *pdev)
return pci_match_id(ids, pdev);
}
+static bool ahci_force_lpm_policy(void)
+{
+ /*
+ * Some systems, like ASUS B1400CEAE equipped with the SATA controller
+ * [8086:a0d3] can use LPM policy to save power, especially for s2idle.
+ * However, the same controller may be failed on other platforms. So,
+ * commit (ata: ahci: Revert "ata: ahci: Add Tiger Lake UP{3,4} AHCI
+ * controller") drops LPM policy for [8086:a0d3].
+ *
+ * https://bugzilla.kernel.org/show_bug.cgi?id=218394
+ */
+ static const struct dmi_system_id sysids[] = {
+ {
+ .ident = "ASUS B1400CEAE",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR,
+ "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME,
+ "ASUS EXPERTBOOK B1400CEAE"),
+ },
+ },
+ { } /* terminate list */
+ };
+
+ return dmi_first_match(sysids);
+}
+
#ifdef CONFIG_ATA_ACPI
static void ahci_gtf_filter_workaround(struct ata_host *host)
{
@@ -1760,6 +1787,11 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
ahci_pci_bar = AHCI_PCI_BAR_LOONGSON;
}
+ if (ahci_force_lpm_policy()) {
+ pi = ahci_port_info[board_ahci_low_power];
+ dev_info(&pdev->dev, "force controller follow LPM policy\n");
+ }
+
/* acquire resources */
rc = pcim_enable_device(pdev);
if (rc)
--
2.43.0
next reply other threads:[~2024-01-30 10:00 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-30 9:59 Jian-Hong Pan [this message]
2024-01-30 10:13 ` [PATCH 1/2] ata: ahci: Add force LPM policy quirk for ASUS B1400CEAE Mika Westerberg
2024-01-31 8:56 ` Jian-Hong Pan
2024-01-31 10:57 ` Niklas Cassel
2024-01-31 11:08 ` Daniel Drake
2024-01-31 22:43 ` Niklas Cassel
[not found] ` <CADMpKLrNmmQ3PRTsiDXWBQ6iiJ9F+93xEk6HpuuK4Ev=n-i7wA@mail.gmail.com>
2024-02-01 10:35 ` Niklas Cassel
2024-02-01 15:01 ` Niklas Cassel
2024-02-02 8:49 ` Jian-Hong Pan
2024-02-05 11:33 ` Niklas Cassel
2024-02-06 8:39 ` Jian-Hong Pan
2024-02-06 13:12 ` Niklas Cassel
2024-02-06 22:07 ` Niklas Cassel
2024-02-07 6:35 ` Jian-Hong Pan
2024-02-07 6:31 ` Jian-Hong Pan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240130095933.14158-1-jhp@endlessos.org \
--to=jhp@endlessos.org \
--cc=cassel@kernel.org \
--cc=david.e.box@linux.intel.com \
--cc=dlemoal@kernel.org \
--cc=jonathan.derrick@linux.dev \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@endlessos.org \
--cc=mika.westerberg@linux.intel.com \
--cc=nirmal.patel@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).