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
|
* 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)
|
||||||
"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,
|
||||||
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,
|
||||||
|
|
||||||
/* 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,
|
||||||
|
|
||||||
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…
Reference in New Issue