On Mon, Dec 29, 2014 at 03:48:48PM +0200, Mika Westerberg wrote:
> ACPI specification allows I2C devices with multiple addresses. The current
> implementation goes over all addresses and assigns the last one to the
> device. This is typically not the primary address of the device.
> 
> Instead of doing that we assign the first address to the device and then
> let the driver handle rest of the addresses as it wishes.
> 
> Signed-off-by: Mika Westerberg <mika.westerb...@linux.intel.com>
> Cc: Srinivas Pandruvada <srinivas.pandruv...@linux.intel.com>

Yes, seems better than what we do know. But maybe taking the lowest
address is a bit better heuristic than taking the first address?
Not sure, though...

> ---
>  drivers/i2c/i2c-core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
> index 39d25a8cb1ad..a06be43b7842 100644
> --- a/drivers/i2c/i2c-core.c
> +++ b/drivers/i2c/i2c-core.c
> @@ -102,7 +102,7 @@ static int acpi_i2c_add_resource(struct acpi_resource 
> *ares, void *data)
>               struct acpi_resource_i2c_serialbus *sb;
>  
>               sb = &ares->data.i2c_serial_bus;
> -             if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_I2C) {
> +             if (!info->addr && sb->type == ACPI_RESOURCE_SERIAL_TYPE_I2C) {
>                       info->addr = sb->slave_address;
>                       if (sb->access_mode == ACPI_I2C_10BIT_MODE)
>                               info->flags |= I2C_CLIENT_TEN;
> -- 
> 2.1.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Attachment: signature.asc
Description: Digital signature

Reply via email to