X-Git-Url: http://git.rot13.org/?p=linux-2.4.git;a=blobdiff_plain;f=arch%2Fppc%2Fplatforms%2Fsandpoint.c;h=3b254d12297133bd31e5640e91e8b1333e06e338;hp=a3d3137ccf97980a2071dbd4f3fc633699fa9b1f;hb=da2ef5559b159d81e8f57276d69ac6bc2da42943;hpb=343ce5af1bd818f8a4df268831516eb1f4a446bc diff --git a/arch/ppc/platforms/sandpoint.c b/arch/ppc/platforms/sandpoint.c index a3d3137..3b254d1 100644 --- a/arch/ppc/platforms/sandpoint.c +++ b/arch/ppc/platforms/sandpoint.c @@ -161,27 +161,64 @@ static u_char sandpoint_openpic_initsenses[] __initdata = { /* * Motorola SPS Sandpoint interrupt routing. */ +#if 0 //REX: by MUSENKI static inline int sandpoint_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) { static char pci_irq_table[][4] = - /* - * PCI IDSEL/INTPIN->INTLINE - * A B C D - */ -// REX -#if 0 + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ { - {16, 0, 0, 0}, /* IDSEL 11 - i8259 on Windbond */ - { 0, 0, 0, 0}, /* IDSEL 12 - unused */ - {17, 18, 19, 20}, /* IDSEL 13 - PCI slot 1 */ - {18, 19, 20, 17}, /* IDSEL 14 - PCI slot 2 */ - {19, 20, 17, 18}, /* IDSEL 15 - PCI slot 3 */ - {20, 17, 18, 19}, /* IDSEL 16 - PCI slot 4 */ + { SANDPOINT_SIO_IRQ, + 0, 0, 0 }, /* IDSEL 11 - i8259 on Winbond */ + { 0, 0, 0, 0 }, /* IDSEL 12 - unused */ +#ifdef CONFIG_SANDPOINT_X3 + { 17, 18, 19, 20 }, /* IDSEL 13 - PCI slot 1 */ + { 18, 19, 20, 17 }, /* IDSEL 14 - PCI slot 2 */ + { 19, 20, 17, 18 }, /* IDSEL 15 - PCI slot 3 */ + { 20, 17, 18, 19 }, /* IDSEL 16 - PCI slot 4 */ +#else + { 16, 19, 18, 17 }, /* IDSEL 13 - PCI slot 1 */ + { 17, 16, 19, 18 }, /* IDSEL 14 - PCI slot 2 */ + { 18, 17, 16, 19 }, /* IDSEL 15 - PCI slot 3 */ + { 19, 18, 17, 16 }, /* IDSEL 16 - PCI slot 4 */ +#endif }; const long min_idsel = 11, max_idsel = 16, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +} +#endif +#if 0 //+Bing modified 11252004 +static inline int +sandpoint_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ + { + { 3, 0, 0, 0 }, /* IDSEL 17 - disable */ + { 0, 0, 0, 0 }, /* IDSEL 18 - PCI slot1*/ + { 2, 0, 0, 0 }, /* IDSEL 19 - LAN 83815 */ + { 1, 0, 4, 0 } /* IDSEL 20 - PCI slot2 */ + }; + + const long min_idsel = 17, max_idsel = 20, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +} #else +static inline int +sandpoint_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ { { 0, 0, 0, 0 }, /* IDSEL 13 - mini-PCI */ { 1, -1, 2, 0 }, /* IDSEL 14 - NEC USB2.0 */ @@ -190,9 +227,10 @@ sandpoint_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) }; const long min_idsel = 13, max_idsel = 16, irqs_per_slot = 4; -#endif return PCI_IRQ_TABLE_LOOKUP; } +#endif //+Bing modified 11252004 + #if 0 //REX static void __init