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)