i2c:mxc fix array size of i2c_data
Subsystems (2)
PATCH 1/1 i2c:mxc fix array size of i2c_data
We should not hardcode array size of i2c_data to 3. To CONFIG_FSL_LSCH3, there are 4 i2c interface, but not 3. So the size of i2c_data array should be calculated using "ARRAY_SIZE(i2c_bases)".
To avoid compile error, move i2c_bases before sram_data structure which contains i2c_data array.
--- drivers/i2c/mxc_i2c.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
drivers/i2c/mxc_i2c.c +11 -11
@@ -402,17 +402,6 @@ int bus_i2c_write(void *base, uchar chip, uint addr, int alen,return ret; } -struct i2c_parms { -void *base; -void *idle_bus_data; -int (*idle_bus_fn)(void *p); -}; - -struct sram_data { -unsigned curr_i2c_bus; -struct i2c_parms i2c_data[3 ]; -}; - static void * const i2c_bases[] = {#if defined(CONFIG_MX25 ) (void *)IMX_I2C_BASE,
@@ -439,6 +428,17 @@ static void * const i2c_bases[] = {#endif }; +struct i2c_parms { +void *base; +void *idle_bus_data; +int (*idle_bus_fn)(void *p); +}; + +struct sram_data { +unsigned curr_i2c_bus; +struct i2c_parms i2c_data[ARRAY_SIZE (i2c_bases)]; +}; +void *i2c_get_base (struct i2c_adapter *adap) {return i2c_bases[adap->hwadapnr];
Signature · 1 line
1.8.4
PATCH 1/1 i2c:mxc fix array size of i2c_data
Hello Peng Fan,
Am 06.01.2015 07:12, schrieb Peng Fan:
Quoted 11 lines
We should not hardcode array size of
i2c_datato 3. ToCONFIG_FSL_LSCH3, there are 4 i2c interface, but not 3. So the size ofi2c_dataarray should be calculated using "ARRAY_SIZE(i2c_bases)".To avoid compile error, move
i2c_basesbeforesram_datastructure which containsi2c_dataarray.Signed-off-by Peng Fan <[email protected]>--- drivers/i2c/mxc_i2c.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
@Stefano: Would you pick up this patch, or should I?
bye,
Heiko
Quoted 42 lines
drivers/i2c/mxc_i2c.c +11
-11@@ -402,17 +402,6 @@ int bus_i2c_write(void *base, uchar chip, uint addr, int alen,return ret; } -struct i2c_parms { -void *base; -void *idle_bus_data; -int (*idle_bus_fn)(void *p); -}; - -struct sram_data { -unsigned curr_i2c_bus; -struct i2c_parms i2c_data[3 ]; -}; - static void * const i2c_bases[] = {#if defined(CONFIG_MX25 ) (void *)IMX_I2C_BASE,@@ -439,6 +428,17 @@ static void * const i2c_bases[] = {#endif }; +struct i2c_parms { +void *base; +void *idle_bus_data; +int (*idle_bus_fn)(void *p); +}; + +struct sram_data { +unsigned curr_i2c_bus; +struct i2c_parms i2c_data[ARRAY_SIZE (i2c_bases)]; +}; +void *i2c_get_base (struct i2c_adapter *adap) {return i2c_bases[adap->hwadapnr];
Signature · 2 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Quoted 8 lines · Peng Fan
We should not hardcode array size of
i2c_datato 3. ToCONFIG_FSL_LSCH3, there are 4 i2c interface, but not 3. So the size ofi2c_dataarray should be calculated using "ARRAY_SIZE(i2c_bases)".To avoid compile error, move
i2c_basesbeforesram_datastructure which containsi2c_dataarray.Signed-off-by Peng Fan <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150109/449e9f41/attachment.pgp>