mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 07:00:48 +00:00
i2c: i2c-eg20t: do not print error message in syslog if no ACK received
Using the i2c-eg20t driver and call i2cdetect or probe on the bus, the driver will print a lot of error messages if there was no ACK received. i2cdetect normally print a table with all the available devices. If there is no device on the address, the table will be empty. Currently with the i2c-eg20t driver, the table is not visible because the error messages destroy the table. Error message: pch_i2c_getack return -71 This patch prevent the driver to print the messages to syslog. The pch_i2c_wait_for_check_xfer function is the only one who is calling pch_i2c_getack, so we can delete the function and add the read to pch_i2c_wait_for_check_xfer. If no ACK is received, the Message will be printed as a dbg message. Fixed print message to be a one liner so we can grep for the error message. Tested on Intel Atom E6xx and Eg20t Chipset. Signed-off-by: Andreas Werner <wernerandy@gmx.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
93d1724711
commit
5e47eec004
@ -311,24 +311,6 @@ static void pch_i2c_start(struct i2c_algo_pch_data *adap)
|
||||
pch_setbit(adap->pch_base_address, PCH_I2CCTL, PCH_START);
|
||||
}
|
||||
|
||||
/**
|
||||
* pch_i2c_getack() - to confirm ACK/NACK
|
||||
* @adap: Pointer to struct i2c_algo_pch_data.
|
||||
*/
|
||||
static s32 pch_i2c_getack(struct i2c_algo_pch_data *adap)
|
||||
{
|
||||
u32 reg_val;
|
||||
void __iomem *p = adap->pch_base_address;
|
||||
reg_val = ioread32(p + PCH_I2CSR) & PCH_GETACK;
|
||||
|
||||
if (reg_val != 0) {
|
||||
pch_err(adap, "return%d\n", -EPROTO);
|
||||
return -EPROTO;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* pch_i2c_stop() - generate stop condition in normal mode.
|
||||
* @adap: Pointer to struct i2c_algo_pch_data.
|
||||
@ -344,6 +326,7 @@ static void pch_i2c_stop(struct i2c_algo_pch_data *adap)
|
||||
static int pch_i2c_wait_for_check_xfer(struct i2c_algo_pch_data *adap)
|
||||
{
|
||||
long ret;
|
||||
void __iomem *p = adap->pch_base_address;
|
||||
|
||||
ret = wait_event_timeout(pch_event,
|
||||
(adap->pch_event_flag != 0), msecs_to_jiffies(1000));
|
||||
@ -366,10 +349,9 @@ static int pch_i2c_wait_for_check_xfer(struct i2c_algo_pch_data *adap)
|
||||
|
||||
adap->pch_event_flag = 0;
|
||||
|
||||
if (pch_i2c_getack(adap)) {
|
||||
pch_dbg(adap, "Receive NACK for slave address"
|
||||
"setting\n");
|
||||
return -EIO;
|
||||
if (ioread32(p + PCH_I2CSR) & PCH_GETACK) {
|
||||
pch_dbg(adap, "Receive NACK for slave address setting\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user