rk: revert 20f3d0b+v3.0.66 to v3.0
[firefly-linux-kernel-4.4.55.git] / kernel / irq / pm.c
index fe4b09cf829ca2625559e972d6eb8671e3182cdd..f76fc00c98776746a12fb5dce9111cb4033b1553 100644 (file)
@@ -9,7 +9,6 @@
 #include <linux/irq.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
-#include <linux/syscore_ops.h>
 
 #include "internals.h"
 
@@ -40,58 +39,25 @@ void suspend_device_irqs(void)
 }
 EXPORT_SYMBOL_GPL(suspend_device_irqs);
 
-static void resume_irqs(bool want_early)
+/**
+ * resume_device_irqs - enable interrupt lines disabled by suspend_device_irqs()
+ *
+ * Enable all interrupt lines previously disabled by suspend_device_irqs() that
+ * have the IRQS_SUSPENDED flag set.
+ */
+void resume_device_irqs(void)
 {
        struct irq_desc *desc;
        int irq;
 
        for_each_irq_desc(irq, desc) {
                unsigned long flags;
-               bool is_early = desc->action &&
-                       desc->action->flags & IRQF_EARLY_RESUME;
-
-               if (is_early != want_early)
-                       continue;
 
                raw_spin_lock_irqsave(&desc->lock, flags);
                __enable_irq(desc, irq, true);
                raw_spin_unlock_irqrestore(&desc->lock, flags);
        }
 }
-
-/**
- * irq_pm_syscore_ops - enable interrupt lines early
- *
- * Enable all interrupt lines with %IRQF_EARLY_RESUME set.
- */
-static void irq_pm_syscore_resume(void)
-{
-       resume_irqs(true);
-}
-
-static struct syscore_ops irq_pm_syscore_ops = {
-       .resume         = irq_pm_syscore_resume,
-};
-
-static int __init irq_pm_init_ops(void)
-{
-       register_syscore_ops(&irq_pm_syscore_ops);
-       return 0;
-}
-
-device_initcall(irq_pm_init_ops);
-
-/**
- * resume_device_irqs - enable interrupt lines disabled by suspend_device_irqs()
- *
- * Enable all non-%IRQF_EARLY_RESUME interrupt lines previously
- * disabled by suspend_device_irqs() that have the IRQS_SUSPENDED flag
- * set as well as those with %IRQF_FORCE_RESUME.
- */
-void resume_device_irqs(void)
-{
-       resume_irqs(false);
-}
 EXPORT_SYMBOL_GPL(resume_device_irqs);
 
 /**
@@ -104,13 +70,8 @@ int check_wakeup_irqs(void)
 
        for_each_irq_desc(irq, desc) {
                if (irqd_is_wakeup_set(&desc->irq_data)) {
-                       if (desc->istate & IRQS_PENDING) {
-                               pr_info("Wakeup IRQ %d %s pending, suspend aborted\n",
-                                       irq,
-                                       desc->action && desc->action->name ?
-                                       desc->action->name : "");
+                       if (desc->istate & IRQS_PENDING)
                                return -EBUSY;
-                       }
                        continue;
                }
                /*