Commit a9c4fbd5 authored by Tomi Valkeinen's avatar Tomi Valkeinen

drm/omap: drop unneeded locking from mgr_fld_write()

Commit d49cd155 ("OMAPDSS: DISPC: lock
access to DISPC_CONTROL & DISPC_CONFIG") added locking to
mgr_fld_write(). This was needed in omapfb times due to lack of good
locking, especially in the case of both V4L2 and fbdev layers using the
DSS driver.

This is not needed for omapdrm, so we can remove the locking.
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190930103840.18970-2-tomi.valkeinen@ti.com
parent dfc507b9
...@@ -184,9 +184,6 @@ struct dispc_device { ...@@ -184,9 +184,6 @@ struct dispc_device {
struct regmap *syscon_pol; struct regmap *syscon_pol;
u32 syscon_pol_offset; u32 syscon_pol_offset;
/* DISPC_CONTROL & DISPC_CONFIG lock*/
spinlock_t control_lock;
}; };
enum omap_color_component { enum omap_color_component {
...@@ -377,16 +374,8 @@ static void mgr_fld_write(struct dispc_device *dispc, enum omap_channel channel, ...@@ -377,16 +374,8 @@ static void mgr_fld_write(struct dispc_device *dispc, enum omap_channel channel,
enum mgr_reg_fields regfld, int val) enum mgr_reg_fields regfld, int val)
{ {
const struct dispc_reg_field rfld = mgr_desc[channel].reg_desc[regfld]; const struct dispc_reg_field rfld = mgr_desc[channel].reg_desc[regfld];
const bool need_lock = rfld.reg == DISPC_CONTROL || rfld.reg == DISPC_CONFIG;
unsigned long flags;
if (need_lock) {
spin_lock_irqsave(&dispc->control_lock, flags);
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); REG_FLD_MOD(dispc, rfld.reg, val, rfld.high, rfld.low);
}
} }
static int dispc_get_num_ovls(struct dispc_device *dispc) static int dispc_get_num_ovls(struct dispc_device *dispc)
...@@ -4768,8 +4757,6 @@ static int dispc_bind(struct device *dev, struct device *master, void *data) ...@@ -4768,8 +4757,6 @@ static int dispc_bind(struct device *dev, struct device *master, void *data)
platform_set_drvdata(pdev, dispc); platform_set_drvdata(pdev, dispc);
dispc->dss = dss; dispc->dss = dss;
spin_lock_init(&dispc->control_lock);
/* /*
* The OMAP3-based models can't be told apart using the compatible * The OMAP3-based models can't be told apart using the compatible
* string, use SoC device matching. * string, use SoC device matching.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment