Merge "disp: msm: sde: avoid setting plane qos_dirty during cwb modeset"

This commit is contained in:
qctecmdr
2022-10-24 12:37:21 -07:00
committed by Gerrit - the friendly Code Review server
2 changed files with 11 additions and 3 deletions

View File

@@ -6870,6 +6870,7 @@ void sde_crtc_set_qos_dirty(struct drm_crtc *crtc)
struct drm_plane *plane; struct drm_plane *plane;
struct drm_plane_state *state; struct drm_plane_state *state;
struct sde_plane_state *pstate; struct sde_plane_state *pstate;
u32 plane_mask = 0;
drm_atomic_crtc_for_each_plane(plane, crtc) { drm_atomic_crtc_for_each_plane(plane, crtc) {
state = plane->state; state = plane->state;
@@ -6879,7 +6880,10 @@ void sde_crtc_set_qos_dirty(struct drm_crtc *crtc)
pstate = to_sde_plane_state(state); pstate = to_sde_plane_state(state);
pstate->dirty |= SDE_PLANE_DIRTY_QOS; pstate->dirty |= SDE_PLANE_DIRTY_QOS;
plane_mask |= drm_plane_mask(plane);
} }
SDE_EVT32(DRMID(crtc), plane_mask);
sde_crtc_update_line_time(crtc); sde_crtc_update_line_time(crtc);
} }

View File

@@ -2643,7 +2643,13 @@ static void sde_encoder_virt_mode_set(struct drm_encoder *drm_enc,
sde_enc->crtc = drm_enc->crtc; sde_enc->crtc = drm_enc->crtc;
sde_crtc = to_sde_crtc(drm_enc->crtc); sde_crtc = to_sde_crtc(drm_enc->crtc);
sde_crtc_set_qos_dirty(drm_enc->crtc);
crtc_state = sde_crtc->base.state;
sde_crtc_state = to_sde_crtc_state(crtc_state);
if (!((sde_enc->disp_info.intf_type == DRM_MODE_CONNECTOR_VIRTUAL) &&
((sde_crtc_state->cached_cwb_enc_mask & drm_encoder_mask(drm_enc)))))
sde_crtc_set_qos_dirty(drm_enc->crtc);
/* get and store the mode_info */ /* get and store the mode_info */
conn = sde_encoder_get_connector(sde_kms->dev, drm_enc); conn = sde_encoder_get_connector(sde_kms->dev, drm_enc);
@@ -2672,8 +2678,6 @@ static void sde_encoder_virt_mode_set(struct drm_encoder *drm_enc,
if (ret) if (ret)
return; return;
crtc_state = sde_crtc->base.state;
sde_crtc_state = to_sde_crtc_state(crtc_state);
if ((sde_enc->disp_info.intf_type == DRM_MODE_CONNECTOR_VIRTUAL) && if ((sde_enc->disp_info.intf_type == DRM_MODE_CONNECTOR_VIRTUAL) &&
((sde_crtc_state->cached_cwb_enc_mask & drm_encoder_mask(drm_enc)))) { ((sde_crtc_state->cached_cwb_enc_mask & drm_encoder_mask(drm_enc)))) {
SDE_EVT32(DRMID(drm_enc), sde_crtc_state->cwb_enc_mask, SDE_EVT32(DRMID(drm_enc), sde_crtc_state->cwb_enc_mask,