提交 a1b49cb7 编写于 作者: L Linus Torvalds

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
...@@ -232,9 +232,17 @@ static int i2c_inb(struct i2c_adapter *i2c_adap) ...@@ -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);
...@@ -297,11 +305,19 @@ static int test_bus(struct i2c_algo_bit_data *adap, char *name) ...@@ -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;
} }
...@@ -607,7 +623,7 @@ static int __i2c_bit_add_bus(struct i2c_adapter *adap, ...@@ -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;
} }
......
...@@ -797,7 +797,8 @@ static int i2c_do_add_adapter(struct i2c_driver *driver, ...@@ -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 */
...@@ -984,7 +985,8 @@ static int i2c_do_del_adapter(struct i2c_driver *driver, ...@@ -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) "
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册