Merge tag 'driver-core-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-block.git] / drivers / i2c / i2c-core-acpi.c
index 8af35f1148213318ae5c750b21c9597cf237ae23..428a82c3a35fb7e0d8f0815e4f234f36c0ba9a4b 100644 (file)
@@ -111,8 +111,7 @@ static int i2c_acpi_do_lookup(struct acpi_device *adev,
        struct list_head resource_list;
        int ret;
 
-       if (acpi_bus_get_status(adev) || !adev->status.present ||
-           acpi_device_enumerated(adev))
+       if (acpi_bus_get_status(adev) || !adev->status.present)
                return -EINVAL;
 
        if (acpi_match_device_ids(adev, i2c_acpi_ignored_device_ids) == 0)
@@ -147,6 +146,9 @@ static int i2c_acpi_get_info(struct acpi_device *adev,
        lookup.info = info;
        lookup.index = -1;
 
+       if (acpi_device_enumerated(adev))
+               return -EINVAL;
+
        ret = i2c_acpi_do_lookup(adev, &lookup);
        if (ret)
                return ret;
@@ -333,7 +335,7 @@ static int i2c_acpi_find_match_device(struct device *dev, const void *data)
        return ACPI_COMPANION(dev) == data;
 }
 
-static struct i2c_adapter *i2c_acpi_find_adapter_by_handle(acpi_handle handle)
+struct i2c_adapter *i2c_acpi_find_adapter_by_handle(acpi_handle handle)
 {
        struct device *dev;
 
@@ -341,6 +343,7 @@ static struct i2c_adapter *i2c_acpi_find_adapter_by_handle(acpi_handle handle)
                              i2c_acpi_find_match_adapter);
        return dev ? i2c_verify_adapter(dev) : NULL;
 }
+EXPORT_SYMBOL_GPL(i2c_acpi_find_adapter_by_handle);
 
 static struct i2c_client *i2c_acpi_find_client_by_adev(struct acpi_device *adev)
 {