diff options
Diffstat (limited to 'arch/sh/drivers/pci')
| -rw-r--r-- | arch/sh/drivers/pci/fixups-landisk.c | 3 | ||||
| -rw-r--r-- | arch/sh/drivers/pci/fixups-r7780rp.c | 7 | ||||
| -rw-r--r-- | arch/sh/drivers/pci/fixups-sdk7780.c | 18 | ||||
| -rw-r--r-- | arch/sh/drivers/pci/fixups-se7751.c | 5 | ||||
| -rw-r--r-- | arch/sh/drivers/pci/fixups-sh03.c | 19 | ||||
| -rw-r--r-- | arch/sh/drivers/pci/fixups-snapgear.c | 11 | ||||
| -rw-r--r-- | arch/sh/drivers/pci/pcie-sh7786.c | 3 | 
7 files changed, 39 insertions, 27 deletions
diff --git a/arch/sh/drivers/pci/fixups-landisk.c b/arch/sh/drivers/pci/fixups-landisk.c index ecb1d106063..db5b40a98e6 100644 --- a/arch/sh/drivers/pci/fixups-landisk.c +++ b/arch/sh/drivers/pci/fixups-landisk.c @@ -14,6 +14,7 @@  #include <linux/init.h>  #include <linux/delay.h>  #include <linux/pci.h> +#include <linux/sh_intc.h>  #include "pci-sh4.h"  #define PCIMCR_MRSET_OFF	0xBFFFFFFF @@ -27,7 +28,7 @@ int pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)  	 * slot2: pin1-4 = irq7,8,5,6  	 * slot3: pin1-4 = irq8,5,6,7  	 */ -	int irq = ((slot + pin - 1) & 0x3) + 5; +	int irq = ((slot + pin - 1) & 0x3) + evt2irq(0x2a0);  	if ((slot | (pin - 1)) > 0x3) {  		printk(KERN_WARNING "PCI: Bad IRQ mapping request for slot %d pin %c\n", diff --git a/arch/sh/drivers/pci/fixups-r7780rp.c b/arch/sh/drivers/pci/fixups-r7780rp.c index f9370dce0b7..57ed3f09d0c 100644 --- a/arch/sh/drivers/pci/fixups-r7780rp.c +++ b/arch/sh/drivers/pci/fixups-r7780rp.c @@ -12,13 +12,10 @@   */  #include <linux/pci.h>  #include <linux/io.h> +#include <linux/sh_intc.h>  #include "pci-sh4.h" -static char irq_tab[] __initdata = { -	65, 66, 67, 68, -}; -  int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)  { -	return irq_tab[slot]; +	return evt2irq(0xa20) + slot;  } diff --git a/arch/sh/drivers/pci/fixups-sdk7780.c b/arch/sh/drivers/pci/fixups-sdk7780.c index 0b8472501b8..c0a015ae6ec 100644 --- a/arch/sh/drivers/pci/fixups-sdk7780.c +++ b/arch/sh/drivers/pci/fixups-sdk7780.c @@ -13,18 +13,28 @@   */  #include <linux/pci.h>  #include <linux/io.h> +#include <linux/sh_intc.h>  #include "pci-sh4.h" +#define IRQ_INTA	evt2irq(0xa20) +#define IRQ_INTB	evt2irq(0xa40) +#define IRQ_INTC	evt2irq(0xa60) +#define IRQ_INTD	evt2irq(0xa80) +  /* IDSEL [16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31] */  static char sdk7780_irq_tab[4][16] __initdata = {  	/* INTA */ -	{ 65, 68, 67, 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, +	{ IRQ_INTA, IRQ_INTD, IRQ_INTC, IRQ_INTD, -1, -1, -1, -1, -1, -1, +	  -1, -1, -1, -1, -1, -1 },  	/* INTB */ -	{ 66, 65, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, +	{ IRQ_INTB, IRQ_INTA, -1, IRQ_INTA, -1, -1, -1, -1, -1, -1, -1, -1, +	  -1, -1, -1, -1 },  	/* INTC */ -	{ 67, 66, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, +	{ IRQ_INTC, IRQ_INTB, -1, IRQ_INTB, -1, -1, -1, -1, -1, -1, -1, -1, +	  -1, -1, -1, -1 },  	/* INTD */ -	{ 68, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, +	{ IRQ_INTD, IRQ_INTC, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +	  -1, -1, -1 },  };  int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin) diff --git a/arch/sh/drivers/pci/fixups-se7751.c b/arch/sh/drivers/pci/fixups-se7751.c index 2ec146c3fa4..84a88ca9200 100644 --- a/arch/sh/drivers/pci/fixups-se7751.c +++ b/arch/sh/drivers/pci/fixups-se7751.c @@ -4,13 +4,14 @@  #include <linux/delay.h>  #include <linux/pci.h>  #include <linux/io.h> +#include <linux/sh_intc.h>  #include "pci-sh4.h"  int __init pcibios_map_platform_irq(const struct pci_dev *, u8 slot, u8 pin)  {          switch (slot) { -        case 0: return 13; -        case 1: return 13;	/* AMD Ethernet controller */ +        case 0: return evt2irq(0x3a0); +        case 1: return evt2irq(0x3a0);	/* AMD Ethernet controller */          case 2: return -1;          case 3: return -1;          case 4: return -1; diff --git a/arch/sh/drivers/pci/fixups-sh03.c b/arch/sh/drivers/pci/fixups-sh03.c index 1615e590616..16207bef9f5 100644 --- a/arch/sh/drivers/pci/fixups-sh03.c +++ b/arch/sh/drivers/pci/fixups-sh03.c @@ -2,6 +2,7 @@  #include <linux/init.h>  #include <linux/types.h>  #include <linux/pci.h> +#include <linux/sh_intc.h>  int __init pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin)  { @@ -9,21 +10,21 @@ int __init pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin)  	if (dev->bus->number == 0) {  		switch (slot) { -		case 4: return 5;	/* eth0       */ -		case 8: return 5;	/* eth1       */ -		case 6: return 2;	/* PCI bridge */ +		case 4: return evt2irq(0x2a0);	/* eth0       */ +		case 8: return evt2irq(0x2a0);	/* eth1       */ +		case 6: return evt2irq(0x240);	/* PCI bridge */  		default:  			printk(KERN_ERR "PCI: Bad IRQ mapping request "  					"for slot %d\n", slot); -			return 2; +			return evt2irq(0x240);  		}  	} else {  		switch (pin) { -		case 0:   irq =  2; break; -		case 1:   irq =  2; break; -		case 2:   irq =  2; break; -		case 3:   irq =  2; break; -		case 4:   irq =  2; break; +		case 0:   irq =  evt2irq(0x240); break; +		case 1:   irq =  evt2irq(0x240); break; +		case 2:   irq =  evt2irq(0x240); break; +		case 3:   irq =  evt2irq(0x240); break; +		case 4:   irq =  evt2irq(0x240); break;  		default:  irq = -1; break;  		}  	} diff --git a/arch/sh/drivers/pci/fixups-snapgear.c b/arch/sh/drivers/pci/fixups-snapgear.c index 4a093c648d1..6e33ba4cd07 100644 --- a/arch/sh/drivers/pci/fixups-snapgear.c +++ b/arch/sh/drivers/pci/fixups-snapgear.c @@ -16,6 +16,7 @@  #include <linux/types.h>  #include <linux/init.h>  #include <linux/pci.h> +#include <linux/sh_intc.h>  #include "pci-sh4.h"  int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin) @@ -24,11 +25,11 @@ int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)  	switch (slot) {  	case 8:  /* the PCI bridge */ break; -	case 11: irq = 8;  break; /* USB    */ -	case 12: irq = 11; break; /* PCMCIA */ -	case 13: irq = 5;  break; /* eth0   */ -	case 14: irq = 8;  break; /* eth1   */ -	case 15: irq = 11; break; /* safenet (unused) */ +	case 11: irq = evt2irq(0x300); break; /* USB    */ +	case 12: irq = evt2irq(0x360); break; /* PCMCIA */ +	case 13: irq = evt2irq(0x2a0); break; /* eth0   */ +	case 14: irq = evt2irq(0x300); break; /* eth1   */ +	case 15: irq = evt2irq(0x360); break; /* safenet (unused) */  	}  	printk("PCI: Mapping SnapGear IRQ for slot %d, pin %c to irq %d\n", diff --git a/arch/sh/drivers/pci/pcie-sh7786.c b/arch/sh/drivers/pci/pcie-sh7786.c index 4df27c4fbf9..c045142f733 100644 --- a/arch/sh/drivers/pci/pcie-sh7786.c +++ b/arch/sh/drivers/pci/pcie-sh7786.c @@ -18,6 +18,7 @@  #include <linux/slab.h>  #include <linux/clk.h>  #include <linux/sh_clk.h> +#include <linux/sh_intc.h>  #include "pcie-sh7786.h"  #include <asm/sizes.h> @@ -468,7 +469,7 @@ static int __init pcie_init(struct sh7786_pcie_port *port)  int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)  { -        return 71; +        return evt2irq(0xae0);  }  static int __init sh7786_pcie_core_init(void)  |