drm/omap: reorganize locking in mgr_fld_write
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Mon, 12 Feb 2018 07:16:08 +0000 (09:16 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 1 Mar 2018 07:18:18 +0000 (09:18 +0200)
Fix sparse warning:

drivers/gpu/drm/omapdrm/dss/dispc.c:387:9: warning: context imbalance in 'mgr_fld_write' - different lock contexts for basic block

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/dss/dispc.c

index ce470b51e326d411e367d21dc2ead8375897170f..d2d95c76a31302686ca888f2ef7e592975ad46b7 100644 (file)
@@ -396,13 +396,13 @@ static void mgr_fld_write(struct dispc_device *dispc, enum omap_channel channel,
        const bool need_lock = rfld.reg == DISPC_CONTROL || rfld.reg == DISPC_CONFIG;
        unsigned long flags;
 
-       if (need_lock)
+       if (need_lock) {
                spin_lock_irqsave(&dispc->control_lock, flags);
-
-       REG_FLD_MOD(dispc, rfld.reg, val, rfld.high, rfld.low);
-
-       if (need_lock)
+               REG_FLD_MOD(dispc, rfld.reg, val, rfld.high, rfld.low);
                spin_unlock_irqrestore(&dispc->control_lock, flags);
+       } else {
+               REG_FLD_MOD(dispc, rfld.reg, val, rfld.high, rfld.low);
+       }
 }
 
 static int dispc_get_num_ovls(struct dispc_device *dispc)