Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57ace898 authored by Alexander Beykun's avatar Alexander Beykun
Browse files

drm/msm/sde: move UBWC init into SDE_POWER_EVENT_POST_ENABLE event



Move the UBWC initialization into SDE_POWER_EVENT_POST_ENABLE event,
to trigger when V4L2 driver votes for DPU shared resources.
This is required for standalone V4L2 offline rotation with UBWC formats
which previously failed if there was no prior commit to the display
due to UBWC HW block not being initialized.

Change-Id: Ifc2d1509447f3f95f04630b79f266882a531345e
Signed-off-by: default avatarAlexander Beykun <abeykun@codeaurora.org>
parent 5fe07b01
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -2364,6 +2364,16 @@ static int _sde_kms_mmu_init(struct sde_kms *sde_kms)
	return ret;
}

static void sde_kms_init_shared_hw(struct sde_kms *sde_kms)
{
	if (!sde_kms || !sde_kms->hw_mdp || !sde_kms->catalog)
		return;

	if (sde_kms->hw_mdp->ops.reset_ubwc)
		sde_kms->hw_mdp->ops.reset_ubwc(sde_kms->hw_mdp,
						sde_kms->catalog);
}

static void sde_kms_handle_power_event(u32 event_type, void *usr)
{
	struct sde_kms *sde_kms = usr;
@@ -2379,6 +2389,7 @@ static void sde_kms_handle_power_event(u32 event_type, void *usr)
	if (event_type == SDE_POWER_EVENT_POST_ENABLE) {
		sde_irq_update(msm_kms, true);
		sde_vbif_init_memtypes(sde_kms);
		sde_kms_init_shared_hw(sde_kms);
	} else if (event_type == SDE_POWER_EVENT_PRE_DISABLE) {
		sde_irq_update(msm_kms, false);
	}