|
@@ -91,34 +91,44 @@ void imx_gpc_restore_all(void)
|
|
|
writel_relaxed(gpc_saved_imrs[i], reg_imr1 + i * 4);
|
|
|
}
|
|
|
|
|
|
-void imx_gpc_irq_unmask(struct irq_data *d)
|
|
|
+void imx_gpc_hwirq_unmask(unsigned int hwirq)
|
|
|
{
|
|
|
void __iomem *reg;
|
|
|
u32 val;
|
|
|
|
|
|
- /* Sanity check for SPI irq */
|
|
|
- if (d->hwirq < 32)
|
|
|
- return;
|
|
|
-
|
|
|
- reg = gpc_base + GPC_IMR1 + (d->hwirq / 32 - 1) * 4;
|
|
|
+ reg = gpc_base + GPC_IMR1 + (hwirq / 32 - 1) * 4;
|
|
|
val = readl_relaxed(reg);
|
|
|
- val &= ~(1 << d->hwirq % 32);
|
|
|
+ val &= ~(1 << hwirq % 32);
|
|
|
writel_relaxed(val, reg);
|
|
|
}
|
|
|
|
|
|
-void imx_gpc_irq_mask(struct irq_data *d)
|
|
|
+void imx_gpc_hwirq_mask(unsigned int hwirq)
|
|
|
{
|
|
|
void __iomem *reg;
|
|
|
u32 val;
|
|
|
|
|
|
+ reg = gpc_base + GPC_IMR1 + (hwirq / 32 - 1) * 4;
|
|
|
+ val = readl_relaxed(reg);
|
|
|
+ val |= 1 << (hwirq % 32);
|
|
|
+ writel_relaxed(val, reg);
|
|
|
+}
|
|
|
+
|
|
|
+static void imx_gpc_irq_unmask(struct irq_data *d)
|
|
|
+{
|
|
|
+ /* Sanity check for SPI irq */
|
|
|
+ if (d->hwirq < 32)
|
|
|
+ return;
|
|
|
+
|
|
|
+ imx_gpc_hwirq_unmask(d->hwirq);
|
|
|
+}
|
|
|
+
|
|
|
+static void imx_gpc_irq_mask(struct irq_data *d)
|
|
|
+{
|
|
|
/* Sanity check for SPI irq */
|
|
|
if (d->hwirq < 32)
|
|
|
return;
|
|
|
|
|
|
- reg = gpc_base + GPC_IMR1 + (d->hwirq / 32 - 1) * 4;
|
|
|
- val = readl_relaxed(reg);
|
|
|
- val |= 1 << (d->hwirq % 32);
|
|
|
- writel_relaxed(val, reg);
|
|
|
+ imx_gpc_hwirq_mask(d->hwirq);
|
|
|
}
|
|
|
|
|
|
void __init imx_gpc_init(void)
|