@@ -47,14 +47,12 @@ static struct clk *clk;
static unsigned int mdp_irq_mask;
DEFINE_MUTEX(mdp_mutex);
-static int enable_mdp_irq(struct mdp_info *mdp, uint32_t mask)
+static int locked_enable_mdp_irq(struct mdp_info *mdp, uint32_t mask)
{
- unsigned long irq_flags;
int ret = 0;
BUG_ON(!mask);
- spin_lock_irqsave(&mdp->lock, irq_flags);
/* if the mask bits are already set return an error, this interrupt
* is already enabled */
if (mdp_irq_mask & mask) {
@@ -72,7 +70,17 @@ static int enable_mdp_irq(struct mdp_info *mdp, uint32_t mask)
/* update the irq mask to reflect the fact that the interrupt is
* enabled */
mdp_irq_mask |= mask;
- spin_unlock_irqrestore(&mdp->lock, irq_flags);
+ return 0;
+}
+
+static int enable_mdp_irq(struct mdp_info *mdp, uint32_t mask)
+{
+ unsigned long flags;
+ int ret;
+
+ spin_lock_irqsave(&mdp->lock, flags);
+ ret = locked_enable_mdp_irq(mdp, mask);
+ spin_unlock_irqrestore(&mdp->lock, flags);
return ret;
}