drm/rockchip: vop2: move rk3588 pd control together

This is a merge error at following commit:

commit 32062f68cc ("drm/rockchip: vop2: update dsc pd status when show logo with dsc")

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I603abd28fb9e1ccdbb06fa1e25c3a64b35b8d293
This commit is contained in:
Sandy Huang
2024-07-15 15:44:54 +08:00
committed by Tao Huang
parent fb5c51ed5f
commit 52aa0d1aaf

View File

@@ -4304,6 +4304,33 @@ static void vop2_initial(struct drm_crtc *crtc)
esmart_pd->on = true;
else
vop2_power_domain_on(esmart_pd);
if (vop2->data->nr_dscs) {
struct vop2_dsc *dsc;
int i = 0;
for (i = 0; i < vop2->data->nr_dscs; i++) {
dsc = &vop2->dscs[i];
if (!dsc->pd)
continue;
/* To access dsc register must after enable dsc pd and release reset */
if (!vop2_power_domain_status(dsc->pd) ||
!VOP_MODULE_GET(vop2, dsc, rst_deassert))
continue;
dsc->enabled = VOP_MODULE_GET(vop2, dsc, dsc_en);
if (dsc->enabled) {
dsc->attach_vp_id = VOP_MODULE_GET(vop2, dsc,
dsc_port_sel);
dsc->pd->vp_mask = BIT(dsc->attach_vp_id);
dsc->pd->on = true;
dsc->pd->ref_count++;
}
}
}
} else {
struct vop2_power_domain *pd, *n;
@@ -4408,43 +4435,6 @@ static void vop2_initial(struct drm_crtc *crtc)
* immediately.
*/
VOP_CTRL_SET(vop2, if_ctrl_cfg_done_imd, 1);
/* Close dynamic turn on/off rk3588 PD_ESMART and keep esmart pd on when enable */
if (vop2->version == VOP_VERSION_RK3588) {
struct vop2_power_domain *esmart_pd = vop2_find_pd_by_id(vop2, VOP2_PD_ESMART);
if (vop2_power_domain_status(esmart_pd))
esmart_pd->on = true;
else
vop2_power_domain_on(esmart_pd);
if (vop2->data->nr_dscs) {
struct vop2_dsc *dsc;
int i = 0;
for (i = 0; i < vop2->data->nr_dscs; i++) {
dsc = &vop2->dscs[i];
if (!dsc->pd)
continue;
/* To access dsc register must after enable dsc pd and release reset */
if (!vop2_power_domain_status(dsc->pd) ||
!VOP_MODULE_GET(vop2, dsc, rst_deassert))
continue;
dsc->enabled = VOP_MODULE_GET(vop2, dsc, dsc_en);
if (dsc->enabled) {
dsc->attach_vp_id = VOP_MODULE_GET(vop2, dsc,
dsc_port_sel);
dsc->pd->vp_mask = BIT(dsc->attach_vp_id);
dsc->pd->on = true;
dsc->pd->ref_count++;
}
}
}
}
vop2_layer_map_initial(vop2, current_vp_id);
vop2_axi_irqs_enable(vop2);
vop2->is_enabled = true;