diff options
author | Jean Delvare <khali@linux-fr.org> | 2005-09-25 10:18:49 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-10-28 17:02:06 -0400 |
commit | b918ecd2429e1a89b846d9e49ca4520b963c13e8 (patch) | |
tree | 396e8a1f2e958f713722b53c2ab68c66e9b265b3 | |
parent | e415e48b68155bea8b5452113dedba4ec486f3f6 (diff) |
[PATCH] hwmon: Do not forcibly enable via686a by default
Do not enable the VIA VT82C686A/B integrated sensors by default, as
disabled sensors usually means that this feature is not used so the
values won't make any sense. This has been confusing many users in the
past:
http://www2.lm-sensors.nu/~lm78/readticket.cgi?ticket=1786
http://www2.lm-sensors.nu/~lm78/readticket.cgi?ticket=1811
http://www2.lm-sensors.nu/~lm78/readticket.cgi?ticket=2052
It is still possible to forcibly enable the sensors by using the
force_addr module parameter.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Documentation/hwmon/via686a | 17 +++++++++++++++--
drivers/hwmon/via686a.c | 18 +++++++++++-------
2 files changed, 26 insertions(+), 9 deletions(-)
-rw-r--r-- | Documentation/hwmon/via686a | 17 | ||||
-rw-r--r-- | drivers/hwmon/via686a.c | 18 |
2 files changed, 26 insertions, 9 deletions
diff --git a/Documentation/hwmon/via686a b/Documentation/hwmon/via686a index b82014cb7c53..a936fb3824b2 100644 --- a/Documentation/hwmon/via686a +++ b/Documentation/hwmon/via686a | |||
@@ -18,8 +18,9 @@ Authors: | |||
18 | Module Parameters | 18 | Module Parameters |
19 | ----------------- | 19 | ----------------- |
20 | 20 | ||
21 | force_addr=0xaddr Set the I/O base address. Useful for Asus A7V boards | 21 | force_addr=0xaddr Set the I/O base address. Useful for boards that |
22 | that don't set the address in the BIOS. Does not do a | 22 | don't set the address in the BIOS. Look for a BIOS |
23 | upgrade before resorting to this. Does not do a | ||
23 | PCI force; the via686a must still be present in lspci. | 24 | PCI force; the via686a must still be present in lspci. |
24 | Don't use this unless the driver complains that the | 25 | Don't use this unless the driver complains that the |
25 | base address is not set. | 26 | base address is not set. |
@@ -63,3 +64,15 @@ miss once-only alarms. | |||
63 | 64 | ||
64 | The driver only updates its values each 1.5 seconds; reading it more often | 65 | The driver only updates its values each 1.5 seconds; reading it more often |
65 | will do no harm, but will return 'old' values. | 66 | will do no harm, but will return 'old' values. |
67 | |||
68 | Known Issues | ||
69 | ------------ | ||
70 | |||
71 | This driver handles sensors integrated in some VIA south bridges. It is | ||
72 | possible that a motherboard maker used a VT82C686A/B chip as part of a | ||
73 | product design but was not interested in its hardware monitoring features, | ||
74 | in which case the sensor inputs will not be wired. This is the case of | ||
75 | the Asus K7V, A7V and A7V133 motherboards, to name only a few of them. | ||
76 | So, if you need the force_addr parameter, and end up with values which | ||
77 | don't seem to make any sense, don't look any further: your chip is simply | ||
78 | not wired for hardware monitoring. | ||
diff --git a/drivers/hwmon/via686a.c b/drivers/hwmon/via686a.c index 60e94879f415..688ccf924c3a 100644 --- a/drivers/hwmon/via686a.c +++ b/drivers/hwmon/via686a.c | |||
@@ -589,10 +589,8 @@ static int via686a_detect(struct i2c_adapter *adapter) | |||
589 | u16 val; | 589 | u16 val; |
590 | 590 | ||
591 | /* 8231 requires multiple of 256, we enforce that on 686 as well */ | 591 | /* 8231 requires multiple of 256, we enforce that on 686 as well */ |
592 | if (force_addr) | ||
593 | address = force_addr & 0xFF00; | ||
594 | |||
595 | if (force_addr) { | 592 | if (force_addr) { |
593 | address = force_addr & 0xFF00; | ||
596 | dev_warn(&adapter->dev, "forcing ISA address 0x%04X\n", | 594 | dev_warn(&adapter->dev, "forcing ISA address 0x%04X\n", |
597 | address); | 595 | address); |
598 | if (PCIBIOS_SUCCESSFUL != | 596 | if (PCIBIOS_SUCCESSFUL != |
@@ -603,11 +601,17 @@ static int via686a_detect(struct i2c_adapter *adapter) | |||
603 | pci_read_config_word(s_bridge, VIA686A_ENABLE_REG, &val)) | 601 | pci_read_config_word(s_bridge, VIA686A_ENABLE_REG, &val)) |
604 | return -ENODEV; | 602 | return -ENODEV; |
605 | if (!(val & 0x0001)) { | 603 | if (!(val & 0x0001)) { |
606 | dev_warn(&adapter->dev, "enabling sensors\n"); | 604 | if (force_addr) { |
607 | if (PCIBIOS_SUCCESSFUL != | 605 | dev_info(&adapter->dev, "enabling sensors\n"); |
608 | pci_write_config_word(s_bridge, VIA686A_ENABLE_REG, | 606 | if (PCIBIOS_SUCCESSFUL != |
609 | val | 0x0001)) | 607 | pci_write_config_word(s_bridge, VIA686A_ENABLE_REG, |
608 | val | 0x0001)) | ||
609 | return -ENODEV; | ||
610 | } else { | ||
611 | dev_warn(&adapter->dev, "sensors disabled - enable " | ||
612 | "with force_addr=0x%x\n", address); | ||
610 | return -ENODEV; | 613 | return -ENODEV; |
614 | } | ||
611 | } | 615 | } |
612 | 616 | ||
613 | /* Reserve the ISA region */ | 617 | /* Reserve the ISA region */ |