aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c/i2c-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/i2c/i2c-core.c')
-rw-r--r--drivers/i2c/i2c-core.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index bee0148dfab8..dda472e5e8be 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -679,9 +679,16 @@ static int i2c_probe_address(struct i2c_adapter *adapter, int addr, int kind,
679 return 0; 679 return 0;
680 680
681 /* Make sure there is something at this address, unless forced */ 681 /* Make sure there is something at this address, unless forced */
682 if (kind < 0 682 if (kind < 0) {
683 && i2c_smbus_xfer(adapter, addr, 0, 0, 0, I2C_SMBUS_QUICK, NULL) < 0) 683 if (i2c_smbus_xfer(adapter, addr, 0, 0, 0,
684 return 0; 684 I2C_SMBUS_QUICK, NULL) < 0)
685 return 0;
686
687 /* prevent 24RF08 corruption */
688 if ((addr & ~0x0f) == 0x50)
689 i2c_smbus_xfer(adapter, addr, 0, 0, 0,
690 I2C_SMBUS_QUICK, NULL);
691 }
685 692
686 /* Finally call the custom detection function */ 693 /* Finally call the custom detection function */
687 err = found_proc(adapter, addr, kind); 694 err = found_proc(adapter, addr, kind);