{ "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 },
 
 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 = "