Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging

* 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
i2c-algo-bit: Call pre/post_xfer for bit_test
i2c: Improve deprecation warnings

+23 -5
+19 -3
drivers/i2c/algos/i2c-algo-bit.c
··· 232 232 * Sanity check for the adapter hardware - check the reaction of 233 233 * the bus lines only if it seems to be idle. 234 234 */ 235 - static int test_bus(struct i2c_algo_bit_data *adap, char *name) 235 + static int test_bus(struct i2c_adapter *i2c_adap) 236 236 { 237 - int scl, sda; 237 + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; 238 + const char *name = i2c_adap->name; 239 + int scl, sda, ret; 240 + 241 + if (adap->pre_xfer) { 242 + ret = adap->pre_xfer(i2c_adap); 243 + if (ret < 0) 244 + return -ENODEV; 245 + } 238 246 239 247 if (adap->getscl == NULL) 240 248 pr_info("%s: Testing SDA only, SCL is not readable\n", name); ··· 305 297 "while pulling SCL high!\n", name); 306 298 goto bailout; 307 299 } 300 + 301 + if (adap->post_xfer) 302 + adap->post_xfer(i2c_adap); 303 + 308 304 pr_info("%s: Test OK\n", name); 309 305 return 0; 310 306 bailout: 311 307 sdahi(adap); 312 308 sclhi(adap); 309 + 310 + if (adap->post_xfer) 311 + adap->post_xfer(i2c_adap); 312 + 313 313 return -ENODEV; 314 314 } 315 315 ··· 623 607 int ret; 624 608 625 609 if (bit_test) { 626 - ret = test_bus(bit_adap, adap->name); 610 + ret = test_bus(adap); 627 611 if (ret < 0) 628 612 return -ENODEV; 629 613 }
+4 -2
drivers/i2c/i2c-core.c
··· 797 797 798 798 /* Let legacy drivers scan this bus for matching devices */ 799 799 if (driver->attach_adapter) { 800 - dev_warn(&adap->dev, "attach_adapter method is deprecated\n"); 800 + dev_warn(&adap->dev, "%s: attach_adapter method is deprecated\n", 801 + driver->driver.name); 801 802 dev_warn(&adap->dev, "Please use another way to instantiate " 802 803 "your i2c_client\n"); 803 804 /* We ignore the return code; if it fails, too bad */ ··· 985 984 986 985 if (!driver->detach_adapter) 987 986 return 0; 988 - dev_warn(&adapter->dev, "detach_adapter method is deprecated\n"); 987 + dev_warn(&adapter->dev, "%s: detach_adapter method is deprecated\n", 988 + driver->driver.name); 989 989 res = driver->detach_adapter(adapter); 990 990 if (res) 991 991 dev_err(&adapter->dev, "detach_adapter failed (%d) "