AMD Ryzen 7 4700H Renoir: brightness + external screen do not work
Background
I'm running into a kernel problem on openSUSE. After investigation and various tests, the openSUSE kernel maintainer determined it's an upstream kernel issue, which I should report upstream. I believe this repo should be the correct starting point for my bug report. Please correct me if this is not the case.
The original bug report can be found here: https://bugzilla.opensuse.org/show_bug.cgi?id=1186896
Bug Summary
I don't have brightness control or an external screen, unless I disable acpi.
If I disable acpi (kernel boot option acpi=off
) than I do have brightness control, and the external screen works too. But obviously I then don't have any acpi functionality (single core, Fn keys, etc)
Laptop Details
Laptop: Clevo NL51RU
BIOS: insyde 1.07.05
Distribution: openSUSE Leap 15.2/15.3 + Tumbleweed
Recent kernels tried (from the openSUSE repos):
- kernel-default-5.12.12
- kernel-default-5.13.rc7
CPU: Rhyzen 7 4700U
Graphics:
# lspci -nnk | grep -A3 VGA
05:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c2)
Subsystem: CLEVO/KAPOK Computer Device [1558:a500]
Detailed symptoms:
Boot option | Boots? | Brightness? | Notes |
---|---|---|---|
- | No | - | Hangs at switching to amdgpudrmfb from EFI VGA [*] |
nomodeset | Yes | No | Any attempt to set the brightness results in the external monitor widget to popup |
amdgpu.backlight=0 | No | - | Hangs at switching to amdgpudrmfb from EFI VGA [*] |
amdgpu.backlight=0 nomodeset | Yes | No | |
acpi=off | Yes | Yes | No acpi functionality |
For those two scenarios above where the laptop boots fine, but without brightness control, there is this funny additional symptom: Turning the scroll wheel over de battery icon in the system tray doesn't do anything. No change in brightness. But I do get the immediate and unexplainable popup of the external monitor widget (see attachment).
Peculiarly, the settings are correctly registered.
rietgors:# cd /sys/devices/pci0000:00/0000:00:08.1/0000:05:00.0/backlight/acpi_video0
Before:
rietgors:# cat actual_brightness max_brightness
21
49
After:
rietgors:# cat actual_brightness max_brightness
36
49
Oddly, the max_brightness value is now 49. But in the scenario where I do have brightness control (acpi=off
), the max_brightness value is 255.
Exactly the same happens when I directly echo values in the "brightness" device from the command line. No change in brightness but an immediate popup of the external monitor widget.
[*] For ease of reference: these are the last 4 lines from the boot log if the laptop hangs:
[drm] amdgpu kernel modesetting enabled.
Virtual CRAT table created for CPU
amdgpu: Topology: Add CPU node
fb0: switching to amdgpudrmfb from EFI VGA
Please be aware: I think I'm computer savvy, but working with or on the kernel is way out of my comfort zone. I'd be happy to investigate and try further. But I probably will need detailed instructions.