Browse Source

genirq: Move IRQ_SUSPENDED to core

No users outside of core.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Thomas Gleixner 14 years ago
parent
commit
c531e8361f
4 changed files with 9 additions and 9 deletions
  1. 0 2
      include/linux/irq.h
  2. 2 0
      kernel/irq/internals.h
  3. 4 4
      kernel/irq/manage.c
  4. 3 3
      kernel/irq/pm.c

+ 0 - 2
include/linux/irq.h

@@ -60,7 +60,6 @@ typedef	void (*irq_flow_handler_t)(unsigned int irq,
 #define IRQ_MASKED		0x00002000	/* DEPRECATED */
 #define IRQ_MASKED		0x00002000	/* DEPRECATED */
 #endif
 #endif
 
 
-
 #define IRQ_LEVEL		0x00004000	/* IRQ level triggered */
 #define IRQ_LEVEL		0x00004000	/* IRQ level triggered */
 #define IRQ_PER_CPU		0x00010000	/* IRQ is per CPU */
 #define IRQ_PER_CPU		0x00010000	/* IRQ is per CPU */
 #define IRQ_NOPROBE		0x00020000	/* IRQ is not valid for probing */
 #define IRQ_NOPROBE		0x00020000	/* IRQ is not valid for probing */
@@ -71,7 +70,6 @@ typedef	void (*irq_flow_handler_t)(unsigned int irq,
 #define IRQ_NO_BALANCING	0x00400000	/* IRQ is excluded from balancing */
 #define IRQ_NO_BALANCING	0x00400000	/* IRQ is excluded from balancing */
 #define IRQ_MOVE_PCNTXT		0x01000000	/* IRQ migration from process context */
 #define IRQ_MOVE_PCNTXT		0x01000000	/* IRQ migration from process context */
 #define IRQ_AFFINITY_SET	0x02000000	/* IRQ affinity was set from userspace*/
 #define IRQ_AFFINITY_SET	0x02000000	/* IRQ affinity was set from userspace*/
-#define IRQ_SUSPENDED		0x04000000	/* IRQ has gone through suspend sequence */
 #define IRQ_NESTED_THREAD	0x10000000	/* IRQ is nested into another, no own handler thread */
 #define IRQ_NESTED_THREAD	0x10000000	/* IRQ is nested into another, no own handler thread */
 
 
 #define IRQF_MODIFY_MASK	\
 #define IRQF_MODIFY_MASK	\

+ 2 - 0
kernel/irq/internals.h

@@ -48,6 +48,7 @@ enum {
  * IRQS_DISABLED		- irq is disabled
  * IRQS_DISABLED		- irq is disabled
  * IRQS_PENDING			- irq is pending and replayed later
  * IRQS_PENDING			- irq is pending and replayed later
  * IRQS_MASKED			- irq is masked
  * IRQS_MASKED			- irq is masked
+ * IRQS_SUSPENDED		- irq is suspended
  */
  */
 enum {
 enum {
 	IRQS_AUTODETECT		= 0x00000001,
 	IRQS_AUTODETECT		= 0x00000001,
@@ -60,6 +61,7 @@ enum {
 	IRQS_DISABLED		= 0x00000100,
 	IRQS_DISABLED		= 0x00000100,
 	IRQS_PENDING		= 0x00000200,
 	IRQS_PENDING		= 0x00000200,
 	IRQS_MASKED		= 0x00000400,
 	IRQS_MASKED		= 0x00000400,
+	IRQS_SUSPENDED		= 0x00000800,
 };
 };
 
 
 #define irq_data_to_desc(data)	container_of(data, struct irq_desc, irq_data)
 #define irq_data_to_desc(data)	container_of(data, struct irq_desc, irq_data)

+ 4 - 4
kernel/irq/manage.c

@@ -326,7 +326,7 @@ void __disable_irq(struct irq_desc *desc, unsigned int irq, bool suspend)
 	if (suspend) {
 	if (suspend) {
 		if (!desc->action || (desc->action->flags & IRQF_NO_SUSPEND))
 		if (!desc->action || (desc->action->flags & IRQF_NO_SUSPEND))
 			return;
 			return;
-		desc->status |= IRQ_SUSPENDED;
+		desc->istate |= IRQS_SUSPENDED;
 	}
 	}
 
 
 	if (!desc->depth++)
 	if (!desc->depth++)
@@ -388,7 +388,7 @@ EXPORT_SYMBOL(disable_irq);
 void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume)
 void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume)
 {
 {
 	if (resume) {
 	if (resume) {
-		if (!(desc->status & IRQ_SUSPENDED)) {
+		if (!(desc->istate & IRQS_SUSPENDED)) {
 			if (!desc->action)
 			if (!desc->action)
 				return;
 				return;
 			if (!(desc->action->flags & IRQF_FORCE_RESUME))
 			if (!(desc->action->flags & IRQF_FORCE_RESUME))
@@ -396,7 +396,7 @@ void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume)
 			/* Pretend that it got disabled ! */
 			/* Pretend that it got disabled ! */
 			desc->depth++;
 			desc->depth++;
 		}
 		}
-		desc->status &= ~IRQ_SUSPENDED;
+		desc->istate &= ~IRQS_SUSPENDED;
 	}
 	}
 
 
 	switch (desc->depth) {
 	switch (desc->depth) {
@@ -405,7 +405,7 @@ void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume)
 		WARN(1, KERN_WARNING "Unbalanced enable for IRQ %d\n", irq);
 		WARN(1, KERN_WARNING "Unbalanced enable for IRQ %d\n", irq);
 		break;
 		break;
 	case 1: {
 	case 1: {
-		if (desc->status & IRQ_SUSPENDED)
+		if (desc->istate & IRQS_SUSPENDED)
 			goto err_out;
 			goto err_out;
 		/* Prevent probing on this irq: */
 		/* Prevent probing on this irq: */
 		desc->status |= IRQ_NOPROBE;
 		desc->status |= IRQ_NOPROBE;

+ 3 - 3
kernel/irq/pm.c

@@ -18,7 +18,7 @@
  * During system-wide suspend or hibernation device drivers need to be prevented
  * During system-wide suspend or hibernation device drivers need to be prevented
  * from receiving interrupts and this function is provided for this purpose.
  * from receiving interrupts and this function is provided for this purpose.
  * It marks all interrupt lines in use, except for the timer ones, as disabled
  * It marks all interrupt lines in use, except for the timer ones, as disabled
- * and sets the IRQ_SUSPENDED flag for each of them.
+ * and sets the IRQS_SUSPENDED flag for each of them.
  */
  */
 void suspend_device_irqs(void)
 void suspend_device_irqs(void)
 {
 {
@@ -34,7 +34,7 @@ void suspend_device_irqs(void)
 	}
 	}
 
 
 	for_each_irq_desc(irq, desc)
 	for_each_irq_desc(irq, desc)
-		if (desc->status & IRQ_SUSPENDED)
+		if (desc->istate & IRQS_SUSPENDED)
 			synchronize_irq(irq);
 			synchronize_irq(irq);
 }
 }
 EXPORT_SYMBOL_GPL(suspend_device_irqs);
 EXPORT_SYMBOL_GPL(suspend_device_irqs);
@@ -43,7 +43,7 @@ EXPORT_SYMBOL_GPL(suspend_device_irqs);
  * resume_device_irqs - enable interrupt lines disabled by suspend_device_irqs()
  * resume_device_irqs - enable interrupt lines disabled by suspend_device_irqs()
  *
  *
  * Enable all interrupt lines previously disabled by suspend_device_irqs() that
  * Enable all interrupt lines previously disabled by suspend_device_irqs() that
- * have the IRQ_SUSPENDED flag set.
+ * have the IRQS_SUSPENDED flag set.
  */
  */
 void resume_device_irqs(void)
 void resume_device_irqs(void)
 {
 {