Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 68719
b: refs/heads/master
c: 6b9aad2
h: refs/heads/master
i:
  68717: 5013be1
  68715: 7252943
  68711: f481769
  68703: 0a9d950
v: v3
  • Loading branch information
Jean Delvare authored and Mark M. Hoffman committed Oct 10, 2007
1 parent 4f93b90 commit a83300c
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 12 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: b353a487b9d835da331edb443afedfd7977b3d76
refs/heads/master: 6b9aad2d8acf309f99213875dd94f2ec691fe820
48 changes: 37 additions & 11 deletions trunk/drivers/hwmon/lm85.c
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,9 @@ show_in_reg(1);
show_in_reg(2);
show_in_reg(3);
show_in_reg(4);
show_in_reg(5);
show_in_reg(6);
show_in_reg(7);

/* Temps */

Expand Down Expand Up @@ -1030,15 +1033,32 @@ static const struct attribute_group lm85_group = {
.attrs = lm85_attributes,
};

static struct attribute *lm85_attributes_opt[] = {
static struct attribute *lm85_attributes_in4[] = {
&sensor_dev_attr_in4_input.dev_attr.attr,
&sensor_dev_attr_in4_min.dev_attr.attr,
&sensor_dev_attr_in4_max.dev_attr.attr,
NULL
};

static const struct attribute_group lm85_group_opt = {
.attrs = lm85_attributes_opt,
static const struct attribute_group lm85_group_in4 = {
.attrs = lm85_attributes_in4,
};

static struct attribute *lm85_attributes_in567[] = {
&sensor_dev_attr_in5_input.dev_attr.attr,
&sensor_dev_attr_in6_input.dev_attr.attr,
&sensor_dev_attr_in7_input.dev_attr.attr,
&sensor_dev_attr_in5_min.dev_attr.attr,
&sensor_dev_attr_in6_min.dev_attr.attr,
&sensor_dev_attr_in7_min.dev_attr.attr,
&sensor_dev_attr_in5_max.dev_attr.attr,
&sensor_dev_attr_in6_max.dev_attr.attr,
&sensor_dev_attr_in7_max.dev_attr.attr,
NULL
};

static const struct attribute_group lm85_group_in567 = {
.attrs = lm85_attributes_in567,
};

static int lm85_detect(struct i2c_adapter *adapter, int address,
Expand Down Expand Up @@ -1186,12 +1206,14 @@ static int lm85_detect(struct i2c_adapter *adapter, int address,
as a sixth digital VID input rather than an analog input. */
data->vid = lm85_read_value(new_client, LM85_REG_VID);
if (!(kind == adt7463 && (data->vid & 0x80)))
if ((err = device_create_file(&new_client->dev,
&sensor_dev_attr_in4_input.dev_attr))
|| (err = device_create_file(&new_client->dev,
&sensor_dev_attr_in4_min.dev_attr))
|| (err = device_create_file(&new_client->dev,
&sensor_dev_attr_in4_max.dev_attr)))
if ((err = sysfs_create_group(&new_client->dev.kobj,
&lm85_group_in4)))
goto ERROR3;

/* The EMC6D100 has 3 additional voltage inputs */
if (kind == emc6d100)
if ((err = sysfs_create_group(&new_client->dev.kobj,
&lm85_group_in567)))
goto ERROR3;

data->hwmon_dev = hwmon_device_register(&new_client->dev);
Expand All @@ -1205,7 +1227,9 @@ static int lm85_detect(struct i2c_adapter *adapter, int address,
/* Error out and cleanup code */
ERROR3:
sysfs_remove_group(&new_client->dev.kobj, &lm85_group);
sysfs_remove_group(&new_client->dev.kobj, &lm85_group_opt);
sysfs_remove_group(&new_client->dev.kobj, &lm85_group_in4);
if (kind == emc6d100)
sysfs_remove_group(&new_client->dev.kobj, &lm85_group_in567);
ERROR2:
i2c_detach_client(new_client);
ERROR1:
Expand All @@ -1219,7 +1243,9 @@ static int lm85_detach_client(struct i2c_client *client)
struct lm85_data *data = i2c_get_clientdata(client);
hwmon_device_unregister(data->hwmon_dev);
sysfs_remove_group(&client->dev.kobj, &lm85_group);
sysfs_remove_group(&client->dev.kobj, &lm85_group_opt);
sysfs_remove_group(&client->dev.kobj, &lm85_group_in4);
if (data->type == emc6d100)
sysfs_remove_group(&client->dev.kobj, &lm85_group_in567);
i2c_detach_client(client);
kfree(data);
return 0;
Expand Down

0 comments on commit a83300c

Please sign in to comment.