[i2c] [PATCH 2/6] Blackfin I2C/TWI driver: Add platform_resource interface to support multi-port TWI controllers

Jean Delvare khali at linux-fr.org
Mon Mar 24 20:49:38 CET 2008


On Fri, 14 Mar 2008 00:22:36 -0700, Bryan Wu wrote:
> From: Bryan Wu <bryan.wu at analog.com>
> 
>  - Dynamic alloc the resource of TWI driver data according to board information
>  - TWI register read/write accessor based on dynamic regs_base
>  - Support TWI0/TWI1 for BF54x
> 
> Signed-off-by: Bryan Wu <bryan.wu at analog.com>
> Signed-off-by: Bryan Wu <cooloney at kernel.org>
> ---
>  drivers/i2c/busses/i2c-bfin-twi.c |  281 +++++++++++++++++++++++--------------
>  1 files changed, 174 insertions(+), 107 deletions(-)

Looks good, except:

> diff --git a/drivers/i2c/busses/i2c-bfin-twi.c b/drivers/i2c/busses/i2c-bfin-twi.c
> index ea15125..515fe08 100644
> --- a/drivers/i2c/busses/i2c-bfin-twi.c
> +++ b/drivers/i2c/busses/i2c-bfin-twi.c
> (...)
> @@ -593,39 +646,55 @@ static int i2c_bfin_twi_probe(struct platform_device *dev)
> (...)
> +	return 0;
> +
> +out_error_add_adapter:
> +	free_irq(iface->irq, iface);
> +out_error_req_irq:
> +out_error_no_irq:
> +	iounmap(iface->regs_base);
> +out_error_ioremap:
> +out_error_get_res:
> +	kfree(iface);
> +out_error_nomem:
>  	return rc;
>  }

You forgot to add the same steps when removing the device in
i2c_bfin_twi_remove(): you must call iounmap() and kfree() there too!

Also, it looks to me like this patch makes many bfin_read_TWI_* and
bfin_write_TWI_* macros in include/asm-blackfin/mach-bf537/cdefBF534.h
and include/asm-blackfin/mach-bf527/cdefBF52x_base.h unneeded, so it
would probably be a good idea to delete them now to avoid any confusion?

-- 
Jean Delvare



More information about the i2c mailing list