drm/msm/dp: return correct Colorimetry for DP_TEST_DYNAMIC_RANGE_CEA case
[ Upstream commit fcccdafd91f8bdde568b86ff70848cf83f029add ]
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: c943b4948b
("drm/msm/dp: add displayPort driver support")
Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
Reviewed-by: Dmitry 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.com
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
d2b7e247f3
commit
42939a1ea6
@ -7,6 +7,7 @@
|
||||
|
||||
#include <drm/drm_print.h>
|
||||
|
||||
#include "dp_reg.h"
|
||||
#include "dp_link.h"
|
||||
#include "dp_panel.h"
|
||||
|
||||
@ -1075,7 +1076,7 @@ int dp_link_process_request(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;
|
||||
|
||||
if (!dp_link) {
|
||||
@ -1089,10 +1090,11 @@ int dp_link_get_colorimetry_config(struct dp_link *dp_link)
|
||||
* Unless a video pattern CTS test is ongoing, use RGB_VESA
|
||||
* Only RGB_VESA and RGB_CEA supported for now
|
||||
*/
|
||||
if (dp_link_is_video_pattern_requested(link))
|
||||
cc = link->dp_link.test_video.test_dyn_range;
|
||||
else
|
||||
cc = DP_TEST_DYNAMIC_RANGE_VESA;
|
||||
if (dp_link_is_video_pattern_requested(link)) {
|
||||
if (link->dp_link.test_video.test_dyn_range &
|
||||
DP_TEST_DYNAMIC_RANGE_CEA)
|
||||
cc = DP_MISC0_COLORIMERY_CFG_CEA_RGB;
|
||||
}
|
||||
|
||||
return cc;
|
||||
}
|
||||
|
@ -129,6 +129,9 @@
|
||||
#define DP_MISC0_COLORIMETRY_CFG_SHIFT (0x00000001)
|
||||
#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_2 (0x00000034)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user