aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/i2c/porting-clients1
-rw-r--r--drivers/i2c/i2c-core.c5
-rw-r--r--include/linux/i2c.h4
3 files changed, 2 insertions, 8 deletions
diff --git a/Documentation/i2c/porting-clients b/Documentation/i2c/porting-clients
index 64c610bf2fbc..6b07f23039d2 100644
--- a/Documentation/i2c/porting-clients
+++ b/Documentation/i2c/porting-clients
@@ -92,6 +92,7 @@ Technical changes:
92 Drop client->id. 92 Drop client->id.
93 Drop any 24RF08 corruption prevention you find, as this is now done 93 Drop any 24RF08 corruption prevention you find, as this is now done
94 at the i2c-core level, and doing it twice voids it. 94 at the i2c-core level, and doing it twice voids it.
95 Don't add I2C_CLIENT_ALLOW_USE to client->flags, it's the default now.
95 96
96* [Init] Limits must not be set by the driver (can be done later in 97* [Init] Limits must not be set by the driver (can be done later in
97 user-space). Chip should not be reset default (although a module 98 user-space). Chip should not be reset default (although a module
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index d16b4998c4c2..a1c5dff85431 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -497,14 +497,9 @@ int i2c_use_client(struct i2c_client *client)
497 if (ret) 497 if (ret)
498 return ret; 498 return ret;
499 499
500 if (client->usage_count > 0)
501 goto busy;
502 client->usage_count++; 500 client->usage_count++;
503 501
504 return 0; 502 return 0;
505 busy:
506 i2c_dec_use_client(client);
507 return -EBUSY;
508} 503}
509 504
510int i2c_release_client(struct i2c_client *client) 505int i2c_release_client(struct i2c_client *client)
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 8b4d4695de0e..85c517a9b05b 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -307,9 +307,7 @@ extern struct i2c_client *i2c_get_client(int driver_id, int adapter_id,
307 extern struct i2c_client *i2c_get_client(int,int,struct i2c_client *); 307 extern struct i2c_client *i2c_get_client(int,int,struct i2c_client *);
308 to make sure that client-struct is valid and that it is okay to access 308 to make sure that client-struct is valid and that it is okay to access
309 the i2c-client. 309 the i2c-client.
310 returns -EACCES if client doesn't allow use (default) 310 returns -ENODEV if client has gone in the meantime */
311 returns -EBUSY if client doesn't allow multiple use (default) and
312 usage_count >0 */
313extern int i2c_use_client(struct i2c_client *); 311extern int i2c_use_client(struct i2c_client *);
314extern int i2c_release_client(struct i2c_client *); 312extern int i2c_release_client(struct i2c_client *);
315 313