diff options
author | Isaku Yamahata <yamahata@valinux.co.jp> | 2010-06-22 17:57:50 +0900 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2010-07-04 08:52:28 -0400 |
commit | a65821dbbb7a01d1b48cab890df9561f9d178c83 (patch) | |
tree | fdcd141735cf7e2f15554fa77d1faa80eb8fd6ef | |
parent | 0a8eada0df7448526af83d3e6df8ed58e72d925d (diff) | |
download | seabios-a65821dbbb7a01d1b48cab890df9561f9d178c83.tar.gz |
seabios: pciinit: factor out bar offset calculation.
This patch factors out bar offset calculation.
Later the calculation logic will be enhanced.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
-rw-r--r-- | src/pciinit.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/pciinit.c b/src/pciinit.c index a65c58da..9109739e 100644 --- a/src/pciinit.c +++ b/src/pciinit.c @@ -22,15 +22,19 @@ static u8 pci_irqs[4] = { 10, 10, 11, 11 }; +static u32 pci_bar(u16 bdf, int region_num) +{ + if (region_num != PCI_ROM_SLOT) { + return PCI_BASE_ADDRESS_0 + region_num * 4; + } + return PCI_ROM_ADDRESS; +} + static void pci_set_io_region_addr(u16 bdf, int region_num, u32 addr) { u32 ofs, old_addr; - if (region_num == PCI_ROM_SLOT) { - ofs = PCI_ROM_ADDRESS; - } else { - ofs = PCI_BASE_ADDRESS_0 + region_num * 4; - } + ofs = pci_bar(bdf, region_num); old_addr = pci_config_readl(bdf, ofs); @@ -46,11 +50,7 @@ static void pci_set_io_region_addr(u16 bdf, int region_num, u32 addr) static int pci_bios_allocate_region(u16 bdf, int region_num) { u32 *paddr; - int ofs; - if (region_num == PCI_ROM_SLOT) - ofs = PCI_ROM_ADDRESS; - else - ofs = PCI_BASE_ADDRESS_0 + region_num * 4; + u32 ofs = pci_bar(bdf, region_num); u32 old = pci_config_readl(bdf, ofs); u32 mask; |