Commit 4fc1d39e authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'hwmon-for-linus' of git://github.com/groeck/linux

* 'hwmon-for-linus' of git://github.com/groeck/linux:
  hwmon: (ucd9000/ucd9200) Optimize array walk
  hwmon: (max16065) Add chip access warning to documentation
  hwmon: (max16065) Fix current calculation
parents 28c51ee3 f020b007
...@@ -62,6 +62,13 @@ can be safely used to identify the chip. You will have to instantiate ...@@ -62,6 +62,13 @@ can be safely used to identify the chip. You will have to instantiate
the devices explicitly. Please see Documentation/i2c/instantiating-devices for the devices explicitly. Please see Documentation/i2c/instantiating-devices for
details. details.
WARNING: Do not access chip registers using the i2cdump command, and do not use
any of the i2ctools commands on a command register (0xa5 to 0xac). The chips
supported by this driver interpret any access to a command register (including
read commands) as request to execute the command in question. This may result in
power loss, board resets, and/or Flash corruption. Worst case, your board may
turn into a brick.
Sysfs entries Sysfs entries
------------- -------------
......
...@@ -124,7 +124,7 @@ static inline int MV_TO_LIMIT(int mv, int range) ...@@ -124,7 +124,7 @@ static inline int MV_TO_LIMIT(int mv, int range)
static inline int ADC_TO_CURR(int adc, int gain) static inline int ADC_TO_CURR(int adc, int gain)
{ {
return adc * 1400000 / gain * 255; return adc * 1400000 / (gain * 255);
} }
/* /*
......
...@@ -141,13 +141,11 @@ static int ucd9000_probe(struct i2c_client *client, ...@@ -141,13 +141,11 @@ static int ucd9000_probe(struct i2c_client *client,
block_buffer[ret] = '\0'; block_buffer[ret] = '\0';
dev_info(&client->dev, "Device ID %s\n", block_buffer); dev_info(&client->dev, "Device ID %s\n", block_buffer);
mid = NULL; for (mid = ucd9000_id; mid->name[0]; mid++) {
for (i = 0; i < ARRAY_SIZE(ucd9000_id); i++) {
mid = &ucd9000_id[i];
if (!strncasecmp(mid->name, block_buffer, strlen(mid->name))) if (!strncasecmp(mid->name, block_buffer, strlen(mid->name)))
break; break;
} }
if (!mid || !strlen(mid->name)) { if (!mid->name[0]) {
dev_err(&client->dev, "Unsupported device\n"); dev_err(&client->dev, "Unsupported device\n");
return -ENODEV; return -ENODEV;
} }
......
...@@ -68,13 +68,11 @@ static int ucd9200_probe(struct i2c_client *client, ...@@ -68,13 +68,11 @@ static int ucd9200_probe(struct i2c_client *client,
block_buffer[ret] = '\0'; block_buffer[ret] = '\0';
dev_info(&client->dev, "Device ID %s\n", block_buffer); dev_info(&client->dev, "Device ID %s\n", block_buffer);
mid = NULL; for (mid = ucd9200_id; mid->name[0]; mid++) {
for (i = 0; i < ARRAY_SIZE(ucd9200_id); i++) {
mid = &ucd9200_id[i];
if (!strncasecmp(mid->name, block_buffer, strlen(mid->name))) if (!strncasecmp(mid->name, block_buffer, strlen(mid->name)))
break; break;
} }
if (!mid || !strlen(mid->name)) { if (!mid->name[0]) {
dev_err(&client->dev, "Unsupported device\n"); dev_err(&client->dev, "Unsupported device\n");
return -ENODEV; return -ENODEV;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment