From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Fri, 04 Oct 2013 10:59:36 +0200 Subject: [U-Boot] [PATCH] i2c, core: optimze i2c_set_bus_num() In-Reply-To: <20131004104200.5c75b41c@amdc308.digital.local> References: <1380864994-24525-1-git-send-email-hs@denx.de> <20131004104200.5c75b41c@amdc308.digital.local> Message-ID: <524E8378.9070500@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Lukasz, Am 04.10.2013 10:42, schrieb Lukasz Majewski: > Hi Heiko, > >> 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 >> Cc: Lukasz Majewski >> --- >> drivers/i2c/i2c_core.c | 18 ++++++++++-------- >> 1 file changed, 10 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/i2c/i2c_core.c b/drivers/i2c/i2c_core.c >> index d1072e8..170423a 100644 >> --- a/drivers/i2c/i2c_core.c >> +++ b/drivers/i2c/i2c_core.c >> @@ -278,20 +278,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", > > Since you are the maintainer of the i2c code, you will decide if > those changes shall be applied (they are really cosmetic) :-). Exactly for this reason a "Acked-by" would not disturb me ;-) > My suggestion: printf -> error() macro @ common.h Yep ... but this should be a seperate patch. >> + I2C_ADAPTER(bus), max); >> + return -2; > > I've noticed that i2c_core uses -1/-2 return values for errors > globaly. > > So for a new code we could start using defines from errno.h (-2 -> > -ENODEV) ? Yes, good point! bye, Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany