freebsd-skq/sys/dev/acpica
avg c5ddd5cba0 acpi cpu: probe+attach before all other enumerated children on acpi bus
Some current systems dynamically load SSDT(s) when _PDC/_OSC method
of Processor is evaluated.  Other devices in ACPI namespace may access
objects defined in the dynamic SSDT.  Drivers for such devices might
have to have a rather high priority, because of other dependencies.
Good example is acpi_ec driver for EC.
Thus we attach to Processors as early as possible to load the SSDTs
before any other drivers may try to evaluate control methods.
It also seems to be a natural order for a processor in a device
hierarchy.

On the other hand, some child devices on acpi cpu bus need to access
other system resources like PCI configuration space of chipset devices,
so they need to be probed and attached rather late.
For this reason we probe and attach the cpu bus at
SI_SUB_CONFIGURE:SI_ORDER_MIDDLE SYSINIT level.
In the future this could be done more elegantly via multipass.

Please note that acpi drivers that might access ACPI namespace from
device_identify will do that before _PDC/_OSC of Processors are evaluated.

Legacy cpu driver is not affected by this change.

PR:		kern/142561 (in part)
Reviewed by:	jhb
Silence from:	acpi@
MFC after:	5 weeks
2010-02-11 08:50:21 +00:00
..
Osd Merge ACPICA 20100121. 2010-01-21 21:14:28 +00:00
acpi_acad.c Do not hold the ACPI A/C adapter lock when changing the power profile. 2009-09-30 17:07:49 +00:00
acpi_battery.c Temporarily revert the new-bus locking for 8.0 release. It will be 2009-08-20 19:17:53 +00:00
acpi_button.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_cmbat.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_cpu.c acpi cpu: probe+attach before all other enumerated children on acpi bus 2010-02-11 08:50:21 +00:00
acpi_dock.c Merge ACPICA 20091112. 2009-11-16 21:47:12 +00:00
acpi_ec.c Merge ACPICA 20100121. 2010-01-21 21:14:28 +00:00
acpi_hpet.c acpi_hpet: correctly get number of timers/comparators in a timer block 2010-01-27 10:17:28 +00:00
acpi_hpet.h Add a header containing constants for the various HPET registers and their 2008-01-16 18:47:07 +00:00
acpi_if.m Merge ACPICA 20100121. 2010-01-21 21:14:28 +00:00
acpi_isab.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_lid.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_package.c Merge ACPICA 20100121. 2010-01-21 21:14:28 +00:00
acpi_pci_link.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_pci.c Merge ACPICA 20091112. 2009-11-16 21:47:12 +00:00
acpi_pcib_acpi.c Catch up with ACPICA 20090903. 2009-09-11 22:49:34 +00:00
acpi_pcib_pci.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_pcib.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_pcibvar.h
acpi_perf.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_powerres.c Merge ACPICA 20100121. 2010-01-21 21:14:28 +00:00
acpi_quirk.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_quirks
acpi_resource.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_smbat.c Merge ACPICA 20100121. 2010-01-21 21:14:28 +00:00
acpi_smbus.h
acpi_thermal.c Temporarily revert the new-bus locking for 8.0 release. It will be 2009-08-20 19:17:53 +00:00
acpi_throttle.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_timer.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_video.c Merge ACPICA 20091112. 2009-11-16 21:47:12 +00:00
acpi.c acpi cpu: probe+attach before all other enumerated children on acpi bus 2010-02-11 08:50:21 +00:00
acpiio.h Update the suspend/resume user API while maintaining backwards compat. 2007-06-21 22:50:37 +00:00
acpivar.h Merge ACPICA 20100121. 2010-01-21 21:14:28 +00:00