mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 01:44:34 +00:00
i2c, core: optimze i2c_set_bus_num()
check first, if we are on the bus, we want to enable. If so, return immediately, do not calc max adapter number, nor check other things. Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Lukasz Majewski <l.majewski@samsung.com> Acked-by: Lukasz Majewski <l.majewski@samsung.com>
This commit is contained in:
parent
1086bfa9f4
commit
13c2433ccb
1 changed files with 10 additions and 8 deletions
|
@ -283,20 +283,22 @@ unsigned int i2c_get_bus_num(void)
|
|||
*/
|
||||
int i2c_set_bus_num(unsigned int bus)
|
||||
{
|
||||
int max = ll_entry_count(struct i2c_adapter, i2c);
|
||||
int max;
|
||||
|
||||
if ((bus == I2C_BUS) && (I2C_ADAP->init_done > 0))
|
||||
return 0;
|
||||
|
||||
if (I2C_ADAPTER(bus) >= max) {
|
||||
printf("Error, wrong i2c adapter %d max %d possible\n",
|
||||
I2C_ADAPTER(bus), max);
|
||||
return -2;
|
||||
}
|
||||
#ifndef CONFIG_SYS_I2C_DIRECT_BUS
|
||||
if (bus >= CONFIG_SYS_NUM_I2C_BUSES)
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
if ((bus == I2C_BUS) && (I2C_ADAP->init_done > 0))
|
||||
return 0;
|
||||
max = ll_entry_count(struct i2c_adapter, i2c);
|
||||
if (I2C_ADAPTER(bus) >= max) {
|
||||
printf("Error, wrong i2c adapter %d max %d possible\n",
|
||||
I2C_ADAPTER(bus), max);
|
||||
return -2;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_SYS_I2C_DIRECT_BUS
|
||||
i2c_mux_disconnet_all();
|
||||
|
|
Loading…
Add table
Reference in a new issue