From: kalakodima venkata rajesh <venkatarajesh.kalakodima@xxxxxxxxxxxx> - Introduce new functions for queueing clu and lut events. - Functionality remains same, only some code is moved to new functions. Signed-off-by: Harsha M M <harsha.manjulamallikarjun@xxxxxxxxxxxx> - Resolved checkpatch errors - Resolved merge conflicts according to latest version Signed-off-by: kalakodima venkata rajesh <venkatarajesh.kalakodima@xxxxxxxxxxxx> --- drivers/gpu/drm/rcar-du/rcar_du_cmm.c | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_cmm.c b/drivers/gpu/drm/rcar-du/rcar_du_cmm.c index d380dd9..7983039 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_cmm.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_cmm.c @@ -246,6 +246,44 @@ static void du_cmm_clk(struct rcar_du_cmm *du_cmm, bool on) clk_disable_unprepare(du_cmm->clock); } +static void rcar_du_cmm_queue_lut_update(struct rcar_du_cmm_pending_event *p) +{ + mutex_lock(&cmm_event_lock); + + list_add_tail(&p->link, &p->du_cmm->lut.list); + + if (p->fpriv) + list_add_tail(&p->fpriv_link, &p->fpriv->list); + + event_prev_cancel_locked(&p->du_cmm->lut); + + if (p->du_cmm->direct) + queue_work(p->du_cmm->workqueue, &p->du_cmm->work); + + mutex_unlock(&cmm_event_lock); + + drm_crtc_vblank_get(&p->du_cmm->rcrtc->crtc); +} + +static void rcar_du_cmm_queue_clu_update(struct rcar_du_cmm_pending_event *p) +{ + mutex_lock(&cmm_event_lock); + + list_add_tail(&p->link, &p->du_cmm->clu.list); + + if (p->fpriv) + list_add_tail(&p->fpriv_link, &p->fpriv->list); + + event_prev_cancel_locked(&p->du_cmm->clu); + + if (p->du_cmm->direct) + queue_work(p->du_cmm->workqueue, &p->du_cmm->work); + + mutex_unlock(&cmm_event_lock); + + drm_crtc_vblank_get(&p->du_cmm->rcrtc->crtc); +} + int rcar_du_cmm_start_stop(struct rcar_du_crtc *rcrtc, bool on) { struct rcar_du_cmm *du_cmm = rcrtc->cmm_handle; -- 2.7.4