mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-06 22:42:10 +00:00
drm/amd/display: Set TMZ and DCC for secondary surface
Add register programming to support TMZ and DCC on secondary surfaces. Signed-off-by: Eric Bernstein <eric.bernstein@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
01884c02c4
commit
aa6d4a59d6
2 changed files with 18 additions and 4 deletions
|
@ -396,11 +396,15 @@ bool hubp1_program_surface_flip_and_addr(
|
||||||
if (address->grph_stereo.right_addr.quad_part == 0)
|
if (address->grph_stereo.right_addr.quad_part == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
REG_UPDATE_4(DCSURF_SURFACE_CONTROL,
|
REG_UPDATE_8(DCSURF_SURFACE_CONTROL,
|
||||||
PRIMARY_SURFACE_TMZ, address->tmz_surface,
|
PRIMARY_SURFACE_TMZ, address->tmz_surface,
|
||||||
PRIMARY_SURFACE_TMZ_C, address->tmz_surface,
|
PRIMARY_SURFACE_TMZ_C, address->tmz_surface,
|
||||||
PRIMARY_META_SURFACE_TMZ, address->tmz_surface,
|
PRIMARY_META_SURFACE_TMZ, address->tmz_surface,
|
||||||
PRIMARY_META_SURFACE_TMZ_C, address->tmz_surface);
|
PRIMARY_META_SURFACE_TMZ_C, address->tmz_surface,
|
||||||
|
SECONDARY_SURFACE_TMZ, address->tmz_surface,
|
||||||
|
SECONDARY_SURFACE_TMZ_C, address->tmz_surface,
|
||||||
|
SECONDARY_META_SURFACE_TMZ, address->tmz_surface,
|
||||||
|
SECONDARY_META_SURFACE_TMZ_C, address->tmz_surface);
|
||||||
|
|
||||||
if (address->grph_stereo.right_meta_addr.quad_part != 0) {
|
if (address->grph_stereo.right_meta_addr.quad_part != 0) {
|
||||||
|
|
||||||
|
@ -459,9 +463,11 @@ void hubp1_dcc_control(struct hubp *hubp, bool enable,
|
||||||
uint32_t dcc_ind_64b_blk = independent_64b_blks ? 1 : 0;
|
uint32_t dcc_ind_64b_blk = independent_64b_blks ? 1 : 0;
|
||||||
struct dcn10_hubp *hubp1 = TO_DCN10_HUBP(hubp);
|
struct dcn10_hubp *hubp1 = TO_DCN10_HUBP(hubp);
|
||||||
|
|
||||||
REG_UPDATE_2(DCSURF_SURFACE_CONTROL,
|
REG_UPDATE_4(DCSURF_SURFACE_CONTROL,
|
||||||
PRIMARY_SURFACE_DCC_EN, dcc_en,
|
PRIMARY_SURFACE_DCC_EN, dcc_en,
|
||||||
PRIMARY_SURFACE_DCC_IND_64B_BLK, dcc_ind_64b_blk);
|
PRIMARY_SURFACE_DCC_IND_64B_BLK, dcc_ind_64b_blk,
|
||||||
|
SECONDARY_SURFACE_DCC_EN, dcc_en,
|
||||||
|
SECONDARY_SURFACE_DCC_IND_64B_BLK, dcc_ind_64b_blk);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hubp1_program_surface_config(
|
void hubp1_program_surface_config(
|
||||||
|
|
|
@ -312,6 +312,12 @@
|
||||||
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_META_SURFACE_TMZ_C, mask_sh),\
|
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_META_SURFACE_TMZ_C, mask_sh),\
|
||||||
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_SURFACE_DCC_EN, mask_sh),\
|
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_SURFACE_DCC_EN, mask_sh),\
|
||||||
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_SURFACE_DCC_IND_64B_BLK, mask_sh),\
|
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_SURFACE_DCC_IND_64B_BLK, mask_sh),\
|
||||||
|
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_TMZ, mask_sh),\
|
||||||
|
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_TMZ_C, mask_sh),\
|
||||||
|
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_META_SURFACE_TMZ, mask_sh),\
|
||||||
|
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_META_SURFACE_TMZ_C, mask_sh),\
|
||||||
|
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_DCC_EN, mask_sh),\
|
||||||
|
HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_DCC_IND_64B_BLK, mask_sh),\
|
||||||
HUBP_SF(HUBPRET0_HUBPRET_CONTROL, DET_BUF_PLANE1_BASE_ADDRESS, mask_sh),\
|
HUBP_SF(HUBPRET0_HUBPRET_CONTROL, DET_BUF_PLANE1_BASE_ADDRESS, mask_sh),\
|
||||||
HUBP_SF(HUBPRET0_HUBPRET_CONTROL, CROSSBAR_SRC_CB_B, mask_sh),\
|
HUBP_SF(HUBPRET0_HUBPRET_CONTROL, CROSSBAR_SRC_CB_B, mask_sh),\
|
||||||
HUBP_SF(HUBPRET0_HUBPRET_CONTROL, CROSSBAR_SRC_CR_R, mask_sh),\
|
HUBP_SF(HUBPRET0_HUBPRET_CONTROL, CROSSBAR_SRC_CR_R, mask_sh),\
|
||||||
|
@ -489,6 +495,8 @@
|
||||||
type SECONDARY_META_SURFACE_TMZ_C;\
|
type SECONDARY_META_SURFACE_TMZ_C;\
|
||||||
type PRIMARY_SURFACE_DCC_EN;\
|
type PRIMARY_SURFACE_DCC_EN;\
|
||||||
type PRIMARY_SURFACE_DCC_IND_64B_BLK;\
|
type PRIMARY_SURFACE_DCC_IND_64B_BLK;\
|
||||||
|
type SECONDARY_SURFACE_DCC_EN;\
|
||||||
|
type SECONDARY_SURFACE_DCC_IND_64B_BLK;\
|
||||||
type DET_BUF_PLANE1_BASE_ADDRESS;\
|
type DET_BUF_PLANE1_BASE_ADDRESS;\
|
||||||
type CROSSBAR_SRC_CB_B;\
|
type CROSSBAR_SRC_CB_B;\
|
||||||
type CROSSBAR_SRC_CR_R;\
|
type CROSSBAR_SRC_CR_R;\
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue