Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 46bdc649 authored by Sean Paul's avatar Sean Paul
Browse files

drm/rockchip: A couple small fixes to psr



A few things that need tidying up, no functional changes.

Reviewed-by: default avatarYakir Yang <ykk@rock-chips.com>
Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
parent eec85347
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -67,22 +67,20 @@ static void psr_set_state_locked(struct psr_drv *psr, enum psr_state state)
	 *       v |                        |
	 *   PSR_DISABLE < - - - - - - - - -
	 */

	/* Forbid no state change */
	if (state == psr->state)
		return;

	/* Forbid DISABLE change to FLUSH */
	/* Requesting a flush when disabled is a noop */
	if (state == PSR_FLUSH && psr->state == PSR_DISABLE)
		return;

	psr->state = state;

	/* Allow but no need hardware change, just need assign the state */
	/* Already disabled in flush, change the state, but not the hardware */
	if (state == PSR_DISABLE && psr->state == PSR_FLUSH)
		return;

	/* Refact to hardware state change */
	/* Actually commit the state change to hardware */
	switch (psr->state) {
	case PSR_ENABLE:
		psr->set(psr->encoder, true);
@@ -109,10 +107,7 @@ static void psr_flush_handler(unsigned long data)
	struct psr_drv *psr = (struct psr_drv *)data;
	unsigned long flags;

	if (!psr)
		return;

	/* State changed between flush time, then keep it */
	/* If the state has changed since we initiated the flush, do nothing */
	spin_lock_irqsave(&psr->lock, flags);
	if (psr->state == PSR_FLUSH)
		psr_set_state_locked(psr, PSR_ENABLE);