mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 20:32:04 +09:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user