Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8204680c authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'acpi-resources'

* acpi-resources:
  x86/PCI/ACPI: Relax ACPI resource descriptor checks to work around BIOS bugs
  x86/PCI/ACPI: Ignore resources consumed by host bridge itself
  PCI: versatile: Update for list_for_each_entry() API change
parents 13a7a6ac aa714d28
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -331,7 +331,7 @@ static void probe_pci_root_info(struct pci_root_info *info,
				struct list_head *list)
{
	int ret;
	struct resource_entry *entry;
	struct resource_entry *entry, *tmp;

	sprintf(info->name, "PCI Bus %04x:%02x", domain, busnum);
	info->bridge = device;
@@ -345,9 +345,14 @@ static void probe_pci_root_info(struct pci_root_info *info,
		dev_dbg(&device->dev,
			"no IO and memory resources present in _CRS\n");
	else
		resource_list_for_each_entry(entry, list)
		resource_list_for_each_entry_safe(entry, tmp, list) {
			if ((entry->res->flags & IORESOURCE_WINDOW) == 0 ||
			    (entry->res->flags & IORESOURCE_DISABLED))
				resource_list_destroy_entry(entry);
			else
				entry->res->name = info->name;
		}
}

struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
{
+3 −1
Original line number Diff line number Diff line
@@ -42,8 +42,10 @@ static bool acpi_dev_resource_len_valid(u64 start, u64 end, u64 len, bool io)
	 * CHECKME: len might be required to check versus a minimum
	 * length as well. 1 for io is fine, but for memory it does
	 * not make any sense at all.
	 * Note: some BIOSes report incorrect length for ACPI address space
	 * descriptor, so remove check of 'reslen == len' to avoid regression.
	 */
	if (len && reslen && reslen == len && start <= end)
	if (len && reslen && start <= end)
		return true;

	pr_debug("ACPI: invalid or unassigned resource %s [%016llx - %016llx] length [%016llx]\n",
+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ static int versatile_pci_parse_request_of_pci_ranges(struct device *dev,
	if (err)
		return err;

	resource_list_for_each_entry(win, res, list) {
	resource_list_for_each_entry(win, res) {
		struct resource *parent, *res = win->res;

		switch (resource_type(res)) {