Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

i2c: only check scl functions when using generic recovery

A custom recovery function doesn't need these pointers to be populated
because it may work differently internally.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Tested-by: Peter Griffin <peter.griffin@linaro.org>

+5 -3
+5 -3
drivers/i2c/i2c-core.c
··· 1594 1594 1595 1595 bri->get_scl = get_scl_gpio_value; 1596 1596 bri->set_scl = set_scl_gpio_value; 1597 - } else if (!bri->set_scl || !bri->get_scl) { 1597 + } else if (bri->recover_bus == i2c_generic_scl_recovery) { 1598 1598 /* Generic SCL recovery */ 1599 - dev_err(&adap->dev, "No {get|set}_gpio() found, not using recovery\n"); 1600 - adap->bus_recovery_info = NULL; 1599 + if (!bri->set_scl || !bri->get_scl) { 1600 + dev_err(&adap->dev, "No {get|set}_scl() found, not using recovery\n"); 1601 + adap->bus_recovery_info = NULL; 1602 + } 1601 1603 } 1602 1604 } 1603 1605