@@ -171,8 +171,6 @@ int i2c_acpi_get_irq(struct i2c_client *client)
return irq;
}
-static struct i2c_client *i2c_acpi_find_client_by_adev(struct acpi_device *adev);
-
static int i2c_acpi_get_info(struct acpi_device *adev,
struct i2c_board_info *info,
struct i2c_adapter *adapter,
@@ -208,11 +206,6 @@ static int i2c_acpi_get_info(struct acpi_device *adev,
if (adapter_handle)
*adapter_handle = lookup.adapter_handle;
- /* Then fill IRQ number if any */
- ret = i2c_acpi_get_irq(i2c_acpi_find_client_by_adev(adev));
- if (ret > 0)
- info->irq = ret;
-
acpi_set_modalias(adev, dev_name(&adev->dev), info->type,
sizeof(info->type));
@@ -327,7 +327,10 @@ static int i2c_device_probe(struct device *dev)
if (irq == -EINVAL || irq == -ENODATA)
irq = of_irq_get(dev->of_node, 0);
} else if (ACPI_COMPANION(dev)) {
- irq = acpi_dev_gpio_irq_get(ACPI_COMPANION(dev), 0);
+ irq = i2c_acpi_get_irq(client);
+
+ if (irq == -ENOENT)
+ irq = acpi_dev_gpio_irq_get(ACPI_COMPANION(dev), 0);
}
if (irq == -EPROBE_DEFER)
return irq;