Re: [PATCH v2] hwmon: yogafan: add Lenovo Yoga Pro 9 16IMH9
Guenter Roeck <[email protected]>
| Newsgroups | org.kernel.vger.linux-hwmon |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Aug 11, 2026 at 10:31:14PM -0400, rahlquist wrote: > The Lenovo Yoga Pro 9 16IMH9 (83DN) exposes its fan tachometers at > ACPI paths different from the generic Yoga configuration. Add a > model-specific two-fan configuration for the PC00.LPCB.EC0 namespace > and document the corrected mapping. > > Tested on a Lenovo Yoga Pro 9 16IMH9 (83DN) with BIOS NKCN35WW: the > patched module registers fan1_input and fan2_input, both reporting 1800 > RPM at idle. > --- > > Changes from v1: > - Wrap the new comment in kernel block-comment style. > - Wrap the commit message to 75 columns. > > Signed-off-by: rahlquist <[email protected]> > --- Change log goes here, and you are supposed to use your full name. Anyway, the patch does not apply to the hwmon-next branch. Please rebase on top of that branch or wait until after the upcoming commit window has closed, rebase on top of v7.3-rc1, and resend. Thanks, Guenter > Documentation/hwmon/yogafan.rst | 3 ++- > drivers/hwmon/yogafan.c | 19 +++++++++++++++++++ > 2 files changed, 21 insertions(+), 1 deletion(-) > > diff --git a/Documentation/hwmon/yogafan.rst b/Documentation/hwmon/yogafan.rst > index 6876194..cd7206b 100644 > --- a/Documentation/hwmon/yogafan.rst > +++ b/Documentation/hwmon/yogafan.rst > @@ -89,7 +89,8 @@ immediately to ensure the user knows the fan has stopped. > ---------------------------------------------------------------------------------------------------- > 82N7 | Yoga 14cACN | 0x06 | \_SB.PCI0.LPC0.EC0.FANS | 8-bit | 100 > 80V2 / 81C3 | Yoga 710/720 | 0x06 | \_SB.PCI0.LPC0.EC0.FAN0 | 8-bit | 100 > - 83E2 / 83DN | Yoga Pro 7/9 | 0xFE | \_SB.PCI0.LPC0.EC0.FANS | 8-bit | 100 > + 83E2 | Yoga Pro 7 | 0xFE | \_SB.PCI0.LPC0.EC0.FANS | 8-bit | 100 > + 83DN | Yoga Pro 9 16IMH9 | 0x06/0xFE | \_SB.PC00.LPCB.EC0.FANS/FA2S | 8-bit | 100 > 82A2 / 82A3 | Yoga Slim 7 | 0x06 | \_SB.PCI0.LPC0.EC0.FANS | 8-bit | 100 > 81YM / 82FG | IdeaPad 5 | 0x06 | \_SB.PCI0.LPC0.EC0.FAN0 | 8-bit | 100 > 82JW / 82JU | Legion 5 (AMD) | 0xFE/0xFF | \_SB.PCI0.LPC0.EC0.FANS (Fan1) | 16-bit | 1 > diff --git a/drivers/hwmon/yogafan.c b/drivers/hwmon/yogafan.c > index 605cc92..6cfbad3 100644 > --- a/drivers/hwmon/yogafan.c > +++ b/drivers/hwmon/yogafan.c > @@ -71,6 +71,17 @@ static const struct yogafan_config legion_16bit_dual_cfg = { > .paths = { "\\_SB.PCI0.LPC0.EC0.FANS", "\\_SB.PCI0.LPC0.EC0.FA2S" } > }; > > +/* > + * Lenovo Yoga Pro 9 16IMH9 (83DN) uses the PC00 namespace and has two > + * 8-bit fan tachometer fields. > + */ > +static const struct yogafan_config yoga_pro_83dn_cfg = { > + .multiplier = 100, > + .fan_count = 2, > + .paths = { "\\_SB.PC00.LPCB.EC0.FANS", > + "\\_SB.PC00.LPCB.EC0.FA2S" } > +}; > + > static void apply_rllag_filter(struct yoga_fan_data *data, int idx, long raw_rpm) > { > ktime_t now = ktime_get_boottime(); > @@ -170,6 +181,14 @@ static const struct hwmon_chip_info yoga_fan_chip_info = { > }; > > static const struct dmi_system_id yogafan_quirks[] = { > + { > + .ident = "Lenovo Yoga Pro 9 16IMH9 (83DN)", > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), > + DMI_MATCH(DMI_PRODUCT_NAME, "83DN"), > + }, > + .driver_data = (void *)&yoga_pro_83dn_cfg, > + }, > { > .ident = "Lenovo Yoga", > .matches = {