platform/x86: thinkpad_acpi: Support also NEC Lavie X1475JAS
authorJohn Chau <johnchau@0atlas.com>
Sun, 4 May 2025 16:55:13 +0000 (01:55 +0900)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Wed, 7 May 2025 12:41:40 +0000 (15:41 +0300)
Change get_thinkpad_model_data() to check for additional vendor name
"NEC" in order to support NEC Lavie X1475JAS notebook (and perhaps
more).

The reason of this works with minimal changes is because NEC Lavie
X1475JAS is a Thinkpad inside. ACPI dumps reveals its OEM ID to be
"LENOVO", BIOS version "R2PET30W" matches typical Lenovo BIOS version,
the existence of HKEY of LEN0268, with DMI fw string is "R2PHT24W".

I compiled and tested with my own machine, attached the dmesg
below as proof of work:
[    6.288932] thinkpad_acpi: ThinkPad ACPI Extras v0.26
[    6.288937] thinkpad_acpi: http://ibm-acpi.sf.net/
[    6.288938] thinkpad_acpi: ThinkPad BIOS R2PET30W (1.11 ), EC R2PHT24W
[    6.307000] thinkpad_acpi: radio switch found; radios are enabled
[    6.307030] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
[    6.307033] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default...
[    6.320322] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[    6.371963] thinkpad_acpi: secondary fan control detected & enabled
[    6.391922] thinkpad_acpi: battery 1 registered (start 0, stop 85, behaviours: 0x7)
[    6.398375] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input13

Signed-off-by: John Chau <johnchau@0atlas.com>
Link: https://lore.kernel.org/r/20250504165513.295135-1-johnchau@0atlas.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/thinkpad_acpi.c

index 5790095..92b21e4 100644 (file)
@@ -11478,6 +11478,8 @@ static int __must_check __init get_thinkpad_model_data(
                tp->vendor = PCI_VENDOR_ID_IBM;
        else if (dmi_name_in_vendors("LENOVO"))
                tp->vendor = PCI_VENDOR_ID_LENOVO;
+       else if (dmi_name_in_vendors("NEC"))
+               tp->vendor = PCI_VENDOR_ID_LENOVO;
        else
                return 0;