From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Huang Wei <huangwei@kylinos.cn>
Cc: Hans de Goede <hansg@kernel.org>,
hmh@hmh.eng.br, Mark Pearson <mpearson-lenovo@squebb.ca>,
derekjohn.clark@gmail.com, ibm-acpi-devel@lists.sourceforge.net,
platform-driver-x86@vger.kernel.org,
LKML <linux-kernel@vger.kernel.org>,
thisisamirv <thisisamirv@gmail.com>
Subject: Re: [PATCH] platform/x86: thinkpad_acpi: Add X9-14 Gen 1 to non-standard thermal/fan quirk tables
Date: Fri, 18 Sep 2026 18:15:08 +0300 (EEST) [thread overview]
Message-ID: <c8339940-7bcb-c62c-20a3-63f6db19f3d4@linux.intel.com> (raw)
In-Reply-To: <20260826073014.2611191-1-huangwei@kylinos.cn>
On Wed, 26 Aug 2026, Huang Wei wrote:
> The Lenovo ThinkPad X9-14 Gen 1 uses a non-standard Embedded Controller
> firmware (ECFW) whose thermal and fan registers are not located at the
> classic addresses. On this model the thermal registers sit at 0xA8-0xAF /
> 0xB8-0xBF and the fan registers use the non-standard offsets, instead of
> the legacy 0x78-0x7F / 0xC0-0xC7 (thermal) and 0x2f / 0x84 (fan).
>
> Because the model is not covered by the existing quirk tables, the driver
> probes the legacy thermal addresses during init, reads back 0x00 from
> every register, concludes the EC is "misbehaving" and disables all
> thermal sensor access:
>
> thinkpad_acpi: ThinkPad ACPI EC access misbehaving, disabling thermal
> sensors access
>
> Fan access is affected the same way, leaving fan1/fan2 reporting 0 RPM.
>
> The infrastructure for these non-standard ECFW models is already in place
> (commit 301c1904d638 ("platform/x86: thinkpad_acpi: Fix to correct wrong
> temp reporting on some ThinkPads")); the X9-14 Gen 1 simply was not added
> to the model lists yet. Add its BIOS model code N4D to both the thermal
> and fan quirk tables so that:
> - thermal_read_mode_check() selects TPACPI_THERMAL_TPEC_12 and reads
> the 0xA8/0xB8 registers, and
> - fan_init() selects the non-standard fan register addresses.
>
> Reported-by: thisisamirv <thisisamirv@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221228
> Signed-off-by: Huang Wei <huangwei@kylinos.cn>
> ---
> drivers/platform/x86/lenovo/thinkpad_acpi.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/platform/x86/lenovo/thinkpad_acpi.c b/drivers/platform/x86/lenovo/thinkpad_acpi.c
> index 6dd7c28fc0db..498139ac8f4b 100644
> --- a/drivers/platform/x86/lenovo/thinkpad_acpi.c
> +++ b/drivers/platform/x86/lenovo/thinkpad_acpi.c
> @@ -6021,6 +6021,7 @@ static const struct tpacpi_quirk thermal_quirk_table[] __initconst = {
> TPACPI_Q_LNV3('R', '0', 'T', true), /* 11e Gen5 GL*/
> TPACPI_Q_LNV3('R', '1', 'D', true), /* 11e Gen5 GL-R*/
> TPACPI_Q_LNV3('R', '0', 'V', true), /* 11e Gen5 KL-Y*/
> + TPACPI_Q_LNV3('N', '4', 'D', true), /* X9-14 Gen 1 */
> };
>
> static enum thermal_access_mode thermal_read_mode;
> @@ -8845,6 +8846,7 @@ static const struct tpacpi_quirk fan_quirk_table[] __initconst = {
> TPACPI_Q_LNV3('R', '0', 'T', TPACPI_FAN_NS), /* 11e Gen5 GL */
> TPACPI_Q_LNV3('R', '1', 'D', TPACPI_FAN_NS), /* 11e Gen5 GL-R */
> TPACPI_Q_LNV3('R', '0', 'V', TPACPI_FAN_NS), /* 11e Gen5 KL-Y */
> + TPACPI_Q_LNV3('N', '4', 'D', TPACPI_FAN_NS), /* X9-14 Gen 1 */
> TPACPI_Q_LNV3('N', '1', 'O', TPACPI_FAN_NOFAN), /* X1 Tablet (2nd gen) */
> TPACPI_Q_LNV3('R', '0', 'Q', TPACPI_FAN_DECRPM),/* L480 */
> TPACPI_Q_LNV('8', 'F', TPACPI_FAN_TPR), /* ThinkPad x120e */
Hi,
This no longer applies cleanly so please respin.
--
i.
next prev parent reply other threads:[~2026-09-18 15:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-26 7:30 [PATCH] platform/x86: thinkpad_acpi: Add X9-14 Gen 1 to non-standard thermal/fan quirk tables Huang Wei
2026-09-18 15:15 ` Ilpo Järvinen [this message]
2026-09-18 16:15 ` [PATCH v2] " Huang Wei
2026-09-18 18:25 ` Ilpo Järvinen
2026-09-18 22:00 ` Mark Pearson
2026-09-30 12:20 ` Mark Pearson
2026-10-02 12:55 ` Mark Pearson
2026-10-12 3:41 ` Huang Wei
2026-10-12 11:58 ` Ilpo Järvinen
2026-10-13 7:07 ` [PATCH] Revert "platform/x86: thinkpad_acpi: Add X9-14 Gen 1 to non-standard thermal/fan quirk tables" Huang Wei
2026-10-13 17:14 ` Mark Pearson
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=c8339940-7bcb-c62c-20a3-63f6db19f3d4@linux.intel.com \
--to=ilpo.jarvinen@linux.intel.com \
--cc=derekjohn.clark@gmail.com \
--cc=hansg@kernel.org \
--cc=hmh@hmh.eng.br \
--cc=huangwei@kylinos.cn \
--cc=ibm-acpi-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mpearson-lenovo@squebb.ca \
--cc=platform-driver-x86@vger.kernel.org \
--cc=thisisamirv@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.