drm/rockchip: vop2: init vp->output_if for logo state

vp->output_if will be used at vop2_crtc_atomic_disable(), so we need
init it at vop2_crtc_loader_protect() for logo display.

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I259a858255abe701f8b8037ac09e84a46f8db489
This commit is contained in:
Sandy Huang
2025-04-07 17:44:44 +08:00
committed by Tao Huang
parent 384d229479
commit fd72b2f4af

View File

@@ -7765,7 +7765,7 @@ static int vop2_crtc_get_inital_acm_info(struct drm_crtc *crtc)
static int vop2_crtc_loader_protect(struct drm_crtc *crtc, bool on, void *data)
{
struct vop2_video_port *vp = to_vop2_video_port(crtc);
struct rockchip_crtc_state *vcstate = to_rockchip_crtc_state(crtc->state);
struct rockchip_crtc_state *vcstate;
struct vop2 *vop2 = vp->vop2;
struct rockchip_drm_private *private = crtc->dev->dev_private;
const struct vop2_video_port_data *vp_data = &vop2->data->vp[vp->id];
@@ -7796,6 +7796,8 @@ static int vop2_crtc_loader_protect(struct drm_crtc *crtc, bool on, void *data)
vp->enabled_win_mask |= BIT(win->phys_id);
crtc_state = drm_atomic_get_crtc_state(crtc->state->state, crtc);
vcstate = to_rockchip_crtc_state(crtc_state);
vp->output_if = vcstate->output_if;
mode = &crtc_state->adjusted_mode;
if (mode->hdisplay > VOP2_MAX_VP_OUTPUT_WIDTH) {
vcstate->splice_mode = true;