Merge "disp: msm: sde: enable llcc in AOD mode"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
89422fbde1
@@ -3814,14 +3814,8 @@ static void sde_crtc_atomic_begin(struct drm_crtc *crtc,
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0))
|
||||
static void sde_crtc_atomic_flush(struct drm_crtc *crtc,
|
||||
static void sde_crtc_atomic_flush_common(struct drm_crtc *crtc,
|
||||
struct drm_atomic_state *state)
|
||||
#else
|
||||
static void sde_crtc_atomic_flush(struct drm_crtc *crtc,
|
||||
struct drm_crtc_state *old_crtc_state)
|
||||
#endif
|
||||
{
|
||||
struct drm_encoder *encoder;
|
||||
struct sde_crtc *sde_crtc;
|
||||
@@ -3830,6 +3824,9 @@ static void sde_crtc_atomic_flush(struct drm_crtc *crtc,
|
||||
struct msm_drm_private *priv;
|
||||
struct sde_crtc_state *cstate;
|
||||
struct sde_kms *sde_kms;
|
||||
struct drm_connector *conn;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct sde_connector *sde_conn = NULL;
|
||||
int i;
|
||||
|
||||
if (!crtc || !crtc->dev || !crtc->dev->dev_private) {
|
||||
@@ -3861,6 +3858,17 @@ static void sde_crtc_atomic_flush(struct drm_crtc *crtc,
|
||||
dev = crtc->dev;
|
||||
priv = dev->dev_private;
|
||||
|
||||
for_each_new_connector_in_state(state, conn, conn_state, i) {
|
||||
if (!conn_state || conn_state->crtc != crtc)
|
||||
continue;
|
||||
|
||||
sde_conn = to_sde_connector(conn_state->connector);
|
||||
}
|
||||
|
||||
/* When doze is requested, switch first to normal mode */
|
||||
if (sde_conn && sde_conn->lp_mode && sde_crtc_get_property(cstate, CRTC_PROP_CACHE_STATE))
|
||||
sde_crtc_static_img_control(crtc, CACHE_STATE_NORMAL, false);
|
||||
|
||||
if ((sde_crtc->cache_state == CACHE_STATE_NORMAL) &&
|
||||
sde_crtc_get_property(cstate, CRTC_PROP_CACHE_STATE))
|
||||
sde_crtc_static_img_control(crtc, CACHE_STATE_FRAME_WRITE,
|
||||
@@ -3928,6 +3936,20 @@ static void sde_crtc_atomic_flush(struct drm_crtc *crtc,
|
||||
SDE_ATRACE_END("sde_crtc_atomic_flush");
|
||||
}
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0))
|
||||
static void sde_crtc_atomic_flush(struct drm_crtc *crtc,
|
||||
struct drm_atomic_state *state)
|
||||
{
|
||||
return sde_crtc_atomic_flush_common(crtc, state);
|
||||
}
|
||||
#else
|
||||
static void sde_crtc_atomic_flush(struct drm_crtc *crtc,
|
||||
struct drm_crtc_state *old_crtc_state)
|
||||
{
|
||||
return sde_crtc_atomic_flush_common(crtc, old_crtc_state->state);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sde_crtc_destroy_state - state destroy hook
|
||||
* @crtc: drm CRTC
|
||||
|
Reference in New Issue
Block a user