LenovoLegionLinux icon indicating copy to clipboard operation
LenovoLegionLinux copied to clipboard

[BUG] Keyboard may randomly break on Lenovo Yoga 7 14IAL7

Open rcky844 opened this issue 6 months ago • 0 comments

Problem Description When the module is probed at startup, issues may arise where the keyboard is broken beyond usability (e.g. letters type out as uppercase variants, enter key does not work). At other times, when this doesn't happen, certain keys handled by ideapad_laptop kernel module may not function (e.g. favorites key).

I know that this kernel module wasn't intended for my laptop. One, the name itself implies it's for Lenovo Legion laptop, and two, the comment blocks in the kernel module itself describes the 16" variant of my laptop, which has two fans instead of one, as well as a dedicated GPU. I wonder if it is some sort of resource conflicts. However, modprobing the module after the ideapad_laptop kernel module (or after bootup) seems to solve my issue of some keys not working on the more normal boots, but the issue where the whole keyboard is broken isn't fix and will come up every so often.

Please note that my laptop is also on a prototype version of BIOS, and the following modprobe.d config is used:

options legion_laptop enable_platformprofile=0
softdep legion_laptop pre: ideapad_laptop

Note that platform profile appears to be handled by another mainlined kernel module.

Model and Debug Info

Distribution: Arch Linux Model name: Lenovo Yoga 7 14IAL7 CPU model: Intel Core i7-1260P GPU model: N/A Keyboard backlight: single color with off/medium/bright, probably handled by other kernel modules Light in lid or logo: no Light at IO-Ports at back: no

Output of sudo dmidecode -t system. Please remove Serial Number and UUID for privacy:

# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.3 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: LENOVO
        Product Name: 82QE
        Version: Yoga 7 14IAL7
        Serial Number: [REDACTED]
        UUID: [REDACTED]
        Wake-up Type: Power Switch
        SKU Number: LENOVO_MT_82QE_BU_idea_FM_Yoga 7 14IAL7
        Family: Yoga 7 14IAL7

Handle 0x0024, DMI type 12, 5 bytes
System Configuration Options
        Option 1: ConfigOptions1
        Option 2: ConfigOptions2
        Option 3: ConfigOptions3

Handle 0x0027, DMI type 15, 29 bytes
System Event Log
        Area Length: 0 bytes
        Header Start Offset: 0x0000
        Header Length: 8192 bytes
        Data Start Offset: 0x2000
        Access Method: General-purpose non-volatile data functions
        Access Address: 0x0000
        Status: Valid, Not Full
        Change Token: 0x12345678
        Header Format: OEM-specific
        Supported Log Type Descriptors: 3
        Descriptor 1: POST memory resize
        Data Format 1: None
        Descriptor 2: POST error
        Data Format 2: POST results bitmap
        Descriptor 3: Log area reset/cleared
        Data Format 3: None

Handle 0x0040, DMI type 32, 11 bytes
System Boot Information
        Status: No errors detected

Output of sudo dmidecode -t bios:

# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.3 present.

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
        Vendor: LENOVO
        Version: J1CN16WWT07
        Release Date: 12/17/2021
        Address: 0xE0000
        Runtime Size: 128 kB
        ROM Size: 16 MB
        Characteristics:
                PCI is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
                EDD is supported
                Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
                Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
                5.25"/360 kB floppy services are supported (int 13h)
                5.25"/1.2 MB floppy services are supported (int 13h)
                3.5"/720 kB floppy services are supported (int 13h)
                3.5"/2.88 MB floppy services are supported (int 13h)
                8042 keyboard services are supported (int 9h)
                CGA/mono video services are supported (int 10h)
                ACPI is supported
                USB legacy is supported
                BIOS boot specification is supported
                Targeted content distribution is supported
                UEFI is supported
        BIOS Revision: 0.16
        Firmware Revision: 0.17

Handle 0x0025, DMI type 13, 22 bytes
BIOS Language Information
        Language Description Format: Long
        Installable Languages: 8
                en|US|iso8859-1,0
                fr|FR|iso8859-1,0
                zh|TW|unicode,0
                ja|JP|unicode,0
                it|IT|iso8859-1,0
                es|ES|iso8859-1,0
                de|DE|iso8859-1,0
                pt|PT|iso8859-1,0
        Currently Installed Language: en|US|iso8859-1,0

Output of sudo cat /sys/kernel/debug/legion/fancurve:

EC Chip ID: 8227
EC Chip Version: 2a4
legion_laptop features: fancurve powermode platformprofile platformprofilenotify minifancurve
legion_laptop ec_readonly: 0
ACPI CFG error: 0
ACPI CFG: 2081284372
temperature access method: 1
CPU temperature error: 0
CPU temperature: 52
CPU temperature EC error: 0
CPU temperature EC: 52
CPU temperature ACPI error: 0
CPU temperature ACPI: 52
CPU temperature WMI error: -14
CPU temperature WMI: 52
CPU temperature WMI2 error: -14
CPU temperature WMI2: 52
CPU temperature WMI3 error: -14
CPU temperature WMI3: 52
GPU temperature error: 0
GPU temperature: 39
GPU temperature EC error: 0
GPU temperature EC: 39
GPU temperature ACPI error: 0
GPU temperature ACPI: 0
GPU temperature WMI error: -14
GPU temperature WMI: 0
GPU temperature WMI2 error: -14
GPU temperature WMI2: 0
GPU temperature WMI3 error: -14
GPU temperature WMI3: 0
fan speed access method: 1
1 fanspeed error: 0
1 fanspeed: 3358
1 fanspeed EC error: 0
1 fanspeed EC: 3358
1 fanspeed ACPI error: 0
1 fanspeed ACPI: 3300
1 fanspeed WMI error: -14
1 fanspeed WMI: 3300
1 fanspeed WMI2 error: -14
1 fanspeed WMI2: 3300
1 fanspeed WMI3 error: -14
1 fanspeed WMI3: 3300
2 fanspeed error: 0
2 fanspeed: 0
2 fanspeed EC error: 0
2 fanspeed EC: 0
2 fanspeed ACPI error: 0
2 fanspeed ACPI: 0
2 fanspeed WMI error: -14
2 fanspeed WMI: 0
2 fanspeed WMI2 error: -14
2 fanspeed WMI2: 0
2 fanspeed WMI3 error: -14
2 fanspeed WMI3: 0
powermode access method: 3
powermode error: -14
powermode: 0
powermode EC error: 0
powermode EC: 1
powermode ACPI error: -5
powermode ACPI: 0
powermode WMI error: -14
powermode WMI: 0
has custom powermode: 1
ACPI rapidcharge error: 0
ACPI rapidcharge: 1
WMI backlight 2 state: -22
WMI backlight 3 state: -5
WMI light IO port: -5
WMI light Y logo/lid: -5
EC minifancurve feature enabled: 1
EC minifancurve on cool: true
EC lockfancontroller error: 0
EC lockfancontroller: false
fanfullspeed error: -22
fanfullspeed: 0
fanfullspeed EC error: 0
fanfullspeed EC: 0
EC fan curve current point id: 3
EC fan curve points size: 8
Current fan curve in hardware:
rpm1|rpm2|acceleration|deceleration|cpu_min_temp|cpu_max_temp|gpu_min_temp|gpu_max_temp|ic_min_temp|ic_max_temp
0        0       3       5       0       53      127     127     0       39
2400     0       3       5       38      53      127     127     35      42
2600     0       3       5       42      53      127     127     38      46
2900     0       3       5       45      53      127     127     42      127
3300     0       3       5       48      58      127     127     127     127
3600     0       3       5       53      63      127     127     127     127
4000     0       3       5       58      65      127     127     127     127
4200     0       3       5       61      127     127     127     127     127
=====================
Current fan curve in hardware (WMI; might be empty)
rpm1|rpm2|acceleration|deceleration|cpu_min_temp|cpu_max_temp|gpu_min_temp|gpu_max_temp|ic_min_temp|ic_max_temp
=====================
[ricky@TipzLab-14c ~]$ 

rcky844 avatar Jul 28 '24 03:07 rcky844