|
@@ -469,6 +469,8 @@ void __init vic_init(void __iomem *base, unsigned int irq_start,
|
|
|
int __init vic_of_init(struct device_node *node, struct device_node *parent)
|
|
|
{
|
|
|
void __iomem *regs;
|
|
|
+ u32 interrupt_mask = ~0;
|
|
|
+ u32 wakeup_mask = ~0;
|
|
|
|
|
|
if (WARN(parent, "non-root VICs are not supported"))
|
|
|
return -EINVAL;
|
|
@@ -477,10 +479,13 @@ int __init vic_of_init(struct device_node *node, struct device_node *parent)
|
|
|
if (WARN_ON(!regs))
|
|
|
return -EIO;
|
|
|
|
|
|
+ of_property_read_u32(node, "valid-mask", &interrupt_mask);
|
|
|
+ of_property_read_u32(node, "valid-wakeup-mask", &wakeup_mask);
|
|
|
+
|
|
|
/*
|
|
|
* Passing 0 as first IRQ makes the simple domain allocate descriptors
|
|
|
*/
|
|
|
- __vic_init(regs, 0, ~0, ~0, node);
|
|
|
+ __vic_init(regs, 0, interrupt_mask, wakeup_mask, node);
|
|
|
|
|
|
return 0;
|
|
|
}
|