|
@@ -136,7 +136,11 @@ int __init brcmstb_l2_intc_of_init(struct device_node *np,
|
|
|
|
|
|
/* Disable all interrupts by default */
|
|
|
writel(0xffffffff, data->base + CPU_MASK_SET);
|
|
|
- writel(0xffffffff, data->base + CPU_CLEAR);
|
|
|
+
|
|
|
+ /* Wakeup interrupts may be retained from S5 (cold boot) */
|
|
|
+ data->can_wake = of_property_read_bool(np, "brcm,irq-can-wake");
|
|
|
+ if (!data->can_wake)
|
|
|
+ writel(0xffffffff, data->base + CPU_CLEAR);
|
|
|
|
|
|
data->parent_irq = irq_of_parse_and_map(np, 0);
|
|
|
if (!data->parent_irq) {
|
|
@@ -188,8 +192,7 @@ int __init brcmstb_l2_intc_of_init(struct device_node *np,
|
|
|
ct->chip.irq_suspend = brcmstb_l2_intc_suspend;
|
|
|
ct->chip.irq_resume = brcmstb_l2_intc_resume;
|
|
|
|
|
|
- if (of_property_read_bool(np, "brcm,irq-can-wake")) {
|
|
|
- data->can_wake = true;
|
|
|
+ if (data->can_wake) {
|
|
|
/* This IRQ chip can wake the system, set all child interrupts
|
|
|
* in wake_enabled mask
|
|
|
*/
|