Skip to content

Commit 5bab4c8

Browse files
Ivan Lipskialexdeucher
authored andcommitted
drm/amd/display: Clear the CUR_ENABLE register on DCN20 on DPP5
[Why] On DCN20 & DCN30, the 6th DPP's & HUBP's are powered on permanently and cannot be power gated. Thus, when dpp_reset() is invoked for the DPP5, while it's still powered on, the cached cursor_state (dpp_base->pos.cur0_ctl.bits.cur0_enable) and the actual state (CUR0_ENABLE) bit are unsycned. This can cause a double cursor in full screen with non-native scaling. [How] Force disable cursor on DPP5 on plane powerdown for ASICs w/ 6 DPPs/HUBPs. Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4673 Reviewed-by: Aric Cyr <aric.cyr@amd.com> Signed-off-by: Ivan Lipski <ivan.lipski@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 79b3c03) Cc: stable@vger.kernel.org
1 parent c97da47 commit 5bab4c8

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,14 @@ void dcn20_dpp_pg_control(
614614
* DOMAIN11_PGFSM_PWR_STATUS, pwr_status,
615615
* 1, 1000);
616616
*/
617+
618+
/* Force disable cursor on plane powerdown on DPP 5 using dpp_force_disable_cursor */
619+
if (!power_on) {
620+
struct dpp *dpp5 = hws->ctx->dc->res_pool->dpps[dpp_inst];
621+
if (dpp5 && dpp5->funcs->dpp_force_disable_cursor)
622+
dpp5->funcs->dpp_force_disable_cursor(dpp5);
623+
}
624+
617625
break;
618626
default:
619627
BREAK_TO_DEBUGGER();

0 commit comments

Comments
 (0)