• Alex Chiang's avatar
    ACPI: processor: call _PDC early · 78f16996
    Alex Chiang authored
    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: default avatarAlex Chiang <achiang@hp.com>
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    78f16996
bus.c 24.4 KB