In kernel 6.1 the backlight registration code was overhauled so that at most one backlight device got registered. As part of this change there was code added to still allow making an acpi_video0 device if the BIOS contained backlight control methods but no native or vendor drivers registered.
Even after the overhaul this fallback logic is failing on the BIOS from a number of motherboard manufacturers supporting Ryzen APUs. What happens is the amdgpu driver finishes registration and as expected doesn't create a backlight control device since no eDP panels are connected to a desktop. Then 8 seconds later the ACPI video detection code creates an acpi_video0 device that is non-operational. GNOME then creates a backlight slider. To avoid this situation from happening make two sets of changes: Prevent desktop problems w/ fallback logic ------------------------------------------ 1) Add support for the video detect code to let native drivers cancel the fallback logic if they didn't find a panel. This is done this way so that if another driver decides that the ACPI mechanism is still needed it can instead directly call the registration function. 2) Add code to amdgpu to notify the ACPI video detection code that no panel was detected on an APU. Disable fallback logic by default --------------------------------- This fallback logic was introduced to prevent regressions in the backlight overhaul. As it has been deemed unnecessary by Hans explicitly disable the timeout. If this turns out to be mistake and this part is reverted, the other patches for preventing desktop problems will avoid regressions on desktops. Mario Limonciello (3): ACPI: video: Allow GPU drivers to report no panels drm/amd/display: Report to ACPI video if no panels were found ACPI: video: Don't enable fallback path for creating ACPI backlight by default drivers/acpi/acpi_video.c | 17 ++++++++++++----- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 ++++ include/acpi/video.h | 2 ++ 3 files changed, 18 insertions(+), 5 deletions(-) -- 2.34.1