Loading drivers/i2c/algos/i2c-algo-bit.c +19 −3 Original line number Original line Diff line number Diff line Loading @@ -232,9 +232,17 @@ static int i2c_inb(struct i2c_adapter *i2c_adap) * Sanity check for the adapter hardware - check the reaction of * Sanity check for the adapter hardware - check the reaction of * the bus lines only if it seems to be idle. * the bus lines only if it seems to be idle. */ */ static int test_bus(struct i2c_algo_bit_data *adap, char *name) static int test_bus(struct i2c_adapter *i2c_adap) { { int scl, sda; struct i2c_algo_bit_data *adap = i2c_adap->algo_data; const char *name = i2c_adap->name; int scl, sda, ret; if (adap->pre_xfer) { ret = adap->pre_xfer(i2c_adap); if (ret < 0) return -ENODEV; } if (adap->getscl == NULL) if (adap->getscl == NULL) pr_info("%s: Testing SDA only, SCL is not readable\n", name); pr_info("%s: Testing SDA only, SCL is not readable\n", name); Loading Loading @@ -297,11 +305,19 @@ static int test_bus(struct i2c_algo_bit_data *adap, char *name) "while pulling SCL high!\n", name); "while pulling SCL high!\n", name); goto bailout; goto bailout; } } if (adap->post_xfer) adap->post_xfer(i2c_adap); pr_info("%s: Test OK\n", name); pr_info("%s: Test OK\n", name); return 0; return 0; bailout: bailout: sdahi(adap); sdahi(adap); sclhi(adap); sclhi(adap); if (adap->post_xfer) adap->post_xfer(i2c_adap); return -ENODEV; return -ENODEV; } } Loading Loading @@ -607,7 +623,7 @@ static int __i2c_bit_add_bus(struct i2c_adapter *adap, int ret; int ret; if (bit_test) { if (bit_test) { ret = test_bus(bit_adap, adap->name); ret = test_bus(adap); if (ret < 0) if (ret < 0) return -ENODEV; return -ENODEV; } } Loading drivers/i2c/i2c-core.c +4 −2 Original line number Original line Diff line number Diff line Loading @@ -797,7 +797,8 @@ static int i2c_do_add_adapter(struct i2c_driver *driver, /* Let legacy drivers scan this bus for matching devices */ /* Let legacy drivers scan this bus for matching devices */ if (driver->attach_adapter) { if (driver->attach_adapter) { dev_warn(&adap->dev, "attach_adapter method is deprecated\n"); dev_warn(&adap->dev, "%s: attach_adapter method is deprecated\n", driver->driver.name); dev_warn(&adap->dev, "Please use another way to instantiate " dev_warn(&adap->dev, "Please use another way to instantiate " "your i2c_client\n"); "your i2c_client\n"); /* We ignore the return code; if it fails, too bad */ /* We ignore the return code; if it fails, too bad */ Loading Loading @@ -984,7 +985,8 @@ static int i2c_do_del_adapter(struct i2c_driver *driver, if (!driver->detach_adapter) if (!driver->detach_adapter) return 0; return 0; dev_warn(&adapter->dev, "detach_adapter method is deprecated\n"); dev_warn(&adapter->dev, "%s: detach_adapter method is deprecated\n", driver->driver.name); res = driver->detach_adapter(adapter); res = driver->detach_adapter(adapter); if (res) if (res) dev_err(&adapter->dev, "detach_adapter failed (%d) " dev_err(&adapter->dev, "detach_adapter failed (%d) " Loading Loading
drivers/i2c/algos/i2c-algo-bit.c +19 −3 Original line number Original line Diff line number Diff line Loading @@ -232,9 +232,17 @@ static int i2c_inb(struct i2c_adapter *i2c_adap) * Sanity check for the adapter hardware - check the reaction of * Sanity check for the adapter hardware - check the reaction of * the bus lines only if it seems to be idle. * the bus lines only if it seems to be idle. */ */ static int test_bus(struct i2c_algo_bit_data *adap, char *name) static int test_bus(struct i2c_adapter *i2c_adap) { { int scl, sda; struct i2c_algo_bit_data *adap = i2c_adap->algo_data; const char *name = i2c_adap->name; int scl, sda, ret; if (adap->pre_xfer) { ret = adap->pre_xfer(i2c_adap); if (ret < 0) return -ENODEV; } if (adap->getscl == NULL) if (adap->getscl == NULL) pr_info("%s: Testing SDA only, SCL is not readable\n", name); pr_info("%s: Testing SDA only, SCL is not readable\n", name); Loading Loading @@ -297,11 +305,19 @@ static int test_bus(struct i2c_algo_bit_data *adap, char *name) "while pulling SCL high!\n", name); "while pulling SCL high!\n", name); goto bailout; goto bailout; } } if (adap->post_xfer) adap->post_xfer(i2c_adap); pr_info("%s: Test OK\n", name); pr_info("%s: Test OK\n", name); return 0; return 0; bailout: bailout: sdahi(adap); sdahi(adap); sclhi(adap); sclhi(adap); if (adap->post_xfer) adap->post_xfer(i2c_adap); return -ENODEV; return -ENODEV; } } Loading Loading @@ -607,7 +623,7 @@ static int __i2c_bit_add_bus(struct i2c_adapter *adap, int ret; int ret; if (bit_test) { if (bit_test) { ret = test_bus(bit_adap, adap->name); ret = test_bus(adap); if (ret < 0) if (ret < 0) return -ENODEV; return -ENODEV; } } Loading
drivers/i2c/i2c-core.c +4 −2 Original line number Original line Diff line number Diff line Loading @@ -797,7 +797,8 @@ static int i2c_do_add_adapter(struct i2c_driver *driver, /* Let legacy drivers scan this bus for matching devices */ /* Let legacy drivers scan this bus for matching devices */ if (driver->attach_adapter) { if (driver->attach_adapter) { dev_warn(&adap->dev, "attach_adapter method is deprecated\n"); dev_warn(&adap->dev, "%s: attach_adapter method is deprecated\n", driver->driver.name); dev_warn(&adap->dev, "Please use another way to instantiate " dev_warn(&adap->dev, "Please use another way to instantiate " "your i2c_client\n"); "your i2c_client\n"); /* We ignore the return code; if it fails, too bad */ /* We ignore the return code; if it fails, too bad */ Loading Loading @@ -984,7 +985,8 @@ static int i2c_do_del_adapter(struct i2c_driver *driver, if (!driver->detach_adapter) if (!driver->detach_adapter) return 0; return 0; dev_warn(&adapter->dev, "detach_adapter method is deprecated\n"); dev_warn(&adapter->dev, "%s: detach_adapter method is deprecated\n", driver->driver.name); res = driver->detach_adapter(adapter); res = driver->detach_adapter(adapter); if (res) if (res) dev_err(&adapter->dev, "detach_adapter failed (%d) " dev_err(&adapter->dev, "detach_adapter failed (%d) " Loading