mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
drm/amd/display: On boot disable domain22 force power on
[Why] HDCP2 enablement fails when domain22 is set to force power on [How] Disable force power on for domain22 on startup Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Acked-by: Hersen Wu <hersenxs.wu@amd.com> Signed-off-by: Daniel Miess <daniel.miess@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
9256e8d47a
commit
89830c62e6
@ -332,6 +332,13 @@ void pg_cntl35_io_clk_pg_control(struct pg_cntl *pg_cntl, bool power_on)
|
||||
pg_cntl->pg_res_enable[PG_DCIO] = power_on;
|
||||
}
|
||||
|
||||
void pg_cntl35_set_force_poweron_domain22(struct pg_cntl *pg_cntl, bool power_on)
|
||||
{
|
||||
struct dcn_pg_cntl *pg_cntl_dcn = TO_DCN_PG_CNTL(pg_cntl);
|
||||
|
||||
REG_UPDATE(DOMAIN22_PG_CONFIG, DOMAIN_POWER_FORCEON, power_on ? 1 : 0);
|
||||
}
|
||||
|
||||
static bool pg_cntl35_plane_otg_status(struct pg_cntl *pg_cntl)
|
||||
{
|
||||
struct dcn_pg_cntl *pg_cntl_dcn = TO_DCN_PG_CNTL(pg_cntl);
|
||||
@ -501,7 +508,8 @@ static const struct pg_cntl_funcs pg_cntl35_funcs = {
|
||||
.mpcc_pg_control = pg_cntl35_mpcc_pg_control,
|
||||
.opp_pg_control = pg_cntl35_opp_pg_control,
|
||||
.optc_pg_control = pg_cntl35_optc_pg_control,
|
||||
.dwb_pg_control = pg_cntl35_dwb_pg_control
|
||||
.dwb_pg_control = pg_cntl35_dwb_pg_control,
|
||||
.set_force_poweron_domain22 = pg_cntl35_set_force_poweron_domain22
|
||||
};
|
||||
|
||||
struct pg_cntl *pg_cntl35_create(
|
||||
|
||||
@ -183,6 +183,7 @@ void pg_cntl35_optc_pg_control(struct pg_cntl *pg_cntl,
|
||||
unsigned int optc_inst, bool power_on);
|
||||
void pg_cntl35_dwb_pg_control(struct pg_cntl *pg_cntl, bool power_on);
|
||||
void pg_cntl35_init_pg_status(struct pg_cntl *pg_cntl);
|
||||
void pg_cntl35_set_force_poweron_domain22(struct pg_cntl *pg_cntl, bool power_on);
|
||||
|
||||
struct pg_cntl *pg_cntl35_create(
|
||||
struct dc_context *ctx,
|
||||
|
||||
@ -311,6 +311,9 @@ void dcn35_init_hw(struct dc *dc)
|
||||
if (dc->res_pool->pg_cntl) {
|
||||
if (dc->res_pool->pg_cntl->funcs->init_pg_status)
|
||||
dc->res_pool->pg_cntl->funcs->init_pg_status(dc->res_pool->pg_cntl);
|
||||
|
||||
if (dc->res_pool->pg_cntl->funcs->set_force_poweron_domain22)
|
||||
dc->res_pool->pg_cntl->funcs->set_force_poweron_domain22(dc->res_pool->pg_cntl, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -47,6 +47,8 @@ struct pg_cntl_funcs {
|
||||
void (*optc_pg_control)(struct pg_cntl *pg_cntl, unsigned int optc_inst, bool power_on);
|
||||
void (*dwb_pg_control)(struct pg_cntl *pg_cntl, bool power_on);
|
||||
void (*init_pg_status)(struct pg_cntl *pg_cntl);
|
||||
|
||||
void (*set_force_poweron_domain22)(struct pg_cntl *pg_cntl, bool power_on);
|
||||
};
|
||||
|
||||
#endif //__DC_PG_CNTL_H__
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user