linux/drivers/acpi
Alex Chiang 78f1699659 ACPI: processor: call _PDC early
We discovered that at least one machine (HP Envy), methods in the DSDT
attempt to call external methods defined in a dynamically loaded SSDT.

Unfortunately, the DSDT methods we are trying to call are part of the
EC initialization, which happens very early, and the the dynamic SSDT
is only loaded when a processor _PDC method runs much later.

This results in namespace lookup errors for the (as of yet) undefined
methods.

Since Windows doesn't have any issues with this machine, we take it
as a hint that they must be evaluating _PDC much earlier than we are.

Thus, the proper thing for Linux to do should be to match the Windows
implementation more closely.

Provide a mechanism to call _PDC before we enable the EC. Doing so loads
the dynamic tables, and allows the EC to be enabled correctly.

The ACPI processor driver will still evaluate _PDC in its .add() method
to cover the hotplug case.

Resolves: http://bugzilla.kernel.org/show_bug.cgi?id=14824

Cc: ming.m.lin@intel.com
Signed-off-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2009-12-22 03:24:08 -05:00
..
acpica Merge branch 'acpica' into release 2009-12-15 22:27:39 -05:00
ac.c ACPI: add AC/DC notifier 2009-10-06 13:55:56 -04:00
acpi_memhotplug.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
acpi_pad.c acpi_pad: squish warning 2009-12-16 03:21:22 -05:00
battery.c battery: fix typo in comment 2009-12-16 00:07:21 -05:00
blacklist.c ACPI: Add Thinkpad T400, T500 to OSI(Linux) white-list 2009-11-24 22:34:06 -05:00
bus.c ACPI: processor: call _PDC early 2009-12-22 03:24:08 -05:00
button.c ACPI: Use the return result of ACPI lid notifier chain correctly 2009-12-16 01:12:35 -05:00
cm_sbs.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
container.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
debug.c ACPI: add kernel tainting after overriding an ACPI control method 2009-12-15 22:52:19 -05:00
dock.c Merge branch 'dock' into release 2009-12-16 03:33:28 -05:00
ec.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
event.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
fan.c ACPI: Remove repeated registered as cooling_device messages 2009-12-16 00:07:10 -05:00
glue.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
hest.c PCI: PCIe AER: honor ACPI HEST FIRMWARE FIRST mode 2009-11-04 13:06:25 -08:00
internal.h ACPI: processor: call _PDC early 2009-12-22 03:24:08 -05:00
Kconfig ACPI: Kconfig, fix proc aggregator text 2009-10-09 13:14:51 -04:00
Makefile ACPI: processor: call _PDC early 2009-12-22 03:24:08 -05:00
numa.c Merge branch 'misc-2.6.33' into release 2009-12-16 14:22:32 -05:00
osl.c ACPI: add const to acpi_check_resource_conflict() 2009-12-09 14:44:42 -05:00
pci_bind.c ACPI: kill acpi_get_pci_id 2009-06-17 23:32:23 -04:00
pci_irq.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
pci_link.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
pci_root.c ACPI: cleanup pci_root _OSC code. 2009-12-16 14:05:11 -05:00
pci_slot.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
power.c Merge branch 'sfi-base' into release 2009-09-19 00:37:13 -04:00
power_meter.c acpi-power-meter: Don't leak ACPI error codes to userspace 2009-11-05 12:25:39 -05:00
proc.c ACPI: clean up video.c boundary checks and types 2009-10-28 11:49:37 -04:00
processor_core.c ACPI: processor: call _PDC early 2009-12-22 03:24:08 -05:00
processor_idle.c ACPI: fix for lapic_timer_propagate_broadcast() 2009-12-16 04:13:19 -05:00
processor_pdc.c ACPI: processor: call _PDC early 2009-12-22 03:24:08 -05:00
processor_perflib.c Merge branch 'ost' into release 2009-12-16 02:18:36 -05:00
processor_thermal.c Merge branch 'processor-procfs-2.6.32' into release 2009-09-19 02:10:40 -04:00
processor_throttling.c ACPI: Move dereference after NULL test 2009-11-05 17:30:57 -05:00
reboot.c ACPI: reboot.c: use new acpi_reset interface 2008-12-31 01:15:00 -05:00
sbs.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
sbshc.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
sbshc.h
scan.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
sleep.c ACPI: DMI init_set_sci_en_on_resume for HP-Compaq C700 2009-11-23 11:44:12 -05:00
sleep.h ACPI: convert acpi_device_lock spinlock to mutex 2009-04-07 00:02:40 -04:00
system.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
tables.c ACPI: check acpi_disabled in acpi_table_parse() and acpi_table_parse_entries() 2009-08-28 19:57:28 -04:00
thermal.c acpi: thermal: display forced passive trip points in proc 2009-12-16 01:54:09 -05:00
utils.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
video.c ACPI: clean up video.c boundary checks and types 2009-10-28 11:49:37 -04:00
video_detect.c Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-12-09 19:57:06 -08:00
wakeup.c ACPI PM: Replace wakeup.prepared with reference counter 2009-09-09 14:19:18 -07:00