mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 17:24:17 +08:00
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
This commit is contained in:
commit
a1b49cb7e2
@ -232,9 +232,17 @@ static int i2c_inb(struct i2c_adapter *i2c_adap)
|
||||
* Sanity check for the adapter hardware - check the reaction of
|
||||
* 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)
|
||||
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)
|
||||
"while pulling SCL high!\n", name);
|
||||
goto bailout;
|
||||
}
|
||||
|
||||
if (adap->post_xfer)
|
||||
adap->post_xfer(i2c_adap);
|
||||
|
||||
pr_info("%s: Test OK\n", name);
|
||||
return 0;
|
||||
bailout:
|
||||
sdahi(adap);
|
||||
sclhi(adap);
|
||||
|
||||
if (adap->post_xfer)
|
||||
adap->post_xfer(i2c_adap);
|
||||
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@ -607,7 +623,7 @@ static int __i2c_bit_add_bus(struct i2c_adapter *adap,
|
||||
int ret;
|
||||
|
||||
if (bit_test) {
|
||||
ret = test_bus(bit_adap, adap->name);
|
||||
ret = test_bus(adap);
|
||||
if (ret < 0)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
@ -797,7 +797,8 @@ static int i2c_do_add_adapter(struct i2c_driver *driver,
|
||||
|
||||
/* Let legacy drivers scan this bus for matching devices */
|
||||
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 "
|
||||
"your i2c_client\n");
|
||||
/* We ignore the return code; if it fails, too bad */
|
||||
@ -984,7 +985,8 @@ static int i2c_do_del_adapter(struct i2c_driver *driver,
|
||||
|
||||
if (!driver->detach_adapter)
|
||||
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);
|
||||
if (res)
|
||||
dev_err(&adapter->dev, "detach_adapter failed (%d) "
|
||||
|
Loading…
Reference in New Issue
Block a user