drm/amd/display: reset the scaler boundary mode
[WHY] The VBIOS select the black boundary mode when using auto scale mode. But it doesn't recover if there is no reset. [HOW] Clean the scaler boundary mode to default edge in the manual scale mode. Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Signed-off-by: Zhikai Zhai <zhikai.zhai@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
cd487b6d50
commit
98ef341862
@@ -59,6 +59,7 @@
|
||||
SRI(LB_DATA_FORMAT, DSCL, id), \
|
||||
SRI(LB_MEMORY_CTRL, DSCL, id), \
|
||||
SRI(DSCL_AUTOCAL, DSCL, id), \
|
||||
SRI(DSCL_CONTROL, DSCL, id), \
|
||||
SRI(SCL_BLACK_OFFSET, DSCL, id), \
|
||||
SRI(SCL_TAP_CONTROL, DSCL, id), \
|
||||
SRI(SCL_COEF_RAM_TAP_SELECT, DSCL, id), \
|
||||
@@ -209,6 +210,7 @@
|
||||
TF_SF(DSCL0_DSCL_AUTOCAL, AUTOCAL_MODE, mask_sh),\
|
||||
TF_SF(DSCL0_DSCL_AUTOCAL, AUTOCAL_NUM_PIPE, mask_sh),\
|
||||
TF_SF(DSCL0_DSCL_AUTOCAL, AUTOCAL_PIPE_ID, mask_sh),\
|
||||
TF_SF(DSCL0_DSCL_CONTROL, SCL_BOUNDARY_MODE, mask_sh),\
|
||||
TF_SF(DSCL0_SCL_BLACK_OFFSET, SCL_BLACK_OFFSET_RGB_Y, mask_sh),\
|
||||
TF_SF(DSCL0_SCL_BLACK_OFFSET, SCL_BLACK_OFFSET_CBCR, mask_sh),\
|
||||
TF_SF(DSCL0_SCL_TAP_CONTROL, SCL_V_NUM_TAPS, mask_sh),\
|
||||
@@ -495,6 +497,7 @@
|
||||
type AUTOCAL_MODE; \
|
||||
type AUTOCAL_NUM_PIPE; \
|
||||
type AUTOCAL_PIPE_ID; \
|
||||
type SCL_BOUNDARY_MODE; \
|
||||
type SCL_BLACK_OFFSET_RGB_Y; \
|
||||
type SCL_BLACK_OFFSET_CBCR; \
|
||||
type SCL_V_NUM_TAPS; \
|
||||
@@ -1108,6 +1111,7 @@ struct dcn_dpp_mask {
|
||||
uint32_t LB_DATA_FORMAT; \
|
||||
uint32_t LB_MEMORY_CTRL; \
|
||||
uint32_t DSCL_AUTOCAL; \
|
||||
uint32_t DSCL_CONTROL; \
|
||||
uint32_t SCL_BLACK_OFFSET; \
|
||||
uint32_t SCL_TAP_CONTROL; \
|
||||
uint32_t SCL_COEF_RAM_TAP_SELECT; \
|
||||
|
||||
@@ -655,6 +655,10 @@ void dpp1_dscl_set_scaler_manual_scale(struct dpp *dpp_base,
|
||||
AUTOCAL_NUM_PIPE, 0,
|
||||
AUTOCAL_PIPE_ID, 0);
|
||||
|
||||
/*clean scaler boundary mode when Autocal off*/
|
||||
REG_SET(DSCL_CONTROL, 0,
|
||||
SCL_BOUNDARY_MODE, 0);
|
||||
|
||||
/* Recout */
|
||||
dpp1_dscl_set_recout(dpp, &scl_data->recout);
|
||||
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
SRI(LB_DATA_FORMAT, DSCL, id), \
|
||||
SRI(LB_MEMORY_CTRL, DSCL, id), \
|
||||
SRI(DSCL_AUTOCAL, DSCL, id), \
|
||||
SRI(DSCL_CONTROL, DSCL, id), \
|
||||
SRI(SCL_TAP_CONTROL, DSCL, id), \
|
||||
SRI(SCL_COEF_RAM_TAP_SELECT, DSCL, id), \
|
||||
SRI(SCL_COEF_RAM_TAP_DATA, DSCL, id), \
|
||||
@@ -237,6 +238,7 @@
|
||||
TF_SF(DSCL0_LB_MEMORY_CTRL, LB_MAX_PARTITIONS, mask_sh),\
|
||||
TF_SF(DSCL0_DSCL_AUTOCAL, AUTOCAL_MODE, mask_sh),\
|
||||
TF_SF(DSCL0_DSCL_AUTOCAL, AUTOCAL_NUM_PIPE, mask_sh),\
|
||||
TF_SF(DSCL0_DSCL_CONTROL, SCL_BOUNDARY_MODE, mask_sh),\
|
||||
TF_SF(DSCL0_DSCL_AUTOCAL, AUTOCAL_PIPE_ID, mask_sh),\
|
||||
TF_SF(DSCL0_SCL_TAP_CONTROL, SCL_V_NUM_TAPS, mask_sh),\
|
||||
TF_SF(DSCL0_SCL_TAP_CONTROL, SCL_H_NUM_TAPS, mask_sh),\
|
||||
|
||||
Reference in New Issue
Block a user