diff options
Diffstat (limited to 'drivers/i2c/i2c-core.c')
-rw-r--r-- | drivers/i2c/i2c-core.c | 13 |
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); |