Re: [PATCH] i2c-bfin-twi: Register adapter with a specific bus number

Bryan Wu
2008-01-23T07:56:59Z

On Tue, 2008-01-22 at 23:40 +0200, Kalle Pokki wrote:
> All the users of this driver explicitly specify the I2C bus numbers
> to be used in their platform data. Make the driver respect that.
>
> Signed-off-by: Kalle Pokki <kalle.pokki-loK5ZF7nR+A@public.gmane.org>
> ---
> drivers/i2c/busses/i2c-bfin-twi.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-bfin-twi.c b/drivers/i2c/busses/i2c-bfin-twi.c
> index 67224a4..7dbdaeb 100644
> --- a/drivers/i2c/busses/i2c-bfin-twi.c
> +++ b/drivers/i2c/busses/i2c-bfin-twi.c
> @@ -550,6 +550,7 @@ static int i2c_bfin_twi_probe(struct platform_device *dev)
>
> p_adap = &iface->adap;
> p_adap->id = I2C_HW_BLACKFIN;
> + p_adap->nr = dev->id;

How do you think of following code, Kalle?

/*
* If "dev->id" is negative we consider it as zero.
* The reason to do so is to avoid sysfs names that only make
* sense when there are multiple adapters.
*/
p_adap->nr = dev->id >= 0 ? dev->id : 0;

I found some i2c-gpio, i2c-ibm_iic.c and i2c-pxa.c using this code,
while others use your idea.

> strlcpy(p_adap->name, dev->name, sizeof(p_adap->name));
> p_adap->algo = &bfin_twi_algorithm;
> p_adap->algo_data = iface;
> @@ -576,7 +577,7 @@ static int i2c_bfin_twi_probe(struct platform_device *dev)
> bfin_write_TWI_CONTROL(bfin_read_TWI_CONTROL() | TWI_ENA);
> SSYNC();
>
> - rc = i2c_add_adapter(p_adap);
> + rc = i2c_add_numbered_adapter(p_adap);
> if (rc < 0)
> free_irq(iface->irq, iface);
> else

Thanks a lot
-Bryan Wu