Commit 9c2e14af authored by Hans de Goede's avatar Hans de Goede Committed by Mark M. Hoffman

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: default avatarHans de Goede <j.w.r.degoede@hhs.nl>
Signed-off-by: default avatarMark M. Hoffman <mhoffman@lightlink.com>
parent 9f66036b
...@@ -351,7 +351,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -351,7 +351,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX4 Fan", 38, 2, 60, 1, 0 }, { "AUX4 Fan", 38, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0014, "unknown", { { 0x0014, "Abit AB9 Pro", {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 10, 1, 0 }, { "DDR", 1, 0, 10, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -1053,12 +1053,13 @@ static struct platform_driver abituguru3_driver = { ...@@ -1053,12 +1053,13 @@ static struct platform_driver abituguru3_driver = {
static int __init abituguru3_detect(void) static int __init abituguru3_detect(void)
{ {
/* See if there is an uguru3 there. An idle uGuru3 will hold 0x00 /* See if there is an uguru3 there. An idle uGuru3 will hold 0x00 or
at DATA and 0xAC at CMD. Sometimes the uGuru3 will hold 0x05 at 0x08 at DATA and 0xAC at CMD. Sometimes the uGuru3 will hold 0x05
CMD instead, why is unknown. So we test for 0x05 too. */ at CMD instead, why is unknown. So we test for 0x05 too. */
u8 data_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_DATA); u8 data_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_DATA);
u8 cmd_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_CMD); 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; return ABIT_UGURU3_BASE;
ABIT_UGURU3_DEBUG("no Abit uGuru3 found, data = 0x%02X, cmd = " ABIT_UGURU3_DEBUG("no Abit uGuru3 found, data = 0x%02X, cmd = "
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment