Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: OLED panel backlight adjust not work with external display connected

[Why]
amdgpu_dm->backlight_caps is for single eDP only. the caps are upddated
for very connector. Real eDP caps will be overwritten by other external
display. For OLED panel, caps->aux_support is set to 1 for OLED pnael.
after external connected, caps+.aux_support is set to 0. This causes
OLED backlight adjustment not work.

[How]
within update_conector_ext_caps, backlight caps will be updated only for
eDP connector.

Cc: stable@vger.kernel.org
Signed-off-by: hersen wu <hersenxs.wu@amd.com>
Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

hersen wu and committed by
Alex Deucher
b448d30b 31684701

+5
+5
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
··· 2019 2019 struct amdgpu_display_manager *dm; 2020 2020 struct drm_connector *conn_base; 2021 2021 struct amdgpu_device *adev; 2022 + struct dc_link *link = NULL; 2022 2023 static const u8 pre_computed_values[] = { 2023 2024 50, 51, 52, 53, 55, 56, 57, 58, 59, 61, 62, 63, 65, 66, 68, 69, 2024 2025 71, 72, 74, 75, 77, 79, 81, 82, 84, 86, 88, 90, 92, 94, 96, 98}; 2025 2026 2026 2027 if (!aconnector || !aconnector->dc_link) 2028 + return; 2029 + 2030 + link = aconnector->dc_link; 2031 + if (link->connector_signal != SIGNAL_TYPE_EDP) 2027 2032 return; 2028 2033 2029 2034 conn_base = &aconnector->base;