]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
i2c: only check scl functions when using generic recovery
authorWolfram Sang <wsa@the-dreams.de>
Thu, 12 May 2016 09:25:19 +0000 (11:25 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Fri, 13 May 2016 10:37:03 +0000 (12:37 +0200)
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>
drivers/i2c/i2c-core.c

index 9da44616252995e562e0fac4ca0ed68ed9e15ddf..af11b658984d76809c942622e54afa705e93b83a 100644 (file)
@@ -1594,10 +1594,12 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
 
                        bri->get_scl = get_scl_gpio_value;
                        bri->set_scl = set_scl_gpio_value;
-               } else if (!bri->set_scl || !bri->get_scl) {
+               } else if (bri->recover_bus == i2c_generic_scl_recovery) {
                        /* Generic SCL recovery */
-                       dev_err(&adap->dev, "No {get|set}_gpio() found, not using recovery\n");
-                       adap->bus_recovery_info = NULL;
+                       if (!bri->set_scl || !bri->get_scl) {
+                               dev_err(&adap->dev, "No {get|set}_scl() found, not using recovery\n");
+                               adap->bus_recovery_info = NULL;
+                       }
                }
        }