Commit fcccdafd authored by Kuogee Hsieh's avatar Kuogee Hsieh Committed by Abhinav Kumar

drm/msm/dp: return correct Colorimetry for DP_TEST_DYNAMIC_RANGE_CEA case

MSA MISC0 bit 1 to 7 contains Colorimetry Indicator Field.
dp_link_get_colorimetry_config() returns wrong colorimetry value
in the DP_TEST_DYNAMIC_RANGE_CEA case in the current implementation.
Hence fix this problem by having dp_link_get_colorimetry_config()
return defined CEA RGB colorimetry value in the case of
DP_TEST_DYNAMIC_RANGE_CEA.

Changes in V2:
-- drop retrieving colorimetry from colorspace
-- drop dr = link->dp_link.test_video.test_dyn_range assignment

Changes in V3:
-- move defined MISCr0a Colorimetry vale to dp_reg.h
-- rewording commit title
-- rewording commit text to more precise describe this patch

Fixes: c943b494 ("drm/msm/dp: add displayPort driver support")
Signed-off-by: default avatarKuogee Hsieh <quic_khsieh@quicinc.com>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/574888/
Link: https://lore.kernel.org/r/1705526010-597-1-git-send-email-quic_khsieh@quicinc.comSigned-off-by: default avatarAbhinav Kumar <quic_abhinavk@quicinc.com>
parent 77e8aad5
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <drm/drm_print.h> #include <drm/drm_print.h>
#include "dp_reg.h"
#include "dp_link.h" #include "dp_link.h"
#include "dp_panel.h" #include "dp_panel.h"
...@@ -1082,7 +1083,7 @@ int dp_link_process_request(struct dp_link *dp_link) ...@@ -1082,7 +1083,7 @@ int dp_link_process_request(struct dp_link *dp_link)
int dp_link_get_colorimetry_config(struct dp_link *dp_link) int dp_link_get_colorimetry_config(struct dp_link *dp_link)
{ {
u32 cc; u32 cc = DP_MISC0_COLORIMERY_CFG_LEGACY_RGB;
struct dp_link_private *link; struct dp_link_private *link;
if (!dp_link) { if (!dp_link) {
...@@ -1096,10 +1097,11 @@ int dp_link_get_colorimetry_config(struct dp_link *dp_link) ...@@ -1096,10 +1097,11 @@ int dp_link_get_colorimetry_config(struct dp_link *dp_link)
* Unless a video pattern CTS test is ongoing, use RGB_VESA * Unless a video pattern CTS test is ongoing, use RGB_VESA
* Only RGB_VESA and RGB_CEA supported for now * Only RGB_VESA and RGB_CEA supported for now
*/ */
if (dp_link_is_video_pattern_requested(link)) if (dp_link_is_video_pattern_requested(link)) {
cc = link->dp_link.test_video.test_dyn_range; if (link->dp_link.test_video.test_dyn_range &
else DP_TEST_DYNAMIC_RANGE_CEA)
cc = DP_TEST_DYNAMIC_RANGE_VESA; cc = DP_MISC0_COLORIMERY_CFG_CEA_RGB;
}
return cc; return cc;
} }
......
...@@ -143,6 +143,9 @@ ...@@ -143,6 +143,9 @@
#define DP_MISC0_COLORIMETRY_CFG_SHIFT (0x00000001) #define DP_MISC0_COLORIMETRY_CFG_SHIFT (0x00000001)
#define DP_MISC0_TEST_BITS_DEPTH_SHIFT (0x00000005) #define DP_MISC0_TEST_BITS_DEPTH_SHIFT (0x00000005)
#define DP_MISC0_COLORIMERY_CFG_LEGACY_RGB (0)
#define DP_MISC0_COLORIMERY_CFG_CEA_RGB (0x04)
#define REG_DP_VALID_BOUNDARY (0x00000030) #define REG_DP_VALID_BOUNDARY (0x00000030)
#define REG_DP_VALID_BOUNDARY_2 (0x00000034) #define REG_DP_VALID_BOUNDARY_2 (0x00000034)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment