Blob Blame History Raw
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
Date: Mon, 12 Feb 2018 09:16:08 +0200
Subject: drm/omap: reorganize locking in mgr_fld_write
Git-commit: fe6b503910e9d794d64e6dd311f4d5c80514069f
Patch-mainline: v4.17-rc1
References: FATE#326289 FATE#326079 FATE#326049 FATE#322398 FATE#326166

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>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
 drivers/gpu/drm/omapdrm/dss/dispc.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/drivers/gpu/drm/omapdrm/dss/dispc.c
+++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
@@ -396,13 +396,13 @@ static void mgr_fld_write(struct dispc_d
 	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)