Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 315990
b: refs/heads/master
c: efd2d11
h: refs/heads/master
v: v3
  • Loading branch information
Guenter Roeck committed Jul 22, 2012
1 parent d59b5b6 commit 9f56866
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 31 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 13ac7a017678d9d7ee4dcc93a10947df0d3b5b12
refs/heads/master: efd2d117aeb5f01cc9c90e56fff29d4a5f535580
59 changes: 29 additions & 30 deletions trunk/drivers/hwmon/lm77.c
Original file line number Diff line number Diff line change
Expand Up @@ -267,10 +267,9 @@ static const struct attribute_group lm77_group = {
};

/* Return 0 if detection is successful, -ENODEV otherwise */
static int lm77_detect(struct i2c_client *new_client,
struct i2c_board_info *info)
static int lm77_detect(struct i2c_client *client, struct i2c_board_info *info)
{
struct i2c_adapter *adapter = new_client->adapter;
struct i2c_adapter *adapter = client->adapter;
int i, cur, conf, hyst, crit, min, max;

if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA |
Expand All @@ -292,18 +291,18 @@ static int lm77_detect(struct i2c_client *new_client,
*/

/* addresses cycling */
cur = i2c_smbus_read_word_data(new_client, 0);
conf = i2c_smbus_read_byte_data(new_client, 1);
hyst = i2c_smbus_read_word_data(new_client, 2);
crit = i2c_smbus_read_word_data(new_client, 3);
min = i2c_smbus_read_word_data(new_client, 4);
max = i2c_smbus_read_word_data(new_client, 5);
cur = i2c_smbus_read_word_data(client, 0);
conf = i2c_smbus_read_byte_data(client, 1);
hyst = i2c_smbus_read_word_data(client, 2);
crit = i2c_smbus_read_word_data(client, 3);
min = i2c_smbus_read_word_data(client, 4);
max = i2c_smbus_read_word_data(client, 5);
for (i = 8; i <= 0xff; i += 8) {
if (i2c_smbus_read_byte_data(new_client, i + 1) != conf
|| i2c_smbus_read_word_data(new_client, i + 2) != hyst
|| i2c_smbus_read_word_data(new_client, i + 3) != crit
|| i2c_smbus_read_word_data(new_client, i + 4) != min
|| i2c_smbus_read_word_data(new_client, i + 5) != max)
if (i2c_smbus_read_byte_data(client, i + 1) != conf
|| i2c_smbus_read_word_data(client, i + 2) != hyst
|| i2c_smbus_read_word_data(client, i + 3) != crit
|| i2c_smbus_read_word_data(client, i + 4) != min
|| i2c_smbus_read_word_data(client, i + 5) != max)
return -ENODEV;
}

Expand All @@ -320,27 +319,27 @@ static int lm77_detect(struct i2c_client *new_client,
return -ENODEV;

/* 0x06 and 0x07 return the last read value */
cur = i2c_smbus_read_word_data(new_client, 0);
if (i2c_smbus_read_word_data(new_client, 6) != cur
|| i2c_smbus_read_word_data(new_client, 7) != cur)
cur = i2c_smbus_read_word_data(client, 0);
if (i2c_smbus_read_word_data(client, 6) != cur
|| i2c_smbus_read_word_data(client, 7) != cur)
return -ENODEV;
hyst = i2c_smbus_read_word_data(new_client, 2);
if (i2c_smbus_read_word_data(new_client, 6) != hyst
|| i2c_smbus_read_word_data(new_client, 7) != hyst)
hyst = i2c_smbus_read_word_data(client, 2);
if (i2c_smbus_read_word_data(client, 6) != hyst
|| i2c_smbus_read_word_data(client, 7) != hyst)
return -ENODEV;
min = i2c_smbus_read_word_data(new_client, 4);
if (i2c_smbus_read_word_data(new_client, 6) != min
|| i2c_smbus_read_word_data(new_client, 7) != min)
min = i2c_smbus_read_word_data(client, 4);
if (i2c_smbus_read_word_data(client, 6) != min
|| i2c_smbus_read_word_data(client, 7) != min)
return -ENODEV;

strlcpy(info->type, "lm77", I2C_NAME_SIZE);

return 0;
}

static int lm77_probe(struct i2c_client *new_client,
const struct i2c_device_id *id)
static int lm77_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
struct device *dev = &client->dev;
struct lm77_data *data;
int err;

Expand All @@ -350,19 +349,19 @@ static int lm77_probe(struct i2c_client *new_client,
goto exit;
}

i2c_set_clientdata(new_client, data);
i2c_set_clientdata(client, data);
data->valid = 0;
mutex_init(&data->update_lock);

/* Initialize the LM77 chip */
lm77_init_client(new_client);
lm77_init_client(client);

/* Register sysfs hooks */
err = sysfs_create_group(&new_client->dev.kobj, &lm77_group);
err = sysfs_create_group(&dev->kobj, &lm77_group);
if (err)
goto exit_free;

data->hwmon_dev = hwmon_device_register(&new_client->dev);
data->hwmon_dev = hwmon_device_register(dev);
if (IS_ERR(data->hwmon_dev)) {
err = PTR_ERR(data->hwmon_dev);
goto exit_remove;
Expand All @@ -371,7 +370,7 @@ static int lm77_probe(struct i2c_client *new_client,
return 0;

exit_remove:
sysfs_remove_group(&new_client->dev.kobj, &lm77_group);
sysfs_remove_group(&dev->kobj, &lm77_group);
exit_free:
kfree(data);
exit:
Expand Down

0 comments on commit 9f56866

Please sign in to comment.