|
@@ -354,6 +354,8 @@ int __init register_intc_controller(struct intc_desc *desc)
|
|
|
if (desc->force_enable)
|
|
|
intc_enable_disable_enum(desc, d, desc->force_enable, 1);
|
|
|
|
|
|
+ d->skip_suspend = desc->skip_syscore_suspend;
|
|
|
+
|
|
|
nr_intc_controllers++;
|
|
|
|
|
|
return 0;
|
|
@@ -386,6 +388,9 @@ static int intc_suspend(void)
|
|
|
list_for_each_entry(d, &intc_list, list) {
|
|
|
int irq;
|
|
|
|
|
|
+ if (d->skip_suspend)
|
|
|
+ continue;
|
|
|
+
|
|
|
/* enable wakeup irqs belonging to this intc controller */
|
|
|
for_each_active_irq(irq) {
|
|
|
struct irq_data *data;
|
|
@@ -409,6 +414,9 @@ static void intc_resume(void)
|
|
|
list_for_each_entry(d, &intc_list, list) {
|
|
|
int irq;
|
|
|
|
|
|
+ if (d->skip_suspend)
|
|
|
+ continue;
|
|
|
+
|
|
|
for_each_active_irq(irq) {
|
|
|
struct irq_data *data;
|
|
|
struct irq_chip *chip;
|