Merge branches 'acpi-scan', 'acpi-bus' and 'acpi-platform'
[platform/kernel/linux-starfive.git] / drivers / acpi / acpi_platform.c
index de3cbf1..fe00a57 100644 (file)
 #include "internal.h"
 
 static const struct acpi_device_id forbidden_id_list[] = {
+       {"ACPI0009", 0},        /* IOxAPIC */
+       {"ACPI000A", 0},        /* IOAPIC */
        {"PNP0000",  0},        /* PIC */
        {"PNP0100",  0},        /* Timer */
        {"PNP0200",  0},        /* AT DMA Controller */
-       {"ACPI0009", 0},        /* IOxAPIC */
-       {"ACPI000A", 0},        /* IOAPIC */
        {"SMB0001",  0},        /* ACPI SMBUS virtual device */
-       {"", 0},
+       { }
 };
 
 static struct platform_device *acpi_platform_device_find_by_companion(struct acpi_device *adev)
@@ -78,7 +78,7 @@ static void acpi_platform_fill_resource(struct acpi_device *adev,
         * If the device has parent we need to take its resources into
         * account as well because this device might consume part of those.
         */
-       parent = acpi_get_first_physical_node(adev->parent);
+       parent = acpi_get_first_physical_node(acpi_dev_parent(adev));
        if (parent && dev_is_pci(parent))
                dest->parent = pci_find_resource(to_pci_dev(parent), dest);
 }
@@ -97,6 +97,7 @@ static void acpi_platform_fill_resource(struct acpi_device *adev,
 struct platform_device *acpi_create_platform_device(struct acpi_device *adev,
                                                    const struct property_entry *properties)
 {
+       struct acpi_device *parent = acpi_dev_parent(adev);
        struct platform_device *pdev = NULL;
        struct platform_device_info pdevinfo;
        struct resource_entry *rentry;
@@ -113,13 +114,11 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev,
 
        INIT_LIST_HEAD(&resource_list);
        count = acpi_dev_get_resources(adev, &resource_list, NULL, NULL);
-       if (count < 0) {
+       if (count < 0)
                return NULL;
-       } else if (count > 0) {
-               resources = kcalloc(count, sizeof(struct resource),
-                                   GFP_KERNEL);
+       if (count > 0) {
+               resources = kcalloc(count, sizeof(*resources), GFP_KERNEL);
                if (!resources) {
-                       dev_err(&adev->dev, "No memory for resources\n");
                        acpi_dev_free_resource_list(&resource_list);
                        return ERR_PTR(-ENOMEM);
                }
@@ -137,10 +136,9 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev,
         * attached to it, that physical device should be the parent of the
         * platform device we are about to create.
         */
-       pdevinfo.parent = adev->parent ?
-               acpi_get_first_physical_node(adev->parent) : NULL;
+       pdevinfo.parent = parent ? acpi_get_first_physical_node(parent) : NULL;
        pdevinfo.name = dev_name(&adev->dev);
-       pdevinfo.id = -1;
+       pdevinfo.id = PLATFORM_DEVID_NONE;
        pdevinfo.res = resources;
        pdevinfo.num_res = count;
        pdevinfo.fwnode = acpi_fwnode_handle(adev);