Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1342729
| From | Yinghai Lu <yinghai@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v10 13/59] PCI: Add has_mem64 for struct host_bridge |
| Date | 2016-02-25 04:20 +0100 |
| Message-ID | <r5UD8-6ag-15@gated-at.bofh.it> (permalink) |
| References | <r5TH3-5ok-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Add has_mem64 for struct host_bridge, on root bus that does not support
mmio64 above 4g, will not set that.
We will use that info next two following patches:
1. Don't treat non-pref mmio64 as pref mmio, so will not put
it under bridge's pref range when rescan the devices
2. will keep pref mmio64 and pref mmio32 under bridge pref bar.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Tested-by: Khalid Aziz <khalid.aziz@oracle.com>
---
drivers/pci/probe.c | 7 +++++++
include/linux/pci.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 2c3e264..bcda915 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -2189,6 +2189,13 @@ struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
} else
bus_addr[0] = '\0';
dev_info(&b->dev, "root bus resource %pR%s\n", res, bus_addr);
+
+ if (resource_type(res) == IORESOURCE_MEM) {
+ if ((res->end - offset) > 0xffffffff)
+ bridge->has_mem64 = 1;
+ if ((res->start - offset) > 0xffffffff)
+ res->flags |= IORESOURCE_MEM_64;
+ }
}
down_write(&pci_bus_sem);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index ca8d70a..d4592e3 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -413,6 +413,7 @@ struct pci_host_bridge {
void (*release_fn)(struct pci_host_bridge *);
void *release_data;
unsigned int ignore_reset_delay:1; /* for entire hierarchy */
+ unsigned int has_mem64:1;
/* Resource alignment requirements */
resource_size_t (*align_resource)(struct pci_dev *dev,
const struct resource *res,
--
1.8.4.5
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v10 00/59] PCI: Resource allocation cleanup for v4.6 Yinghai Lu <yinghai@kernel.org> - 2016-02-25 03:40 +0100 [PATCH v10 16/59] PCI: Don't release fixed resource for realloc Yinghai Lu <yinghai@kernel.org> - 2016-02-25 03:40 +0100 [PATCH v10 12/59] PCI: Only treat non-pref mmio64 as pref if all bridges have MEM_64 Yinghai Lu <yinghai@kernel.org> - 2016-02-25 03:40 +0100 [PATCH v10 04/59] sparc/PCI: Add IORESOURCE_MEM_64 for 64-bit resource in OF parsing Yinghai Lu <yinghai@kernel.org> - 2016-02-25 03:40 +0100 [PATCH v10 14/59] PCI: Only treat non-pref mmio64 as pref if host bridge has mmio64 Yinghai Lu <yinghai@kernel.org> - 2016-02-25 03:40 +0100 [PATCH v10 41/59] PCI: Skip required+optional if there is no optional Yinghai Lu <yinghai@kernel.org> - 2016-02-25 03:40 +0100 [PATCH v10 01/59] PCI: Add pci_find_root_bus_resource() Yinghai Lu <yinghai@kernel.org> - 2016-02-25 03:40 +0100 [PATCH v10 07/59] PCI: Ignore BAR for ALi M1533 PCI-ISA bridge Yinghai Lu <yinghai@kernel.org> - 2016-02-25 03:40 +0100 [PATCH v10 13/59] PCI: Add has_mem64 for struct host_bridge Yinghai Lu <yinghai@kernel.org> - 2016-02-25 04:20 +0100 [PATCH v10 27/59] PCI: Optimize bus align/size calculation for optional during sizing Yinghai Lu <yinghai@kernel.org> - 2016-02-25 04:20 +0100 [PATCH v10 33/59] PCI: Add debug printout during releasing partial assigned resources Yinghai Lu <yinghai@kernel.org> - 2016-02-25 04:20 +0100 [PATCH v10 19/59] PCI: Separate realloc list checking after allocation Yinghai Lu <yinghai@kernel.org> - 2016-02-25 04:20 +0100 [PATCH v10 23/59] PCI: Cleanup res_to_dev_res() printout Yinghai Lu <yinghai@kernel.org> - 2016-02-25 04:20 +0100
csiph-web