]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: revert "write default Vesa Aux backlight control in dmub"
authorDerek Lai <Derek.Lai@amd.com>
Thu, 18 Dec 2025 03:44:50 +0000 (11:44 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 10 Jan 2026 19:21:53 +0000 (14:21 -0500)
This reverts commit 08f133e932cc.

Commit causing backlight darker when the system wakes up
from standby mode, and green screen w/ secondary screen only
when the system wakes up from standby mode.

Reviewed-by: Charlene Liu <charlene.liu@amd.com>
Signed-off-by: Derek Lai <Derek.Lai@amd.com>
Signed-off-by: Matthew Stewart <matthew.stewart2@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/link/link_detection.c
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h

index 2c9d2b932482b06644dbb03004f9cdc5ef044ba3..578509e8d0e254c0f3f382128c985e0cdcad6bef 100644 (file)
@@ -995,7 +995,7 @@ static bool detect_link_and_local_sink(struct dc_link *link,
                        (link->dpcd_sink_ext_caps.bits.oled == 1)) {
                        dpcd_set_source_specific_data(link);
                        msleep(post_oui_delay);
-                       set_default_brightness(link);
+                       set_default_brightness_aux(link);
                }
 
                return true;
index 323cc0b3c09a7a35967d4ac664165d4691ec26d2..7e46ea98952c0ad46da5d04c22e1285cdcd58794 100644 (file)
@@ -2061,7 +2061,7 @@ static enum dc_status enable_link_dp(struct dc_state *state,
                skip_video_pattern = false;
 
        if (stream->sink_patches.oled_optimize_display_on)
-               set_default_brightness(link);
+               set_default_brightness_aux(link);
 
        if (perform_link_training_with_retries(link_settings,
                                               skip_video_pattern,
@@ -2087,7 +2087,7 @@ static enum dc_status enable_link_dp(struct dc_state *state,
                link->dpcd_sink_ext_caps.bits.sdr_aux_backlight_control == 1 ||
                link->dpcd_sink_ext_caps.bits.hdr_aux_backlight_control == 1) {
                if (!stream->sink_patches.oled_optimize_display_on) {
-                       set_default_brightness(link);
+                       set_default_brightness_aux(link);
                        if (link->dpcd_sink_ext_caps.bits.oled == 1)
                                msleep(bl_oled_enable_delay);
                        edp_backlight_enable_aux(link, true);
index 8bbf5637b166b7c187b76b87e7efaaab0235152b..cdc7587cf0b6826544abf1674e83ef46d78563c8 100644 (file)
@@ -2210,7 +2210,7 @@ void detect_edp_sink_caps(struct dc_link *link)
        link->dpcd_caps.set_power_state_capable_edp =
                                (general_edp_cap & DP_EDP_SET_POWER_CAP) ? true : false;
 
-       set_default_brightness(link);
+       set_default_brightness_aux(link);
 
        core_link_read_dpcd(link, DP_EDP_DPCD_REV,
                &link->dpcd_caps.edp_rev,
index ab047ff556a166b226b19681bdb1671143a017d7..cb4129c0937a908f523522ca57d080e0e764a622 100644 (file)
@@ -50,11 +50,6 @@ static const uint8_t DP_VGA_LVDS_CONVERTER_ID_2[] = "sivarT";
 /* Nutmeg */
 static const uint8_t DP_VGA_LVDS_CONVERTER_ID_3[] = "dnomlA";
 
-static const unsigned int pwr_default_min_brightness_millinits = 1000;
-static const unsigned int pwr_default_sdr_brightness_millinits = 270000;
-static const unsigned int pwr_default_min_backlight_pwm = 0xC0C;
-static const unsigned int pwr_default_max_backlight_pwm = 0xFFFF;
-
 void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode)
 {
        union dpcd_edp_config edp_config_set;
@@ -313,7 +308,7 @@ static bool read_default_bl_aux(struct dc_link *link, uint32_t *backlight_millin
        return true;
 }
 
-bool set_default_brightness(struct dc_link *link)
+bool set_default_brightness_aux(struct dc_link *link)
 {
        uint32_t default_backlight;
 
@@ -324,23 +319,8 @@ bool set_default_brightness(struct dc_link *link)
                if (default_backlight < 1000 || default_backlight > 5000000)
                        default_backlight = 150000;
 
-               if (link->backlight_control_type == BACKLIGHT_CONTROL_VESA_AUX &&
-                       link->dc->caps.dmub_caps.aux_backlight_support) {
-                       struct set_backlight_level_params backlight_level_params = { 0 };
-
-                       backlight_level_params.aux_inst =  link->ddc->ddc_pin->hw_info.ddc_channel;
-                       backlight_level_params.control_type = BACKLIGHT_CONTROL_VESA_AUX;
-                       backlight_level_params.backlight_pwm_u16_16 = default_backlight;
-                       backlight_level_params.transition_time_in_ms = 0;
-                       // filled in the driver BL default values
-                       backlight_level_params.min_luminance = pwr_default_min_brightness_millinits;
-                       backlight_level_params.max_luminance = pwr_default_sdr_brightness_millinits;
-                       backlight_level_params.min_backlight_pwm = pwr_default_min_backlight_pwm;
-                       backlight_level_params.max_backlight_pwm = pwr_default_max_backlight_pwm;
-                       return edp_set_backlight_level(link, &backlight_level_params);
-               } else
-                       return edp_set_backlight_level_nits(link, true,
-                                       default_backlight, 0);
+               return edp_set_backlight_level_nits(link, true,
+                               default_backlight, 0);
        }
        return false;
 }
index 8780bbc4e8c577618cf9c4ef60550cb731226261..8fdb76d9953ec55423b5ced85fb679090b1cfd52 100644 (file)
@@ -29,7 +29,7 @@
 
 enum dp_panel_mode dp_get_panel_mode(struct dc_link *link);
 void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode);
-bool set_default_brightness(struct dc_link *link);
+bool set_default_brightness_aux(struct dc_link *link);
 bool is_smartmux_suported(struct dc_link *link);
 void edp_panel_backlight_power_on(struct dc_link *link, bool wait_for_hpd);
 int edp_get_backlight_level(const struct dc_link *link);