Skip to content

Commit

Permalink
Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/ke…
Browse files Browse the repository at this point in the history
…rnel/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
  • Loading branch information
torvalds committed Apr 18, 2011
2 parents 59c87de + d3b3e15 commit a1b49cb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
22 changes: 19 additions & 3 deletions drivers/i2c/algos/i2c-algo-bit.c
Expand Up @@ -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);
Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}
Expand Down
6 changes: 4 additions & 2 deletions drivers/i2c/i2c-core.c
Expand Up @@ -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 */
Expand Down Expand Up @@ -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) "
Expand Down

0 comments on commit a1b49cb

Please sign in to comment.