summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2015-05-21 19:31:10 +0000
committerjkim <jkim@FreeBSD.org>2015-05-21 19:31:10 +0000
commitd8ed876b187c8092bdd7945b04083327db53a54e (patch)
tree97839c01db92956b4438e2f8b45f1a5921b5a96d
parent6855bab094fd54805829e8da82f88444f9444a2a (diff)
downloadFreeBSD-src-d8ed876b187c8092bdd7945b04083327db53a54e.zip
FreeBSD-src-d8ed876b187c8092bdd7945b04083327db53a54e.tar.gz
Do not probe Intel PIIX4 south bridge quirks on amd64. These quirky south
bridges only supported Intel Pentium and Pentium II era processors and there is no reason for hardware virtualizations to emulate these quirks. MFC after: 1 week
-rw-r--r--sys/dev/acpica/acpi_cpu.c21
-rw-r--r--sys/dev/acpica/acpi_throttle.c8
2 files changed, 18 insertions, 11 deletions
diff --git a/sys/dev/acpica/acpi_cpu.c b/sys/dev/acpica/acpi_cpu.c
index ac6f191..21fccca 100644
--- a/sys/dev/acpica/acpi_cpu.c
+++ b/sys/dev/acpica/acpi_cpu.c
@@ -185,7 +185,8 @@ static void acpi_cpu_startup_cx(struct acpi_cpu_softc *sc);
static void acpi_cpu_cx_list(struct acpi_cpu_softc *sc);
static void acpi_cpu_idle(sbintime_t sbt);
static void acpi_cpu_notify(ACPI_HANDLE h, UINT32 notify, void *context);
-static int acpi_cpu_quirks(void);
+static void acpi_cpu_quirks(void);
+static void acpi_cpu_quirks_piix4(void);
static int acpi_cpu_usage_sysctl(SYSCTL_HANDLER_ARGS);
static int acpi_cpu_usage_counters_sysctl(SYSCTL_HANDLER_ARGS);
static int acpi_cpu_set_cx_lowest(struct acpi_cpu_softc *sc);
@@ -1239,12 +1240,9 @@ acpi_cpu_notify(ACPI_HANDLE h, UINT32 notify, void *context)
acpi_UserNotify("PROCESSOR", sc->cpu_handle, notify);
}
-static int
+static void
acpi_cpu_quirks(void)
{
- device_t acpi_dev;
- uint32_t val;
-
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
/*
@@ -1278,6 +1276,16 @@ acpi_cpu_quirks(void)
}
/* Look for various quirks of the PIIX4 part. */
+ acpi_cpu_quirks_piix4();
+}
+
+static void
+acpi_cpu_quirks_piix4(void)
+{
+#ifdef __i386__
+ device_t acpi_dev;
+ uint32_t val;
+
acpi_dev = pci_find_device(PCI_VENDOR_INTEL, PCI_DEVICE_82371AB_3);
if (acpi_dev != NULL) {
switch (pci_get_revid(acpi_dev)) {
@@ -1326,8 +1334,7 @@ acpi_cpu_quirks(void)
break;
}
}
-
- return (0);
+#endif
}
static int
diff --git a/sys/dev/acpica/acpi_throttle.c b/sys/dev/acpica/acpi_throttle.c
index ca14215..883b5d3 100644
--- a/sys/dev/acpica/acpi_throttle.c
+++ b/sys/dev/acpica/acpi_throttle.c
@@ -96,7 +96,7 @@ static void acpi_throttle_identify(driver_t *driver, device_t parent);
static int acpi_throttle_probe(device_t dev);
static int acpi_throttle_attach(device_t dev);
static int acpi_throttle_evaluate(struct acpi_throttle_softc *sc);
-static int acpi_throttle_quirks(struct acpi_throttle_softc *sc);
+static void acpi_throttle_quirks(struct acpi_throttle_softc *sc);
static int acpi_thr_settings(device_t dev, struct cf_setting *sets,
int *count);
static int acpi_thr_set(device_t dev, const struct cf_setting *set);
@@ -314,9 +314,10 @@ acpi_throttle_evaluate(struct acpi_throttle_softc *sc)
return (0);
}
-static int
+static void
acpi_throttle_quirks(struct acpi_throttle_softc *sc)
{
+#ifdef __i386__
device_t acpi_dev;
/* Look for various quirks of the PIIX4 part. */
@@ -339,8 +340,7 @@ acpi_throttle_quirks(struct acpi_throttle_softc *sc)
break;
}
}
-
- return (0);
+#endif
}
static int
OpenPOWER on IntegriCloud