mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 23:04:43 +00:00
PCI: Make CARDBUS_MEM_SIZE and CARDBUS_IO_SIZE boot options
CARDBUS_MEM_SIZE was increased to 64MB on 2.6.20-rc2, but larger size might result in allocation failure for the reserving itself on some platforms (for example typical 32bit MIPS). Make it (and CARDBUS_IO_SIZE too) customizable by "pci=" option for such platforms. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Cc: Daniel Ritz <daniel.ritz@gmx.ch> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
26ba05e4c6
commit
4516a618a7
4 changed files with 29 additions and 17 deletions
|
@ -36,13 +36,6 @@
|
|||
|
||||
#define ROUND_UP(x, a) (((x) + (a) - 1) & ~((a) - 1))
|
||||
|
||||
/*
|
||||
* FIXME: IO should be max 256 bytes. However, since we may
|
||||
* have a P2P bridge below a cardbus bridge, we need 4K.
|
||||
*/
|
||||
#define CARDBUS_IO_SIZE (256)
|
||||
#define CARDBUS_MEM_SIZE (64*1024*1024)
|
||||
|
||||
static void __devinit
|
||||
pbus_assign_resources_sorted(struct pci_bus *bus)
|
||||
{
|
||||
|
@ -415,12 +408,12 @@ pci_bus_size_cardbus(struct pci_bus *bus)
|
|||
* Reserve some resources for CardBus. We reserve
|
||||
* a fixed amount of bus space for CardBus bridges.
|
||||
*/
|
||||
b_res[0].start = CARDBUS_IO_SIZE;
|
||||
b_res[0].end = b_res[0].start + CARDBUS_IO_SIZE - 1;
|
||||
b_res[0].start = pci_cardbus_io_size;
|
||||
b_res[0].end = b_res[0].start + pci_cardbus_io_size - 1;
|
||||
b_res[0].flags |= IORESOURCE_IO;
|
||||
|
||||
b_res[1].start = CARDBUS_IO_SIZE;
|
||||
b_res[1].end = b_res[1].start + CARDBUS_IO_SIZE - 1;
|
||||
b_res[1].start = pci_cardbus_io_size;
|
||||
b_res[1].end = b_res[1].start + pci_cardbus_io_size - 1;
|
||||
b_res[1].flags |= IORESOURCE_IO;
|
||||
|
||||
/*
|
||||
|
@ -440,16 +433,16 @@ pci_bus_size_cardbus(struct pci_bus *bus)
|
|||
* twice the size.
|
||||
*/
|
||||
if (ctrl & PCI_CB_BRIDGE_CTL_PREFETCH_MEM0) {
|
||||
b_res[2].start = CARDBUS_MEM_SIZE;
|
||||
b_res[2].end = b_res[2].start + CARDBUS_MEM_SIZE - 1;
|
||||
b_res[2].start = pci_cardbus_mem_size;
|
||||
b_res[2].end = b_res[2].start + pci_cardbus_mem_size - 1;
|
||||
b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH;
|
||||
|
||||
b_res[3].start = CARDBUS_MEM_SIZE;
|
||||
b_res[3].end = b_res[3].start + CARDBUS_MEM_SIZE - 1;
|
||||
b_res[3].start = pci_cardbus_mem_size;
|
||||
b_res[3].end = b_res[3].start + pci_cardbus_mem_size - 1;
|
||||
b_res[3].flags |= IORESOURCE_MEM;
|
||||
} else {
|
||||
b_res[3].start = CARDBUS_MEM_SIZE * 2;
|
||||
b_res[3].end = b_res[3].start + CARDBUS_MEM_SIZE * 2 - 1;
|
||||
b_res[3].start = pci_cardbus_mem_size * 2;
|
||||
b_res[3].end = b_res[3].start + pci_cardbus_mem_size * 2 - 1;
|
||||
b_res[3].flags |= IORESOURCE_MEM;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue