patch-2.4.25 linux-2.4.25/arch/mips/au1000/common/pci_fixup.c
Next file: linux-2.4.25/arch/mips/au1000/common/pci_ops.c
Previous file: linux-2.4.25/arch/mips/au1000/common/irq.c
Back to the patch index
Back to the overall index
- Lines: 76
- Date:
2004-02-18 05:36:30.000000000 -0800
- Orig file:
linux-2.4.24/arch/mips/au1000/common/pci_fixup.c
- Orig date:
2003-08-25 04:44:39.000000000 -0700
diff -urN linux-2.4.24/arch/mips/au1000/common/pci_fixup.c linux-2.4.25/arch/mips/au1000/common/pci_fixup.c
@@ -25,6 +25,12 @@
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * CTG 11/18/2003 Added supoprt for Au1550 SOC. The PCI block did not
+ * change from Au1500 to the Au1550. However, the boards are now
+ * using INTB for second PCI slot.
+ * This is reflected in pcibios_fixup_irqs.
+ *
*/
#include <linux/config.h>
@@ -36,7 +42,6 @@
#include <linux/init.h>
#include <asm/au1000.h>
-//#include <asm/pb1500.h>
#ifdef CONFIG_MIPS_PB1000
#include <asm/pb1000.h>
#endif
@@ -49,7 +54,7 @@
#endif
static void fixup_resource(int r_num, struct pci_dev *dev) ;
-#ifdef CONFIG_SOC_AU1500
+#if defined( CONFIG_SOC_AU1500 ) || defined( CONFIG_SOC_AU1550 )
static unsigned long virt_io_addr;
#endif
@@ -60,7 +65,7 @@
void __init pcibios_fixup(void)
{
-#ifdef CONFIG_SOC_AU1500
+#if defined( CONFIG_SOC_AU1500 ) || defined( CONFIG_SOC_AU1550 )
int i;
struct pci_dev *dev;
@@ -100,7 +105,7 @@
void __init pcibios_fixup_irqs(void)
{
-#ifdef CONFIG_SOC_AU1500
+#if defined( CONFIG_SOC_AU1500 ) || defined( CONFIG_SOC_AU1550 )
unsigned int slot, func;
unsigned char pin;
struct pci_dev *dev;
@@ -111,14 +116,26 @@
dev->irq = 0xff;
slot = PCI_SLOT(dev->devfn);
+#if defined( CONFIG_SOC_AU1500 )
switch (slot) {
case 12:
case 13:
default:
dev->irq = AU1000_PCI_INTA;
break;
-
}
+#elif defined( CONFIG_SOC_AU1550 )
+ switch (slot) {
+ default:
+ case 12:
+ dev->irq = AU1000_PCI_INTA;
+ break;
+ case 13:
+ dev->irq = AU1000_PCI_INTB;
+ break;
+ }
+#endif
+
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
DBG("slot %d irq %d\n", slot, dev->irq);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)