diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:10:12 -0400 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:10:12 -0400 | 
| commit | 24a77daf3d80bddcece044e6dc3675e427eef3f3 (patch) | |
| tree | 2c5e0b0bea394d6fe62c5d5857c252e83e48ac48 /arch/powerpc/sysdev/mpic.c | |
| parent | e389f9aec689209724105ae80a6c91fd2e747bc9 (diff) | |
| parent | f900e9777fc9b65140cb9570438597bc8fae56ab (diff) | |
Merge branch 'for-2.6.22' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'for-2.6.22' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (255 commits)
  [POWERPC] Remove dev_dbg redefinition in drivers/ps3/vuart.c
  [POWERPC] remove kernel module option for booke wdt
  [POWERPC] Avoid putting cpu node twice
  [POWERPC] Spinlock initializer cleanup
  [POWERPC] ppc4xx_sgdma needs dma-mapping.h
  [POWERPC] arch/powerpc/sysdev/timer.c build fix
  [POWERPC] get_property cleanups
  [POWERPC] Remove the unused HTDMSOUND driver
  [POWERPC] cell: cbe_cpufreq cleanup and crash fix
  [POWERPC] Declare enable_kernel_spe in a header
  [POWERPC] Add dt_xlate_addr() to bootwrapper
  [POWERPC] bootwrapper: CONFIG_ -> CONFIG_DEVICE_TREE
  [POWERPC] Don't define a custom bd_t for Xilixn Virtex based boards.
  [POWERPC] Add sane defaults for Xilinx EDK generated xparameters files
  [POWERPC] Add uartlite boot console driver for the zImage wrapper
  [POWERPC] Stop using ppc_sys for Xilinx Virtex boards
  [POWERPC] New registration for common Xilinx Virtex ppc405 platform devices
  [POWERPC] Merge common virtex header files
  [POWERPC] Rework Kconfig dependancies for Xilinx Virtex ppc405 platform
  [POWERPC] Clean up cpufreq Kconfig dependencies
  ...
Diffstat (limited to 'arch/powerpc/sysdev/mpic.c')
| -rw-r--r-- | arch/powerpc/sysdev/mpic.c | 32 | 
1 files changed, 16 insertions, 16 deletions
| diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index bcfb900481f8..0b84b7c775d8 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
| @@ -304,7 +304,7 @@ static void __init mpic_test_broken_ipi(struct mpic *mpic) | |||
| 304 | } | 304 | } | 
| 305 | } | 305 | } | 
| 306 | 306 | ||
| 307 | #ifdef CONFIG_MPIC_BROKEN_U3 | 307 | #ifdef CONFIG_MPIC_U3_HT_IRQS | 
| 308 | 308 | ||
| 309 | /* Test if an interrupt is sourced from HyperTransport (used on broken U3s) | 309 | /* Test if an interrupt is sourced from HyperTransport (used on broken U3s) | 
| 310 | * to force the edge setting on the MPIC and do the ack workaround. | 310 | * to force the edge setting on the MPIC and do the ack workaround. | 
| @@ -476,7 +476,7 @@ static void __init mpic_scan_ht_pics(struct mpic *mpic) | |||
| 476 | } | 476 | } | 
| 477 | } | 477 | } | 
| 478 | 478 | ||
| 479 | #else /* CONFIG_MPIC_BROKEN_U3 */ | 479 | #else /* CONFIG_MPIC_U3_HT_IRQS */ | 
| 480 | 480 | ||
| 481 | static inline int mpic_is_ht_interrupt(struct mpic *mpic, unsigned int source) | 481 | static inline int mpic_is_ht_interrupt(struct mpic *mpic, unsigned int source) | 
| 482 | { | 482 | { | 
| @@ -487,7 +487,7 @@ static void __init mpic_scan_ht_pics(struct mpic *mpic) | |||
| 487 | { | 487 | { | 
| 488 | } | 488 | } | 
| 489 | 489 | ||
| 490 | #endif /* CONFIG_MPIC_BROKEN_U3 */ | 490 | #endif /* CONFIG_MPIC_U3_HT_IRQS */ | 
| 491 | 491 | ||
| 492 | 492 | ||
| 493 | #define mpic_irq_to_hw(virq) ((unsigned int)irq_map[virq].hwirq) | 493 | #define mpic_irq_to_hw(virq) ((unsigned int)irq_map[virq].hwirq) | 
| @@ -615,7 +615,7 @@ static void mpic_end_irq(unsigned int irq) | |||
| 615 | mpic_eoi(mpic); | 615 | mpic_eoi(mpic); | 
| 616 | } | 616 | } | 
| 617 | 617 | ||
| 618 | #ifdef CONFIG_MPIC_BROKEN_U3 | 618 | #ifdef CONFIG_MPIC_U3_HT_IRQS | 
| 619 | 619 | ||
| 620 | static void mpic_unmask_ht_irq(unsigned int irq) | 620 | static void mpic_unmask_ht_irq(unsigned int irq) | 
| 621 | { | 621 | { | 
| @@ -665,7 +665,7 @@ static void mpic_end_ht_irq(unsigned int irq) | |||
| 665 | mpic_ht_end_irq(mpic, src); | 665 | mpic_ht_end_irq(mpic, src); | 
| 666 | mpic_eoi(mpic); | 666 | mpic_eoi(mpic); | 
| 667 | } | 667 | } | 
| 668 | #endif /* !CONFIG_MPIC_BROKEN_U3 */ | 668 | #endif /* !CONFIG_MPIC_U3_HT_IRQS */ | 
| 669 | 669 | ||
| 670 | #ifdef CONFIG_SMP | 670 | #ifdef CONFIG_SMP | 
| 671 | 671 | ||
| @@ -788,7 +788,7 @@ static struct irq_chip mpic_ipi_chip = { | |||
| 788 | }; | 788 | }; | 
| 789 | #endif /* CONFIG_SMP */ | 789 | #endif /* CONFIG_SMP */ | 
| 790 | 790 | ||
| 791 | #ifdef CONFIG_MPIC_BROKEN_U3 | 791 | #ifdef CONFIG_MPIC_U3_HT_IRQS | 
| 792 | static struct irq_chip mpic_irq_ht_chip = { | 792 | static struct irq_chip mpic_irq_ht_chip = { | 
| 793 | .startup = mpic_startup_ht_irq, | 793 | .startup = mpic_startup_ht_irq, | 
| 794 | .shutdown = mpic_shutdown_ht_irq, | 794 | .shutdown = mpic_shutdown_ht_irq, | 
| @@ -797,7 +797,7 @@ static struct irq_chip mpic_irq_ht_chip = { | |||
| 797 | .eoi = mpic_end_ht_irq, | 797 | .eoi = mpic_end_ht_irq, | 
| 798 | .set_type = mpic_set_irq_type, | 798 | .set_type = mpic_set_irq_type, | 
| 799 | }; | 799 | }; | 
| 800 | #endif /* CONFIG_MPIC_BROKEN_U3 */ | 800 | #endif /* CONFIG_MPIC_U3_HT_IRQS */ | 
| 801 | 801 | ||
| 802 | 802 | ||
| 803 | static int mpic_host_match(struct irq_host *h, struct device_node *node) | 803 | static int mpic_host_match(struct irq_host *h, struct device_node *node) | 
| @@ -837,11 +837,11 @@ static int mpic_host_map(struct irq_host *h, unsigned int virq, | |||
| 837 | /* Default chip */ | 837 | /* Default chip */ | 
| 838 | chip = &mpic->hc_irq; | 838 | chip = &mpic->hc_irq; | 
| 839 | 839 | ||
| 840 | #ifdef CONFIG_MPIC_BROKEN_U3 | 840 | #ifdef CONFIG_MPIC_U3_HT_IRQS | 
| 841 | /* Check for HT interrupts, override vecpri */ | 841 | /* Check for HT interrupts, override vecpri */ | 
| 842 | if (mpic_is_ht_interrupt(mpic, hw)) | 842 | if (mpic_is_ht_interrupt(mpic, hw)) | 
| 843 | chip = &mpic->hc_ht_irq; | 843 | chip = &mpic->hc_ht_irq; | 
| 844 | #endif /* CONFIG_MPIC_BROKEN_U3 */ | 844 | #endif /* CONFIG_MPIC_U3_HT_IRQS */ | 
| 845 | 845 | ||
| 846 | DBG("mpic: mapping to irq chip @%p\n", chip); | 846 | DBG("mpic: mapping to irq chip @%p\n", chip); | 
| 847 | 847 | ||
| @@ -937,12 +937,12 @@ struct mpic * __init mpic_alloc(struct device_node *node, | |||
| 937 | mpic->hc_irq.typename = name; | 937 | mpic->hc_irq.typename = name; | 
| 938 | if (flags & MPIC_PRIMARY) | 938 | if (flags & MPIC_PRIMARY) | 
| 939 | mpic->hc_irq.set_affinity = mpic_set_affinity; | 939 | mpic->hc_irq.set_affinity = mpic_set_affinity; | 
| 940 | #ifdef CONFIG_MPIC_BROKEN_U3 | 940 | #ifdef CONFIG_MPIC_U3_HT_IRQS | 
| 941 | mpic->hc_ht_irq = mpic_irq_ht_chip; | 941 | mpic->hc_ht_irq = mpic_irq_ht_chip; | 
| 942 | mpic->hc_ht_irq.typename = name; | 942 | mpic->hc_ht_irq.typename = name; | 
| 943 | if (flags & MPIC_PRIMARY) | 943 | if (flags & MPIC_PRIMARY) | 
| 944 | mpic->hc_ht_irq.set_affinity = mpic_set_affinity; | 944 | mpic->hc_ht_irq.set_affinity = mpic_set_affinity; | 
| 945 | #endif /* CONFIG_MPIC_BROKEN_U3 */ | 945 | #endif /* CONFIG_MPIC_U3_HT_IRQS */ | 
| 946 | 946 | ||
| 947 | #ifdef CONFIG_SMP | 947 | #ifdef CONFIG_SMP | 
| 948 | mpic->hc_ipi = mpic_ipi_chip; | 948 | mpic->hc_ipi = mpic_ipi_chip; | 
| @@ -970,7 +970,7 @@ struct mpic * __init mpic_alloc(struct device_node *node, | |||
| 970 | mpic->spurious_vec = intvec_top; | 970 | mpic->spurious_vec = intvec_top; | 
| 971 | 971 | ||
| 972 | /* Check for "big-endian" in device-tree */ | 972 | /* Check for "big-endian" in device-tree */ | 
| 973 | if (node && get_property(node, "big-endian", NULL) != NULL) | 973 | if (node && of_get_property(node, "big-endian", NULL) != NULL) | 
| 974 | mpic->flags |= MPIC_BIG_ENDIAN; | 974 | mpic->flags |= MPIC_BIG_ENDIAN; | 
| 975 | 975 | ||
| 976 | 976 | ||
| @@ -986,13 +986,13 @@ struct mpic * __init mpic_alloc(struct device_node *node, | |||
| 986 | BUG_ON(paddr == 0 && node == NULL); | 986 | BUG_ON(paddr == 0 && node == NULL); | 
| 987 | 987 | ||
| 988 | /* If no physical address passed in, check if it's dcr based */ | 988 | /* If no physical address passed in, check if it's dcr based */ | 
| 989 | if (paddr == 0 && get_property(node, "dcr-reg", NULL) != NULL) | 989 | if (paddr == 0 && of_get_property(node, "dcr-reg", NULL) != NULL) | 
| 990 | mpic->flags |= MPIC_USES_DCR; | 990 | mpic->flags |= MPIC_USES_DCR; | 
| 991 | 991 | ||
| 992 | #ifdef CONFIG_PPC_DCR | 992 | #ifdef CONFIG_PPC_DCR | 
| 993 | if (mpic->flags & MPIC_USES_DCR) { | 993 | if (mpic->flags & MPIC_USES_DCR) { | 
| 994 | const u32 *dbasep; | 994 | const u32 *dbasep; | 
| 995 | dbasep = get_property(node, "dcr-reg", NULL); | 995 | dbasep = of_get_property(node, "dcr-reg", NULL); | 
| 996 | BUG_ON(dbasep == NULL); | 996 | BUG_ON(dbasep == NULL); | 
| 997 | mpic->dcr_base = *dbasep; | 997 | mpic->dcr_base = *dbasep; | 
| 998 | mpic->reg_type = mpic_access_dcr; | 998 | mpic->reg_type = mpic_access_dcr; | 
| @@ -1006,7 +1006,7 @@ struct mpic * __init mpic_alloc(struct device_node *node, | |||
| 1006 | */ | 1006 | */ | 
| 1007 | if (paddr == 0 && !(mpic->flags & MPIC_USES_DCR)) { | 1007 | if (paddr == 0 && !(mpic->flags & MPIC_USES_DCR)) { | 
| 1008 | const u32 *reg; | 1008 | const u32 *reg; | 
| 1009 | reg = get_property(node, "reg", NULL); | 1009 | reg = of_get_property(node, "reg", NULL); | 
| 1010 | BUG_ON(reg == NULL); | 1010 | BUG_ON(reg == NULL); | 
| 1011 | paddr = of_translate_address(node, reg); | 1011 | paddr = of_translate_address(node, reg); | 
| 1012 | BUG_ON(paddr == OF_BAD_ADDR); | 1012 | BUG_ON(paddr == OF_BAD_ADDR); | 
| @@ -1142,7 +1142,7 @@ void __init mpic_init(struct mpic *mpic) | |||
| 1142 | 1142 | ||
| 1143 | /* Do the HT PIC fixups on U3 broken mpic */ | 1143 | /* Do the HT PIC fixups on U3 broken mpic */ | 
| 1144 | DBG("MPIC flags: %x\n", mpic->flags); | 1144 | DBG("MPIC flags: %x\n", mpic->flags); | 
| 1145 | if ((mpic->flags & MPIC_BROKEN_U3) && (mpic->flags & MPIC_PRIMARY)) | 1145 | if ((mpic->flags & MPIC_U3_HT_IRQS) && (mpic->flags & MPIC_PRIMARY)) | 
| 1146 | mpic_scan_ht_pics(mpic); | 1146 | mpic_scan_ht_pics(mpic); | 
| 1147 | 1147 | ||
| 1148 | for (i = 0; i < mpic->num_sources; i++) { | 1148 | for (i = 0; i < mpic->num_sources; i++) { | 
