hwmon: fix Abit Uguru3 driver detection on some motherboards
authorHans de Goede <j.w.r.degoede@hhs.nl>
Mon, 2 Jul 2007 21:08:26 +0000 (23:08 +0200)
committerMark M. Hoffman <mhoffman@lightlink.com>
Thu, 19 Jul 2007 18:22:18 +0000 (14:22 -0400)
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>
drivers/hwmon/abituguru3.c

index cf6ac4c..a003d10 100644 (file)
@@ -351,7 +351,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
                { "AUX4 Fan",           38, 2, 60, 1, 0 },
                { NULL, 0, 0, 0, 0, 0 } }
        },
-       { 0x0014, "unknown", {
+       { 0x0014, "Abit AB9 Pro", {
                { "CPU Core",            0, 0, 10, 1, 0 },
                { "DDR",                 1, 0, 10, 1, 0 },
                { "DDR VTT",             2, 0, 10, 1, 0 },
@@ -1053,12 +1053,13 @@ static struct platform_driver abituguru3_driver = {
 
 static int __init abituguru3_detect(void)
 {
-       /* See if there is an uguru3 there. An idle uGuru3 will hold 0x00
-          at DATA and 0xAC at CMD. Sometimes the uGuru3 will hold 0x05 at
-          CMD instead, why is unknown. So we test for 0x05 too. */
+       /* See if there is an uguru3 there. An idle uGuru3 will hold 0x00 or
+          0x08 at DATA and 0xAC at CMD. Sometimes the uGuru3 will hold 0x05
+          at CMD instead, why is unknown. So we test for 0x05 too. */
        u8 data_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_DATA);
        u8 cmd_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_CMD);
-       if ((data_val == 0x00) && ((cmd_val == 0xAC) || (cmd_val == 0x05)))
+       if (((data_val == 0x00) || (data_val == 0x08)) &&
+                       ((cmd_val == 0xAC) || (cmd_val == 0x05)))
                return ABIT_UGURU3_BASE;
 
        ABIT_UGURU3_DEBUG("no Abit uGuru3 found, data = 0x%02X, cmd = "