drm/rockchip: A couple small fixes to psr
authorSean Paul <seanpaul@chromium.org>
Wed, 17 Aug 2016 00:47:17 +0000 (17:47 -0700)
committerSean Paul <seanpaul@chromium.org>
Tue, 23 Aug 2016 15:44:35 +0000 (11:44 -0400)
A few things that need tidying up, no functional changes.

Reviewed-by: Yakir Yang <ykk@rock-chips.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
drivers/gpu/drm/rockchip/rockchip_drm_psr.c

index 5bd54f2..c6ac5d0 100644 (file)
@@ -62,27 +62,25 @@ static void psr_set_state_locked(struct psr_drv *psr, enum psr_state state)
         * Allowed finite state machine:
         *
         *   PSR_ENABLE  < = = = = = >  PSR_FLUSH
-         *      | ^                        |
-         *      | |                        |
-         *      v |                        |
+              | ^                        |
+              | |                        |
+              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);