Merge "disp: msm: sde: avoid setting plane qos_dirty during cwb modeset"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
f320be5d5e
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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,
|
||||||
|
Reference in New Issue
Block a user