Hi Dongdong, On 22.11.2016 13:08, Dongdong Liu wrote:
The acpi_get_rc_resources() is used to get the RC register address that can not be described in MCFG. It takes the _HID&segment to look for and returns the RC address resource. Use PNP0C02 devices to describe such RC address resource. Use _UID to match segment to tell which root bus the PNP0C02 resource belong to. Signed-off-by: Dongdong Liu <liudongdong3@xxxxxxxxxx> Signed-off-by: Tomasz Nowicki <tn@xxxxxxxxxxxx> --- drivers/pci/pci-acpi.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/pci/pci.h | 4 +++ 2 files changed, 73 insertions(+) diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c index d966d47..76fd6f4 100644 --- a/drivers/pci/pci-acpi.c +++ b/drivers/pci/pci-acpi.c @@ -29,6 +29,75 @@ 0x91, 0x17, 0xea, 0x4d, 0x19, 0xc3, 0x43, 0x4d }; +#ifdef CONFIG_ARM64 +static struct resource *acpi_get_rc_addr(struct acpi_device *adev) +{ + struct resource_entry *entry; + struct list_head list; + unsigned long flags; + int ret; + struct resource *res; + + INIT_LIST_HEAD(&list); + flags = IORESOURCE_MEM; + ret = acpi_dev_get_resources(adev, &list, + acpi_dev_filter_resource_type_cb, + (void *) flags); + if (ret <= 0) + return NULL; + + entry = list_first_entry(&list, struct resource_entry, node); + res = entry->res;
You return "res" memory pointer and...
+ acpi_dev_free_resource_list(&list);
free it here.
+ return res; +}
We either allocate memory for res here or get it from the caller. Tomasz -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html