mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 02:19:51 +00:00
Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
* 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: hwmon: (asus_atk0110) Fix upper limit readings hwmon: (smsc47m1) Differentiate between LPC47M233 and LPC47M292
This commit is contained in:
commit
7d3e91b8a1
2 changed files with 16 additions and 1 deletions
|
@ -593,7 +593,11 @@ static int atk_add_sensor(struct atk_data *data, union acpi_object *obj)
|
|||
sensor->data = data;
|
||||
sensor->id = flags->integer.value;
|
||||
sensor->limit1 = limit1->integer.value;
|
||||
sensor->limit2 = limit2->integer.value;
|
||||
if (data->old_interface)
|
||||
sensor->limit2 = limit2->integer.value;
|
||||
else
|
||||
/* The upper limit is expressed as delta from lower limit */
|
||||
sensor->limit2 = sensor->limit1 + limit2->integer.value;
|
||||
|
||||
snprintf(sensor->input_attr_name, ATTR_NAME_SIZE,
|
||||
"%s%d_input", base_name, start + *num);
|
||||
|
|
|
@ -86,6 +86,7 @@ superio_exit(void)
|
|||
#define SUPERIO_REG_ACT 0x30
|
||||
#define SUPERIO_REG_BASE 0x60
|
||||
#define SUPERIO_REG_DEVID 0x20
|
||||
#define SUPERIO_REG_DEVREV 0x21
|
||||
|
||||
/* Logical device registers */
|
||||
|
||||
|
@ -429,6 +430,9 @@ static int __init smsc47m1_find(unsigned short *addr,
|
|||
* The LPC47M292 (device id 0x6B) is somewhat compatible, but it
|
||||
* supports a 3rd fan, and the pin configuration registers are
|
||||
* unfortunately different.
|
||||
* The LPC47M233 has the same device id (0x6B) but is not compatible.
|
||||
* We check the high bit of the device revision register to
|
||||
* differentiate them.
|
||||
*/
|
||||
switch (val) {
|
||||
case 0x51:
|
||||
|
@ -448,6 +452,13 @@ static int __init smsc47m1_find(unsigned short *addr,
|
|||
sio_data->type = smsc47m1;
|
||||
break;
|
||||
case 0x6B:
|
||||
if (superio_inb(SUPERIO_REG_DEVREV) & 0x80) {
|
||||
pr_debug(DRVNAME ": "
|
||||
"Found SMSC LPC47M233, unsupported\n");
|
||||
superio_exit();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
pr_info(DRVNAME ": Found SMSC LPC47M292\n");
|
||||
sio_data->type = smsc47m2;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue