diff options
Diffstat (limited to 'arch/sparc64/kernel/pci.c')
-rw-r--r-- | arch/sparc64/kernel/pci.c | 62 |
1 files changed, 44 insertions, 18 deletions
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c index c9e3681dd..c102a6205 100644 --- a/arch/sparc64/kernel/pci.c +++ b/arch/sparc64/kernel/pci.c @@ -1,4 +1,4 @@ -/* $Id: pci.c,v 1.6 1999/09/08 03:40:41 davem Exp $ +/* $Id: pci.c,v 1.13 2000/01/06 23:51:49 davem Exp $ * pci.c: UltraSparc PCI controller support. * * Copyright (C) 1997, 1998, 1999 David S. Miller (davem@redhat.com) @@ -20,8 +20,11 @@ #include <asm/irq.h> #include <asm/ebus.h> +#ifndef NEW_PCI_DMA_MAP unsigned long pci_dvma_v2p_hash[PCI_DVMA_HASHSZ]; unsigned long pci_dvma_p2v_hash[PCI_DVMA_HASHSZ]; +#endif + unsigned long pci_memspace_mask = 0xffffffffUL; #ifndef CONFIG_PCI @@ -158,25 +161,19 @@ static void pci_scan_each_controller_bus(void) */ static void __init pci_reorder_devs(void) { - struct pci_dev **pci_onboard = &pci_devices; - struct pci_dev **pci_tail = &pci_devices; - struct pci_dev *pdev = pci_devices, *pci_other = NULL; + struct list_head *pci_onboard = &pci_devices; + struct list_head *walk = pci_onboard->next; + + while (walk != pci_onboard) { + struct pci_dev *pdev = pci_dev_g(walk); + struct list_head *walk_next = walk->next; - while (pdev) { if (pdev->irq && (__irq_ino(pdev->irq) & 0x20)) { - if (pci_other) { - *pci_onboard = pdev; - pci_onboard = &pdev->next; - pdev = pdev->next; - *pci_onboard = pci_other; - *pci_tail = pdev; - continue; - } else - pci_onboard = &pdev->next; - } else if (!pci_other) - pci_other = pdev; - pci_tail = &pdev->next; - pdev = pdev->next; + list_del(walk); + list_add(walk, pci_onboard); + } + + walk = walk_next; } } @@ -202,6 +199,35 @@ void pcibios_fixup_bus(struct pci_bus *pbus) { } +void pcibios_update_resource(struct pci_dev *pdev, struct resource *res1, + struct resource *res2, int index) +{ +} + +void pcibios_update_irq(struct pci_dev *pdev, int irq) +{ +} + +unsigned long resource_fixup(struct pci_dev *pdev, struct resource *res, + unsigned long start, unsigned long size) +{ + return start; +} + +void pcibios_fixup_pbus_ranges(struct pci_bus *pbus, + struct pbus_set_ranges_data *pranges) +{ +} + +void pcibios_align_resource(void *data, struct resource *res, unsigned long size) +{ +} + +int pci_assign_resource(struct pci_dev *dev, int i) +{ + return -ENOSYS; /* :-)... actually implement this soon */ +} + char * __init pcibios_setup(char *str) { if (!strcmp(str, "onboardfirst")) { |