diff options
author | Jayachandran C <jayachandranc@netlogicmicro.com> | 2011-05-06 16:07:31 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2011-05-19 04:55:41 -0400 |
commit | 9b130f8004e51c65b20b0f0e17cdee073a719047 (patch) | |
tree | 3562752ebe2168361a09dd16baace9b6884672d8 /arch/mips/include | |
parent | f9cab74fd9b0cf19f52a989694e7a1d8213af3a1 (diff) |
MIPS: XLR, XLS: Add PCI support.
Adds pci/pci-xlr.c to support for XLR PCI/PCI-X interface and XLS PCIe
interface.
Update irq.c to ack PCI interrupts, use irq handler data to do the
PCI/PCIe bus ack.
Signed-off-by: Jayachandran C <jayachandranc@netlogicmicro.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/2337/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include')
-rw-r--r-- | arch/mips/include/asm/netlogic/xlr/xlr.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/mips/include/asm/netlogic/xlr/xlr.h b/arch/mips/include/asm/netlogic/xlr/xlr.h index 454c236d6854..3e6372692a04 100644 --- a/arch/mips/include/asm/netlogic/xlr/xlr.h +++ b/arch/mips/include/asm/netlogic/xlr/xlr.h | |||
@@ -41,6 +41,7 @@ unsigned int nlm_xlr_uart_in(struct uart_port *, int); | |||
41 | void nlm_xlr_uart_out(struct uart_port *, int, int); | 41 | void nlm_xlr_uart_out(struct uart_port *, int, int); |
42 | 42 | ||
43 | /* SMP support functions */ | 43 | /* SMP support functions */ |
44 | struct irq_desc; | ||
44 | void nlm_smp_function_ipi_handler(unsigned int irq, struct irq_desc *desc); | 45 | void nlm_smp_function_ipi_handler(unsigned int irq, struct irq_desc *desc); |
45 | void nlm_smp_resched_ipi_handler(unsigned int irq, struct irq_desc *desc); | 46 | void nlm_smp_resched_ipi_handler(unsigned int irq, struct irq_desc *desc); |
46 | int nlm_wakeup_secondary_cpus(u32 wakeup_mask); | 47 | int nlm_wakeup_secondary_cpus(u32 wakeup_mask); |
@@ -51,4 +52,24 @@ void prom_pre_boot_secondary_cpus(void); | |||
51 | extern struct plat_smp_ops nlm_smp_ops; | 52 | extern struct plat_smp_ops nlm_smp_ops; |
52 | extern unsigned long nlm_common_ebase; | 53 | extern unsigned long nlm_common_ebase; |
53 | 54 | ||
55 | /* XLS B silicon "Rook" */ | ||
56 | static inline unsigned int nlm_chip_is_xls_b(void) | ||
57 | { | ||
58 | uint32_t prid = read_c0_prid(); | ||
59 | |||
60 | return ((prid & 0xf000) == 0x4000); | ||
61 | } | ||
62 | |||
63 | /* | ||
64 | * XLR chip types | ||
65 | */ | ||
66 | /* The XLS product line has chip versions 0x[48c]? */ | ||
67 | static inline unsigned int nlm_chip_is_xls(void) | ||
68 | { | ||
69 | uint32_t prid = read_c0_prid(); | ||
70 | |||
71 | return ((prid & 0xf000) == 0x8000 || (prid & 0xf000) == 0x4000 || | ||
72 | (prid & 0xf000) == 0xc000); | ||
73 | } | ||
74 | |||
54 | #endif /* _ASM_NLM_XLR_H */ | 75 | #endif /* _ASM_NLM_XLR_H */ |