diff options
author | Hans de Goede <j.w.r.degoede@hhs.nl> | 2007-07-02 17:08:26 -0400 |
---|---|---|
committer | Mark M. Hoffman <mhoffman@lightlink.com> | 2007-07-19 14:22:18 -0400 |
commit | 9c2e14afb98f761ec80ea809adbc87b15b060e7b (patch) | |
tree | 4bdf2bd9f70303cdf729ab32cc9c70e186e851bd /drivers/hwmon/abituguru3.c | |
parent | 9f66036b4f95f5e830d68a3ce90aeece0e0c4bf3 (diff) |
hwmon: fix Abit Uguru3 driver detection on some motherboards
This patch changes the driver to also detect uguru3's which hold 0x08 at DATA
initially, as has been reported here:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=220160
Also when an uguru3's holds 0x0014 in the ID register it will now report
"Abit AB9 Pro" as motherboard identification.
Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl>
Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
Diffstat (limited to 'drivers/hwmon/abituguru3.c')
-rw-r--r-- | drivers/hwmon/abituguru3.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/hwmon/abituguru3.c b/drivers/hwmon/abituguru3.c index cf6ac4cdff9a..a003d104ca45 100644 --- a/drivers/hwmon/abituguru3.c +++ b/drivers/hwmon/abituguru3.c | |||
@@ -351,7 +351,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { | |||
351 | { "AUX4 Fan", 38, 2, 60, 1, 0 }, | 351 | { "AUX4 Fan", 38, 2, 60, 1, 0 }, |
352 | { NULL, 0, 0, 0, 0, 0 } } | 352 | { NULL, 0, 0, 0, 0, 0 } } |
353 | }, | 353 | }, |
354 | { 0x0014, "unknown", { | 354 | { 0x0014, "Abit AB9 Pro", { |
355 | { "CPU Core", 0, 0, 10, 1, 0 }, | 355 | { "CPU Core", 0, 0, 10, 1, 0 }, |
356 | { "DDR", 1, 0, 10, 1, 0 }, | 356 | { "DDR", 1, 0, 10, 1, 0 }, |
357 | { "DDR VTT", 2, 0, 10, 1, 0 }, | 357 | { "DDR VTT", 2, 0, 10, 1, 0 }, |
@@ -1053,12 +1053,13 @@ static struct platform_driver abituguru3_driver = { | |||
1053 | 1053 | ||
1054 | static int __init abituguru3_detect(void) | 1054 | static int __init abituguru3_detect(void) |
1055 | { | 1055 | { |
1056 | /* See if there is an uguru3 there. An idle uGuru3 will hold 0x00 | 1056 | /* See if there is an uguru3 there. An idle uGuru3 will hold 0x00 or |
1057 | at DATA and 0xAC at CMD. Sometimes the uGuru3 will hold 0x05 at | 1057 | 0x08 at DATA and 0xAC at CMD. Sometimes the uGuru3 will hold 0x05 |
1058 | CMD instead, why is unknown. So we test for 0x05 too. */ | 1058 | at CMD instead, why is unknown. So we test for 0x05 too. */ |
1059 | u8 data_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_DATA); | 1059 | u8 data_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_DATA); |
1060 | u8 cmd_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_CMD); | 1060 | u8 cmd_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_CMD); |
1061 | if ((data_val == 0x00) && ((cmd_val == 0xAC) || (cmd_val == 0x05))) | 1061 | if (((data_val == 0x00) || (data_val == 0x08)) && |
1062 | ((cmd_val == 0xAC) || (cmd_val == 0x05))) | ||
1062 | return ABIT_UGURU3_BASE; | 1063 | return ABIT_UGURU3_BASE; |
1063 | 1064 | ||
1064 | ABIT_UGURU3_DEBUG("no Abit uGuru3 found, data = 0x%02X, cmd = " | 1065 | ABIT_UGURU3_DEBUG("no Abit uGuru3 found, data = 0x%02X, cmd = " |