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