1 From b448d30b0c303d5454ea572b772d1ffae96bc6e7 Mon Sep 17 00:00:00 2001
2 From: hersen wu <hersenxs.wu@amd.com>
3 Date: Mon, 22 Jun 2020 13:29:16 -0400
4 Subject: drm/amd/display: OLED panel backlight adjust not work with external display connected
6 From: hersen wu <hersenxs.wu@amd.com>
8 commit b448d30b0c303d5454ea572b772d1ffae96bc6e7 upstream.
11 amdgpu_dm->backlight_caps is for single eDP only. the caps are upddated
12 for very connector. Real eDP caps will be overwritten by other external
13 display. For OLED panel, caps->aux_support is set to 1 for OLED pnael.
14 after external connected, caps+.aux_support is set to 0. This causes
15 OLED backlight adjustment not work.
18 within update_conector_ext_caps, backlight caps will be updated only for
21 Cc: stable@vger.kernel.org
22 Signed-off-by: hersen wu <hersenxs.wu@amd.com>
23 Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
24 Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
25 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
26 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
29 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++++
30 1 file changed, 5 insertions(+)
32 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
33 +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
34 @@ -1804,6 +1804,7 @@ static void update_connector_ext_caps(st
35 struct amdgpu_display_manager *dm;
36 struct drm_connector *conn_base;
37 struct amdgpu_device *adev;
38 + struct dc_link *link = NULL;
39 static const u8 pre_computed_values[] = {
40 50, 51, 52, 53, 55, 56, 57, 58, 59, 61, 62, 63, 65, 66, 68, 69,
41 71, 72, 74, 75, 77, 79, 81, 82, 84, 86, 88, 90, 92, 94, 96, 98};
42 @@ -1811,6 +1812,10 @@ static void update_connector_ext_caps(st
43 if (!aconnector || !aconnector->dc_link)
46 + link = aconnector->dc_link;
47 + if (link->connector_signal != SIGNAL_TYPE_EDP)
50 conn_base = &aconnector->base;
51 adev = conn_base->dev->dev_private;