In preparation for future refactoring factor out the fetch of the IRQ into its own helper function. Signed-off-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxx> --- Changes since v2: - Don't consider zero to be a valid IRQ number Thanks, Charles drivers/i2c/i2c-core-acpi.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c index bc82b44f85860..c107f260e252f 100644 --- a/drivers/i2c/i2c-core-acpi.c +++ b/drivers/i2c/i2c-core-acpi.c @@ -148,14 +148,30 @@ static int i2c_acpi_add_resource(struct acpi_resource *ares, void *data) return 1; /* No need to add resource to the list */ } +static int i2c_acpi_get_irq(struct acpi_device *adev) +{ + struct list_head resource_list; + int irq = -ENOENT; + int ret; + + INIT_LIST_HEAD(&resource_list); + + ret = acpi_dev_get_resources(adev, &resource_list, + i2c_acpi_add_resource, &irq); + if (ret < 0) + return -EINVAL; + + acpi_dev_free_resource_list(&resource_list); + + return irq; +} + static int i2c_acpi_get_info(struct acpi_device *adev, struct i2c_board_info *info, struct i2c_adapter *adapter, acpi_handle *adapter_handle) { - struct list_head resource_list; struct i2c_acpi_lookup lookup; - int irq = -ENOENT; int ret; memset(&lookup, 0, sizeof(lookup)); @@ -186,16 +202,9 @@ static int i2c_acpi_get_info(struct acpi_device *adev, *adapter_handle = lookup.adapter_handle; /* Then fill IRQ number if any */ - INIT_LIST_HEAD(&resource_list); - ret = acpi_dev_get_resources(adev, &resource_list, - i2c_acpi_add_resource, &irq); - if (ret < 0) - return -EINVAL; - - if (irq > 0) - info->irq = irq; - - acpi_dev_free_resource_list(&resource_list); + ret = i2c_acpi_get_irq(adev); + if (ret > 0) + info->irq = ret; acpi_set_modalias(adev, dev_name(&adev->dev), info->type, sizeof(info->type)); -- 2.11.0