forked from Minki/linux
mfd: Continue with IRQ setup even if we don't have PMIC main IRQ
The fact that we can't actually raise any interrupts doesn't stop us setting up the IRQs we're exporting. While this isn't actually going to do anything it allows us to proceed further through device setup during board bringup and avoids issues with the MFD core not letting us suppress the configuration of IRQ resources. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
0b14c22ea1
commit
bc86fcee37
@ -515,12 +515,6 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
|
|||||||
0xffff);
|
0xffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!irq) {
|
|
||||||
dev_warn(wm831x->dev,
|
|
||||||
"No interrupt specified - functionality limited\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!pdata || !pdata->irq_base) {
|
if (!pdata || !pdata->irq_base) {
|
||||||
dev_err(wm831x->dev,
|
dev_err(wm831x->dev,
|
||||||
"No interrupt base specified, no interrupts\n");
|
"No interrupt base specified, no interrupts\n");
|
||||||
@ -567,15 +561,22 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = request_threaded_irq(irq, NULL, wm831x_irq_thread,
|
if (irq) {
|
||||||
IRQF_TRIGGER_LOW | IRQF_ONESHOT,
|
ret = request_threaded_irq(irq, NULL, wm831x_irq_thread,
|
||||||
"wm831x", wm831x);
|
IRQF_TRIGGER_LOW | IRQF_ONESHOT,
|
||||||
if (ret != 0) {
|
"wm831x", wm831x);
|
||||||
dev_err(wm831x->dev, "Failed to request IRQ %d: %d\n",
|
if (ret != 0) {
|
||||||
irq, ret);
|
dev_err(wm831x->dev, "Failed to request IRQ %d: %d\n",
|
||||||
return ret;
|
irq, ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dev_warn(wm831x->dev,
|
||||||
|
"No interrupt specified - functionality limited\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Enable top level interrupts, we mask at secondary level */
|
/* Enable top level interrupts, we mask at secondary level */
|
||||||
wm831x_reg_write(wm831x, WM831X_SYSTEM_INTERRUPTS_MASK, 0);
|
wm831x_reg_write(wm831x, WM831X_SYSTEM_INTERRUPTS_MASK, 0);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user