On an ASUS ROG Flow X13 GV301QH (BIOS 418) ATIF QUERY_BACKLIGHT_TRANSFER_CHARACTERISTICS answers with a minimum input signal of 12 and 49 curve points for the Sharp LQ134R1JW51 panel, and amdgpu logs "Using custom brightness curve". With that minimum, brightness 0 gives 4.7% duty
With the quirk, brightness 0 sends PWM 0 (read back from amdgpu_current_backlight_pwm in debugfs). The panel stays lit, but much dimmer than the old 4.7% floor. Its LED driver has a minimum of its own, so 0 does not turn the backlight off linux-hardware.org also lists this panel in a GV301QE. Match the ASUS vendor and the panel, as the Framework 13 entries do, and let the brightness reach the bottom of the PWM range Signed-off-by: Hugo Sales <[email protected]> --- I could only test this on a GV301QH. The entry matches any ASUS laptop with this panel, and linux-hardware.org only lists it in ROG Flow X13s, one of them a GV301QE. If you'd rather limit it to the GV301QH, I can add a DMI_BOARD_NAME match in v2 drivers/gpu/drm/drm_panel_backlight_quirks.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/drm_panel_backlight_quirks.c b/drivers/gpu/drm/drm_panel_backlight_quirks.c index 2d0238382ebd5..b60333e748741 100644 --- a/drivers/gpu/drm/drm_panel_backlight_quirks.c +++ b/drivers/gpu/drm/drm_panel_backlight_quirks.c @@ -69,6 +69,14 @@ static const struct drm_get_panel_backlight_quirk drm_panel_min_backlight_quirks .dmi_match_other.value = "Galileo", .quirk = { .min_brightness = 1, }, }, + /* ASUS ROG Flow X13 3840x2400 panel */ + { + .dmi_match.field = DMI_SYS_VENDOR, + .dmi_match.value = "ASUSTeK COMPUTER INC.", + .ident.panel_id = drm_edid_encode_panel_id('S', 'H', 'P', 0x151b), + .ident.name = "LQ134R1JW51", + .quirk = { .min_brightness = 1, }, + }, /* Have OLED Panels with brightness issue when last byte is 0/1 */ { .dmi_match.field = DMI_SYS_VENDOR, -- 2.56.0
