diff options
Diffstat (limited to 'arch/sh/drivers/pci/ops-r7780rp.c')
-rw-r--r-- | arch/sh/drivers/pci/ops-r7780rp.c | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/arch/sh/drivers/pci/ops-r7780rp.c b/arch/sh/drivers/pci/ops-r7780rp.c index eeea1577e112..6f4fb38bafa2 100644 --- a/arch/sh/drivers/pci/ops-r7780rp.c +++ b/arch/sh/drivers/pci/ops-r7780rp.c | |||
@@ -17,18 +17,35 @@ | |||
17 | #include <asm/io.h> | 17 | #include <asm/io.h> |
18 | #include "pci-sh4.h" | 18 | #include "pci-sh4.h" |
19 | 19 | ||
20 | static char r7780rp_irq_tab[] __initdata = { | ||
21 | 0, 1, 2, 3, | ||
22 | }; | ||
23 | |||
24 | static char r7780mp_irq_tab[] __initdata = { | ||
25 | 65, 66, 67, 68, | ||
26 | }; | ||
27 | |||
28 | static char r7785rp_irq_tab[][4] __initdata = { | ||
29 | { 65, 66, 67, 68 }, /* INT ABCD */ | ||
30 | { 66, 67, 68, 65 }, /* INT BCDA */ | ||
31 | { 67, 68, 65, 66 }, /* INT CDAB */ | ||
32 | { 68, 65, 66, 67 }, /* INT DABC */ | ||
33 | { 64, 64, 64, 64 }, /* PCI Host */ | ||
34 | }; | ||
35 | |||
20 | int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin) | 36 | int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin) |
21 | { | 37 | { |
22 | switch (slot) { | 38 | if (mach_is_r7780rp()) |
23 | case 0: return IRQ_PCISLOT1; /* PCI Interrupt #1 */ | 39 | return r7780rp_irq_tab[slot]; |
24 | case 1: return IRQ_PCISLOT2; /* PCI Interrupt #2 */ | 40 | if (mach_is_r7780mp()) |
25 | case 2: return IRQ_PCISLOT3; /* PCI Interrupt #3 */ | 41 | return r7780mp_irq_tab[slot]; |
26 | case 3: return IRQ_PCISLOT4; /* PCI Interrupt E4 */ | 42 | if (mach_is_r7785rp()) |
27 | default: | 43 | return r7785rp_irq_tab[slot][pin]; |
28 | printk(KERN_ERR "PCI: Bad IRQ mapping " | 44 | |
29 | "request for slot %d, func %d\n", slot, pin-1); | 45 | printk(KERN_ERR "PCI: Bad IRQ mapping " |
30 | return -1; | 46 | "request for slot %d, func %d\n", slot, pin-1); |
31 | } | 47 | |
48 | return -1; | ||
32 | } | 49 | } |
33 | 50 | ||
34 | static struct resource sh7780_io_resource = { | 51 | static struct resource sh7780_io_resource = { |