]> err.no Git - linux-2.6/blobdiff - include/asm-powerpc/mpic.h
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
[linux-2.6] / include / asm-powerpc / mpic.h
index e4d5fc5362a02e3389fc75f3d5fd9710fc0488ea..ae84dde3bc7f0574064a8927abc429a8004a1820 100644 (file)
@@ -3,6 +3,7 @@
 #ifdef __KERNEL__
 
 #include <linux/irq.h>
+#include <linux/sysdev.h>
 #include <asm/dcr.h>
 
 /*
@@ -223,17 +224,20 @@ struct mpic_reg_bank {
        u32 __iomem     *base;
 #ifdef CONFIG_PPC_DCR
        dcr_host_t      dhost;
-       unsigned int    dbase;
-       unsigned int    doff;
 #endif /* CONFIG_PPC_DCR */
 };
 
+struct mpic_irq_save {
+       u32             vecprio,
+                       dest;
+#ifdef CONFIG_MPIC_U3_HT_IRQS
+       u32             fixup_data;
+#endif
+};
+
 /* The instance data of a given MPIC */
 struct mpic
 {
-       /* The device node of the interrupt controller */
-       struct device_node      *of_node;
-
        /* The remapper for this MPIC */
        struct irq_host         *irqhost;
 
@@ -283,17 +287,31 @@ struct mpic
        struct mpic_reg_bank    cpuregs[MPIC_MAX_CPUS];
        struct mpic_reg_bank    isus[MPIC_MAX_ISU];
 
-#ifdef CONFIG_PPC_DCR
-       unsigned int            dcr_base;
-#endif
+       /* Protected sources */
+       unsigned long           *protected;
 
 #ifdef CONFIG_MPIC_WEIRD
        /* Pointer to HW info array */
        u32                     *hw_set;
 #endif
 
+#ifdef CONFIG_PCI_MSI
+       spinlock_t              bitmap_lock;
+       unsigned long           *hwirq_bitmap;
+#endif
+
+#ifdef CONFIG_MPIC_BROKEN_REGREAD
+       u32                     isu_reg0_shadow[MPIC_MAX_IRQ_SOURCES];
+#endif
+
        /* link */
        struct mpic             *next;
+
+       struct sys_device       sysdev;
+
+#ifdef CONFIG_PM
+       struct mpic_irq_save    *save_data;
+#endif
 };
 
 /*