struct mgr_priv_data *mp = get_mgr_priv(mgr);
struct ovl_priv_data *op;
struct omap_overlay *ovl;
+ unsigned long flags;
+
+ spin_lock_irqsave(&data_lock, flags);
mp->do_manual_update = true;
dss_write_regs();
mp->shadow_dirty = false;
dispc_mgr_enable(mgr->id, true);
+
+ spin_unlock_irqrestore(&data_lock, flags);
}
static void dss_apply_irq_handler(void *data, u32 mask);
int dss_mgr_set_info(struct omap_overlay_manager *mgr,
struct omap_overlay_manager_info *info)
{
+ unsigned long flags;
+
+ spin_lock_irqsave(&data_lock, flags);
+
mgr->info = *info;
mgr->info_dirty = true;
+ spin_unlock_irqrestore(&data_lock, flags);
+
return 0;
}
void dss_mgr_get_info(struct omap_overlay_manager *mgr,
struct omap_overlay_manager_info *info)
{
+ unsigned long flags;
+
+ spin_lock_irqsave(&data_lock, flags);
+
*info = mgr->info;
+
+ spin_unlock_irqrestore(&data_lock, flags);
}
int dss_mgr_set_device(struct omap_overlay_manager *mgr,
int dss_ovl_set_info(struct omap_overlay *ovl,
struct omap_overlay_info *info)
{
+ unsigned long flags;
+
+ spin_lock_irqsave(&data_lock, flags);
+
ovl->info = *info;
ovl->info_dirty = true;
+ spin_unlock_irqrestore(&data_lock, flags);
+
return 0;
}
void dss_ovl_get_info(struct omap_overlay *ovl,
struct omap_overlay_info *info)
{
+ unsigned long flags;
+
+ spin_lock_irqsave(&data_lock, flags);
+
*info = ovl->info;
+
+ spin_unlock_irqrestore(&data_lock, flags);
}
int dss_ovl_set_manager(struct omap_overlay *ovl,