dmaengine: acpi: Drop double check for ACPI companion device
[linux-2.6-microblaze.git] / drivers / dma / acpi-dma.c
index 8a05db3..35f4804 100644 (file)
@@ -358,19 +358,12 @@ struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev,
 {
        struct acpi_dma_parser_data pdata;
        struct acpi_dma_spec *dma_spec = &pdata.dma_spec;
+       struct acpi_device *adev = ACPI_COMPANION(dev);
        struct list_head resource_list;
-       struct acpi_device *adev;
        struct acpi_dma *adma;
        struct dma_chan *chan = NULL;
        int found;
-
-       /* Check if the device was enumerated by ACPI */
-       if (!dev)
-               return ERR_PTR(-ENODEV);
-
-       adev = ACPI_COMPANION(dev);
-       if (!adev)
-               return ERR_PTR(-ENODEV);
+       int ret;
 
        memset(&pdata, 0, sizeof(pdata));
        pdata.index = index;
@@ -380,9 +373,11 @@ struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev,
        dma_spec->slave_id = -1;
 
        INIT_LIST_HEAD(&resource_list);
-       acpi_dev_get_resources(adev, &resource_list,
-                       acpi_dma_parse_fixed_dma, &pdata);
+       ret = acpi_dev_get_resources(adev, &resource_list,
+                                    acpi_dma_parse_fixed_dma, &pdata);
        acpi_dev_free_resource_list(&resource_list);
+       if (ret < 0)
+               return ERR_PTR(ret);
 
        if (dma_spec->slave_id < 0 || dma_spec->chan_id < 0)
                return ERR_PTR(-ENODEV);