Skip to content

Commit

Permalink
[PATCH] I2C: ds1337: search by bus number
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ladislav Michl authored and Greg Kroah-Hartman committed Jun 22, 2005
1 parent 0058824 commit 8691983
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions drivers/i2c/chips/ds1337.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -213,15 +211,15 @@ 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;
struct ds1337_data *data;

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);
}

Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 8691983

Please sign in to comment.