summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/acpica')
-rw-r--r--sys/dev/acpica/acpi_throttle.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/dev/acpica/acpi_throttle.c b/sys/dev/acpica/acpi_throttle.c
index 073b060..105ac1d 100644
--- a/sys/dev/acpica/acpi_throttle.c
+++ b/sys/dev/acpica/acpi_throttle.c
@@ -175,7 +175,8 @@ acpi_throttle_probe(device_t dev)
* Since p4tcc uses the same mechanism (but internal to the CPU),
* we disable acpi_throttle when p4tcc is also present.
*/
- if (device_find_child(device_get_parent(dev), "p4tcc", -1))
+ if (device_find_child(device_get_parent(dev), "p4tcc", -1) &&
+ !resource_disabled("p4tcc", 0))
return (ENXIO);
device_set_desc(dev, "ACPI CPU Throttling");
@@ -186,6 +187,7 @@ static int
acpi_throttle_attach(device_t dev)
{
struct acpi_throttle_softc *sc;
+ struct cf_setting set;
ACPI_BUFFER buf;
ACPI_OBJECT *obj;
ACPI_STATUS status;
@@ -217,6 +219,13 @@ acpi_throttle_attach(device_t dev)
if (error)
return (error);
+ /*
+ * Set our initial frequency to the highest since some systems
+ * seem to boot with this at the lowest setting.
+ */
+ set.freq = 10000;
+ acpi_thr_set(dev, &set);
+
/* Everything went ok, register with cpufreq(4). */
cpufreq_register(dev);
return (0);
OpenPOWER on IntegriCloud