diff options
author | jhb <jhb@FreeBSD.org> | 2008-08-13 16:09:40 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2008-08-13 16:09:40 +0000 |
commit | 3c198486dc571326bb7245d03480f1f181bf367f (patch) | |
tree | 215ff6d0b352a25b0d17e613b406450789136535 | |
parent | c392c350356d4e10651d40ed2906f1c9f50d789e (diff) | |
download | FreeBSD-src-3c198486dc571326bb7245d03480f1f181bf367f.zip FreeBSD-src-3c198486dc571326bb7245d03480f1f181bf367f.tar.gz |
Attach the cpufreq child devices with specific orders to enforce relative
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
-rw-r--r-- | sys/dev/cpufreq/ichss.c | 2 | ||||
-rw-r--r-- | sys/i386/cpufreq/est.c | 2 | ||||
-rw-r--r-- | sys/i386/cpufreq/p4tcc.c | 2 | ||||
-rw-r--r-- | sys/i386/cpufreq/powernow.c | 2 | ||||
-rw-r--r-- | sys/i386/cpufreq/smist.c | 2 |
5 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/cpufreq/ichss.c b/sys/dev/cpufreq/ichss.c index 179886e..fc7f0ac 100644 --- a/sys/dev/cpufreq/ichss.c +++ b/sys/dev/cpufreq/ichss.c @@ -181,7 +181,7 @@ ichss_identify(driver_t *driver, device_t parent) } DPRINT("ichss: PMBASE is %#x\n", pmbase); - child = BUS_ADD_CHILD(parent, 0, "ichss", 0); + child = BUS_ADD_CHILD(parent, 20, "ichss", 0); if (child == NULL) { device_printf(parent, "add SpeedStep child failed\n"); return; diff --git a/sys/i386/cpufreq/est.c b/sys/i386/cpufreq/est.c index ac99e04..8732cbd 100644 --- a/sys/i386/cpufreq/est.c +++ b/sys/i386/cpufreq/est.c @@ -967,7 +967,7 @@ est_identify(driver_t *driver, device_t parent) * We add a child for each CPU since settings must be performed * on each CPU in the SMP case. */ - child = BUS_ADD_CHILD(parent, 0, "est", -1); + child = BUS_ADD_CHILD(parent, 10, "est", -1); if (child == NULL) device_printf(parent, "add est child failed\n"); } diff --git a/sys/i386/cpufreq/p4tcc.c b/sys/i386/cpufreq/p4tcc.c index 4dc206a..10236ec 100644 --- a/sys/i386/cpufreq/p4tcc.c +++ b/sys/i386/cpufreq/p4tcc.c @@ -131,7 +131,7 @@ p4tcc_identify(driver_t *driver, device_t parent) * of the IA32 Intel Architecture Software Developer's Manual, * Volume 3, for more info. */ - if (BUS_ADD_CHILD(parent, 0, "p4tcc", -1) == NULL) + if (BUS_ADD_CHILD(parent, 10, "p4tcc", -1) == NULL) device_printf(parent, "add p4tcc child failed\n"); } diff --git a/sys/i386/cpufreq/powernow.c b/sys/i386/cpufreq/powernow.c index b9b6310..34b40cc 100644 --- a/sys/i386/cpufreq/powernow.c +++ b/sys/i386/cpufreq/powernow.c @@ -894,7 +894,7 @@ pn_identify(driver_t *driver, device_t parent) } if (device_find_child(parent, "powernow", -1) != NULL) return; - if ((child = BUS_ADD_CHILD(parent, 0, "powernow", -1)) == NULL) + if ((child = BUS_ADD_CHILD(parent, 10, "powernow", -1)) == NULL) device_printf(parent, "powernow: add child failed\n"); } diff --git a/sys/i386/cpufreq/smist.c b/sys/i386/cpufreq/smist.c index 2e41ed7..d174427 100644 --- a/sys/i386/cpufreq/smist.c +++ b/sys/i386/cpufreq/smist.c @@ -308,7 +308,7 @@ smist_identify(driver_t *driver, device_t parent) if (device_find_child(parent, "smist", -1) != NULL) return; - if (BUS_ADD_CHILD(parent, 0, "smist", -1) == NULL) + if (BUS_ADD_CHILD(parent, 30, "smist", -1) == NULL) device_printf(parent, "smist: add child failed\n"); } |