summaryrefslogtreecommitdiffstats
path: root/sys/dev/cpufreq
Commit message (Collapse)AuthorAgeFilesLines
* Attach the cpufreq child devices with specific orders to enforce relativejhb2008-08-131-1/+1
| | | | | | | | | | | | | | priority of some of the drivers that manage the same state (e.g. ichss0 vs est0). Specifically, powernow, est, and p4tcc are added at order 10, ichss at order 20, and smist at order 30. Previously, some laptops were seeing both ichss0 and est0 attaching and stomping on each other. XXX: This isn't quite ideal, but works with the existing hacks, I think what we really want instead is a single "speedstep0" device for CPUs that the ichss, est, and smist drivers probe (but with differing priorities). MFC after: 1 week
* Probe CPUs after the PCI hierarchy on i386, amd64, and ia64. This allowsjhb2008-03-101-61/+50
| | | | | | | | | | | | | | | | | the cpufreq drivers to reliably use properties of PCI devices for quirks, etc. - For the legacy drivers, add CPU devices via an identify routine in the CPU driver itself rather than in the legacy driver's attach routine. - Add CPU devices after Host-PCI bridges in the acpi bus driver. - Change the ichss(4) driver to use pci_find_bsf() to locate the ICH and check its device ID rather than having a bogus PCI attachment that only checked for the ID in probe and always failed. As a side effect, you can now kldload ichss after boot. - Fix the ichss(4) driver to use the correct device_t for the ICH (and not for ichss0) when doing PCI config space operations to enable SpeedStep. MFC after: 2 weeks Reviewed by: njl, Andriy Gapon avg of icyb.net.ua
* Since DELAY() was moved, most <machine/clock.h> #includes have beenphk2006-05-161-1/+0
| | | | unnecessary.
* Only activate ICH speedstep if we're going to use it. No bugs were observednjl2005-03-201-9/+9
| | | | due to this but it's cleaner this way.
* Make a pass through all drivers checking specs for desired behavior onnjl2005-02-271-1/+5
| | | | | | | SMP systems. It appears all drivers except ichss should attach to each CPU and that settings should be performed on each CPU. Add comments about this. Also, add a guard for p4tcc's identify method being called more than once.
* Support disabling individual cpufreq drivers with hints, e.g.,njl2005-02-221-0/+3
| | | | hint.ichss.0.disabled="1"
* Don't attach ichss if est is present. On systems that seem to support both,njl2005-02-201-2/+6
| | | | the multi-setting EST is preferable.
* Introduce a new method, cpufreq_drv_type(), that returns the type of thenjl2005-02-181-9/+18
| | | | | | | | | | | driver. This used to be handled by cpufreq_drv_settings() but it's useful to get the type/flags separately from getting the settings. (For example, you don't have to pass an array of cf_setting just to find the driver type.) Use this new method in our in-tree drivers to detect reliably if acpi_perf is present and owns the hardware. This simplifies logic in drivers as well as fixing a bug introduced in my last commit where too many drivers attached.
* Fix the check for acpi_perf(4) so that we verify if it is fully attachednjl2005-02-171-4/+14
| | | | | | | | | or just offering info. In the former case, we don't probe/attach to allow the ACPI driver precedence. A refinement of this would be to actually use the info provided by acpi_perf(4) to get the real CPU clock rates instead of estimating them but since all systems that support both acpi_perf(4) and ichss(4) export the control registers to acpi_perf(4), it can just handle the registers on its own.
* Use intr_disable/restore() instead of disable_intr() since the latter isnjl2005-02-051-2/+3
| | | | not MI. This should fix build on non i386 platforms.
* Don't rely on indirect inclusion of machine/bus.h to useimp2005-02-041-0/+1
| | | | | | bus_space_{read,write}_* routines. This doesn't matter in the current tree, but will matter soon (the rest of the tree appears to already be clean).
* Add a cpufreq driver for the SpeedStep capability in the ICH chipset. Thisnjl2005-02-041-0/+372
driver offers two settings. Information for this driver was obtained from the Intel datasheets and by reviewing the Linux driver.
OpenPOWER on IntegriCloud