1

I have a Lenovo Legion 7 16ACHg6 (2021) which was only released recently. It has AMD 5800H with NVIDIA RTX 3060 GPU. One of the issues I found is that backlight brightness control is not working. I.e. the shortcut keyboard buttons bring up the brightness control widget, and the brightness value in that widget does get adjusted, so I guess the keyboard shortcuts/buttons are ok. But the backlight is not controlled. When I try to control the backlight through sysfs, I find a nvidia folder and achoing into the actual_brightness file adjusts that value but nothing happens.

I've setup the BIOS to use DISCRETE GRAPHICS. I've tried using both proprietary and open-source (Nouveau) drivers, but no luck. I've tried with installing newer drivers from NVIDIA (version 465 downloaded from their site), but that didn't help. I've tried running the mainline tool to update to the 5.12 kernel but that didn't help either. I've also tried the suggestion of adding Option "RegistryDwords" "EnableBrightnessControl=1" to the xorg config but without success. I've tried with acpi_backlight=vendor kernel arg, in this case adjusting the brightness completely turns off the display and I need to reboot to get it back. Setting the amdgpu.brightness=0 kernel arg has no impact. I've messed with different live-cd's (Fedora 34, Garuda, Ubuntu 20.04 LTS) but it was not working with any of them. On Windows obviously it is working.

Using xrandr works, but that doesn't however really control the brightness of the backlight.

At this point I've ran out of options that I could find around on the internet. I guess deeper analyses needs to be done. However I have no clue where to start. My first though is that brightness is controlled through a PWM signal. On embedded ARM devices their is mostly a dedicated SOC pin for that, but I'm not sure how this goes on x86. Is the AMD cpu able to do that directly? Is it under control of the GPU? Is there some sort of in-between display controller that get's controlled through I2C?

EDIT: I've added some key parts of the output of dmesg:

[    0.000000] Linux version 5.12.1-051201-generic (kernel@gloin) (gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0, GNU ld (GNU Binutils for Ubuntu) 2.36.1) #202105021030 SMP Sun May 2 10:34:08 UTC 2021
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.12.1-051201-generic root=UUID=99416551-f8bc-413e-a118-d9c4845e7fa6 ro quiet splash vt.handoff=7
...
[    0.000000] efi: EFI v2.70 by INSYDE Corp.
[    0.000000] efi: ACPI=0xceffe000 ACPI 2.0=0xceffe014 TPMFinalLog=0xcef3f000 SMBIOS=0xcc70a000 SMBIOS 3.0=0xcc708000 MEMATTR=0xb65fc018 ESRT=0xb65e8418 MOKvar=0xcc6d0000 RNG=0xcc705d18 TPMEventLog=0xb652c018 
[    0.000000] efi: seeding entropy pool
[    0.000000] random: fast init done
[    0.000000] SMBIOS 3.3.0 present.
[    0.000000] DMI: LENOVO 82N6/LNVNB161216, BIOS GKCN24WW 02/03/2021
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 3193.968 MHz processor
...
[    0.311851] ACPI: EC: interrupt unblocked
[    0.311852] ACPI: EC: event unblocked
[    0.313133] ACPI: EC: EC_CMD/EC_SC=0x66, EC_DATA=0x62
[    0.313133] ACPI: EC: GPE=0x3
[    0.313133] ACPI: \_SB_.PCI0.LPC0.EC0_: Boot DSDT EC initialization complete
[    0.313133] ACPI: \_SB_.PCI0.LPC0.EC0_: EC: Used to handle transactions and events
[    0.313169] iommu: Default domain type: Translated 
[    0.313169] pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[    0.313169] pci 0000:01:00.0: vgaarb: bridge control possible
[    0.313169] pci 0000:01:00.0: vgaarb: setting as boot device
[    0.313169] vgaarb: loaded
...
[    0.534844] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[    0.534871] efifb: probing for efifb
[    0.534882] efifb: showing boot graphics
[    0.537785] efifb: framebuffer at 0xfa00000000, using 25600k, total 25600k
[    0.537787] efifb: mode is 2560x1600x32, linelength=16384, pages=1
[    0.537788] efifb: scrolling: redraw
[    0.537788] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    0.537845] Console: switching to colour frame buffer device 160x50
[    0.541740] fb0: EFI VGA frame buffer device
[    0.543342] ACPI: AC: AC Adapter [ADP0] (off-line)
[    0.543378] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
[    0.543390] ACPI: button: Power Button [PWRB]
[    0.543409] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
[    0.543417] ACPI: button: Lid Switch [LID0]
[    0.543430] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[    0.543457] ACPI: button: Power Button [PWRF]
[    0.543508] Monitor-Mwait will be used to enter C-1 state
...
[    0.806995] acpi device:01: registered as cooling_device16
[    0.807027] acpi PNP0C14:03: duplicate WMI GUID 05901221-D566-11D1-B2F0-00A0C9062910 (first instance was on PNP0C14:00)
[    0.807067] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/LNXVIDEO:00/input/input4
[    0.807191] ACPI: video: Video Device [VGA] (multi-head: yes  rom: no  post: no)
[    0.807316] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.GP17.VGA.LCD._BCM.AFN7], AE_NOT_FOUND (20210105/psargs-330)

[    0.807499] 
               Initialized Local Variables for Method [_BCM]:
[    0.807500]   Local0: 0000000038713046 <Obj>           Integer 00000000000000FF
[    0.807505]   Local1: 0000000029383804 <Obj>           Integer 0000000000000000

[    0.807508] Initialized Arguments for Method [_BCM]:  (1 arguments defined for method invocation)
[    0.807508]   Arg0:   00000000ceb92cb1 <Obj>           Integer 0000000000000064

[    0.807513] ACPI Error: Aborting method \_SB.PCI0.GP17.VGA.LCD._BCM due to previous error (AE_NOT_FOUND) (20210105/psparse-529)
[    0.807609] ACPI: \_SB_.PCI0.GP17.VGA_.LCD_: _BCM evaluation failed
[    0.807641] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:13/LNXVIDEO:01/input/input5
...
[    2.692008] input: Ideapad extra buttons as /devices/pci0000:00/0000:00:14.3/PNP0C09:00/VPC2004:00/input/input11
[    2.692077] ideapad_acpi VPC2004:00: Keyboard backlight control not available
[    2.698741] ccp 0000:05:00.2: enabling device (0000 -> 0002)
[    2.699039] ccp 0000:05:00.2: ccp: unable to access the device: you might be running a broken BIOS.
[    2.703452] ideapad_acpi VPC2004:00: DYTC interface is not available
...
[    4.424514] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input16
[    4.424562] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input17
[    4.424591] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input18
[    4.424619] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input19
[    4.424646] input: HDA NVidia HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input20
[    4.424676] input: HDA NVidia HDMI/DP,pcm=11 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input21
[    4.466797] input: HD-Audio Generic Mic as /devices/pci0000:00/0000:00:08.1/0000:05:00.6/sound/card1/input22
[    4.466857] input: HD-Audio Generic Headphone as /devices/pci0000:00/0000:00:08.1/0000:05:00.6/sound/card1/input23
[    4.498362] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  460.73.01  Thu Apr  1 21:40:36 UTC 2021
[    4.504877] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  460.73.01  Thu Apr  1 21:32:31 UTC 2021
[    4.537322] r8169 0000:03:00.0 eno1: Link is Down
[    4.599300] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[    4.599303] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 0
[    4.607340] nvidia_uvm: module uses symbols from proprietary module nvidia, inheriting taint.
[    4.609244] nvidia-uvm: Loaded the UVM driver, major device number 507.
[    4.781539] ACPI: \: failed to evaluate _DSM (0x1001)
[    4.781546] ACPI: \: failed to evaluate _DSM (0x1001)
[    4.850308] ACPI Warning: \_SB.PCI0.GPP0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20210105/nsarguments-61)
...
2
  • Could you expand on your comment about xrandr and how it "doesn't ... really control the brightness of the backlight"? There is a --brightness option which should allow you to manually set brightness to a value between 0 and 1, with 0.75 being a good place to start ... – matigo May 5 at 12:16
  • I've based my thoughts upon reading the following: askubuntu.com/questions/62249/… – geoffrey May 5 at 13:33
0

Focusing on the ACPI errors in dmesg output, in particular following line: ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.GP17.VGA.LCD._BCM.AFN7], I've stumbled upon one other topic that reported the same kind of error. As Colin Ian King says:

The ACPI driver attempted to evaluate (execute) the ACPI brightness control method for the screen but this failed because the ACPI AML byte code in your firmware did not have the object _SB.PCI0.GP17.VGA.LCD._BCM.AFN7 defined for some reason. The upshot of all of this is that the ACPI brightness control won't work. This is a firmware issue, I do not know of any workarounds apart from checking to see if you can get an updated BIOS firmware that may fix this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.