summaryrefslogtreecommitdiff
path: root/include/linux/pci.h
diff options
context:
space:
mode:
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>2002-05-06 20:27:32 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-05-06 20:27:32 -0700
commit8a3d0b80edc3f9fa9766a2c46cbefd7954602408 (patch)
treec4d8c09bd08406ad5a24c5c4fa9ac34dabe4af52 /include/linux/pci.h
parent7c59354d546ae8c11228be80a255cb45d7f975f1 (diff)
[PATCH] 2.5.14: New PCI allocation code (alpha, arm, parisc) [1/2]
This changes PCI resource allocation algorithm to 3 passes vs. current 2 passes. Extra pass is used for calculation of required size and alignment of PCI buses behind PCI-PCI bridges. After that, in the pass #3, these buses get allocated like regular PCI devices. This gives tighter PCI IO and memory packing - for instance, this fixes allocation problems on certain alphas with very small (112Mb) PCI memory range. Also, the new code - will allow mixed approach to resource allocation: architecture can keep BIOS settings for some devices, and re-allocate resources for others, including improperly initialized bridges; - makes prefetchable ranges support much simpler; - allows sizing of IO and memory ranges for the host bridges, which might be very useful in some situations. It was tested on various alphas; I haven't heard any complaints from rmk and rth, so probably all of this is ok. :-) Part 1: - for all archs, 4th argument (align) added to pcibios_align_resource (and its callers). It's necessary because this function will be called for bus resources as well, and in this case size != alignment. - for several archs, dead/bogus code removed from pcibios_fixup_pbus_ranges().
Diffstat (limited to 'include/linux/pci.h')
-rw-r--r--include/linux/pci.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 44007acbf3ed..65a5a3bcfcdb 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -500,7 +500,8 @@ int pcibios_enable_device(struct pci_dev *);
char *pcibios_setup (char *str);
/* Used only when drivers/pci/setup.c is used */
-void pcibios_align_resource(void *, struct resource *, unsigned long);
+void pcibios_align_resource(void *, struct resource *,
+ unsigned long, unsigned long);
void pcibios_update_resource(struct pci_dev *, struct resource *,
struct resource *, int);
void pcibios_update_irq(struct pci_dev *, int irq);