diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2019-01-13 22:16:58 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-01-16 08:36:18 +0100 |
commit | fdb205663188271e2245d189f43761d3236642c2 (patch) | |
tree | 7618a1d9ab59ef1e2c475bb917af1001f5966aaf /drivers/pci | |
parent | 7225556b67136cf59deaaf2a7dafa469550e754e (diff) | |
download | barebox-fdb205663188271e2245d189f43761d3236642c2.tar.gz barebox-fdb205663188271e2245d189f43761d3236642c2.tar.xz |
PCI: Store and reuse BAR offsets
Save and reuse BAR offsets in dedicated constants instead of repeating
the same expression multiple times. No functional change intended.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/pci.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 6d866dc30a..265c416085 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -169,16 +169,18 @@ static void setup_device(struct pci_dev *dev, int max_bar) cmd & ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY)); for (bar = 0; bar < max_bar; bar++) { + const int pci_base_address_0 = PCI_BASE_ADDRESS_0 + bar * 4; + const int pci_base_address_1 = PCI_BASE_ADDRESS_1 + bar * 4; resource_size_t *last_addr; u32 orig, mask, size; unsigned long flags; const char *kind; int busres; - pci_read_config_dword(dev, PCI_BASE_ADDRESS_0 + bar * 4, &orig); - pci_write_config_dword(dev, PCI_BASE_ADDRESS_0 + bar * 4, 0xfffffffe); - pci_read_config_dword(dev, PCI_BASE_ADDRESS_0 + bar * 4, &mask); - pci_write_config_dword(dev, PCI_BASE_ADDRESS_0 + bar * 4, orig); + pci_read_config_dword(dev, pci_base_address_0, &orig); + pci_write_config_dword(dev, pci_base_address_0, 0xfffffffe); + pci_read_config_dword(dev, pci_base_address_0, &mask); + pci_write_config_dword(dev, pci_base_address_0, orig); if (mask == 0 || mask == 0xffffffff) { pr_debug("pbar%d set bad mask\n", bar); @@ -221,8 +223,7 @@ static void setup_device(struct pci_dev *dev, int max_bar) } *last_addr = ALIGN(*last_addr, size); - pci_write_config_dword(dev, PCI_BASE_ADDRESS_0 + bar * 4, - *last_addr); + pci_write_config_dword(dev, pci_base_address_0, *last_addr); dev->resource[bar].flags = flags; dev->resource[bar].start = *last_addr; dev->resource[bar].end = dev->resource[bar].start + size - 1; @@ -233,8 +234,7 @@ static void setup_device(struct pci_dev *dev, int max_bar) if (mask & PCI_BASE_ADDRESS_MEM_TYPE_64) { dev->resource[bar].flags |= IORESOURCE_MEM_64; - pci_write_config_dword(dev, - PCI_BASE_ADDRESS_1 + bar * 4, 0); + pci_write_config_dword(dev, pci_base_address_1, 0); bar++; } } |