summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLadislav Michl <ladis@linux-mips.org>2005-05-04 08:14:38 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2005-06-22 06:51:52 +0200
commit86919833dbeac668762ae7056ead2d35d070f622 (patch)
tree5c704a3c8fb85f44cde1102d7e6f09508427be4d
parent[PATCH] I2C: ds1337: i2c_transfer() checking (diff)
downloadlinux-86919833dbeac668762ae7056ead2d35d070f622.tar.xz
linux-86919833dbeac668762ae7056ead2d35d070f622.zip
[PATCH] I2C: ds1337: search by bus number
Chip is searched by bus number rather than its own proprietary id. Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Signed-off-by: James Chapman <jchapman@katalix.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/i2c/chips/ds1337.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/i2c/chips/ds1337.c b/drivers/i2c/chips/ds1337.c
index c4762ac980a3..8ee818ce0135 100644
--- a/drivers/i2c/chips/ds1337.c
+++ b/drivers/i2c/chips/ds1337.c
@@ -69,13 +69,11 @@ static struct i2c_driver ds1337_driver = {
struct ds1337_data {
struct i2c_client client;
struct list_head list;
- int id;
};
/*
* Internal variables
*/
-static int ds1337_id;
static LIST_HEAD(ds1337_clients);
static inline int ds1337_read(struct i2c_client *client, u8 reg, u8 *value)
@@ -213,7 +211,7 @@ static int ds1337_command(struct i2c_client *client, unsigned int cmd,
* Public API for access to specific device. Useful for low-level
* RTC access from kernel code.
*/
-int ds1337_do_command(int id, int cmd, void *arg)
+int ds1337_do_command(int bus, int cmd, void *arg)
{
struct list_head *walk;
struct list_head *tmp;
@@ -221,7 +219,7 @@ int ds1337_do_command(int id, int cmd, void *arg)
list_for_each_safe(walk, tmp, &ds1337_clients) {
data = list_entry(walk, struct ds1337_data, list);
- if (data->id == id)
+ if (data->client.adapter->nr == bus)
return ds1337_command(&data->client, cmd, arg);
}
@@ -331,7 +329,6 @@ static int ds1337_detect(struct i2c_adapter *adapter, int address, int kind)
ds1337_init_client(new_client);
/* Add client to local list */
- data->id = ds1337_id++;
list_add(&data->list, &ds1337_clients);
return 0;