[PORT FROM R2] io_apic: set_wake callback implemented
authorAymen Zayet <aymenx.zayet@intel.com>
Mon, 12 Dec 2011 13:46:50 +0000 (14:46 +0100)
committerbuildbot <buildbot@intel.com>
Thu, 29 Dec 2011 18:47:06 +0000 (10:47 -0800)
BZ: 5075

Ported from R2 branch with the original description below :
 In drivers/rtc/rtc-mrst.c:
 mrst_suspend()->enable_irq_wake()->set_irq_wake()->set_irq_wake_real()->checks
 desc->chip->set_wake callback
 desc->chip->set_wake callback is not defined hence desc->wake_depth is set to
 .0. and hence the WARN in set_irq_wake()

 set_wake call needs to be implemented for X86_MRST so that we dont get the
 WARN.

Change-Id: I61c85935c076e1daf07331e9ed0526cabf084264
Signed-off-by: Aymen Zayet <aymenx.zayet@intel.com>
Reviewed-on: http://android.intel.com:8080/27815
Reviewed-by: Champciaux, NicolasX <nicolasx.champciaux@intel.com>
Tested-by: Champciaux, NicolasX <nicolasx.champciaux@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
arch/x86/kernel/apic/io_apic.c

index 47c1c4d..0339583 100644 (file)
@@ -2355,6 +2355,13 @@ void irq_force_complete_move(int irq)
 static inline void irq_complete_move(struct irq_cfg *cfg) { }
 #endif
 
+#ifdef CONFIG_X86_MDFLD
+static int ioapic_set_wake(struct irq_data *data, unsigned int on)
+{
+       return 0;
+}
+#endif
+
 static void ack_apic_edge(struct irq_data *data)
 {
        irq_complete_move(data->chip_data);
@@ -2534,6 +2541,9 @@ static struct irq_chip ioapic_chip __read_mostly = {
 #ifdef CONFIG_SMP
        .irq_set_affinity       = ioapic_set_affinity,
 #endif
+#ifdef CONFIG_X86_MDFLD
+       .irq_set_wake   = ioapic_set_wake,
+#endif
        .irq_retrigger          = ioapic_retrigger_irq,
 };