Re: [git pull request] ACPI and driver patches for 2.6.33.merge

Yinghai Lu
2009-12-23T02:09:13Z

On Tue, Dec 22, 2009 at 5:38 PM, Yinghai Lu <yinghai@kernel.org> wrote:
> Shaohua Li wrote:
>> On Tue, Dec 22, 2009 at 06:08:57PM +0800, Yinghai Lu wrote:
>>> Ingo Molnar wrote:
>>>> * Shaohua Li <shaohua.li@intel.com> wrote:
>>>>
>>>>> On Fri, Dec 18, 2009 at 09:28:50AM +0800, Yinghai Lu wrote:
>>>>>> On Wed, Dec 16, 2009 at 12:06 PM, Len Brown <lenb@kernel.org> wrote:
>>>>>>> Hi Linus,
>>>>>>>
>>>>>>> please pull from:
>>>>>>>
>>>>>>> git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git release
>>>>>>>
>>>>>> ;..
>>>>>>> Shaohua Li (3):
>>>>>>> ? ? ?ACPI: Add a generic API for _OSC -v2
>>>>>>> ? ? ?ACPI: cleanup pci_root _OSC code.
>>>>>>> ? ? ?ACPI: Add platform-wide _OSC support.
>>>>>> it seems these three patches broke the _OSC on my intel new systems.
>>>>>>
>>>>>> revert them fix the problem with AER and pciehp and etc
>>>>> can you give more details? I just cleaned up the _OSC code for AER and
>>>>> pciehp, no function changes.
>>>> Famous last words ;-)
>>>>
>>>> Yinghai, i suspect Shaohua needs the kind of info you'd need if you tried to
>>>> fix it: acpidump, before/after debug boot log, a description of what goes bad,
>>>> etc.
>>> the so called clean up, change the ret length checking.
>>>
>>> -       if (!output.length)
>>> -               return AE_NULL_OBJECT;
>>> -
>>>
>>> +       /* return buffer should have the same length as cap buffer */
>>> +       if (context->ret.length != context->cap.length)
>>> +               return AE_NULL_OBJECT;
>> Wield BIOS. ACPI spec does mention the return buffer have the same length.
>> Does changing the check back make the issue go away?
>
> change to
> if (context->ret.length < context->cap.length)
>
> make AER work, but pciehp still fail.

[ 54.190606] calling aer_service_init+0x0/0x2b @ 1
[ 55.200862] run_acpi_osc: ret length 40 cap length 12
[ 55.203924] aer 0000:00:01.0:pcie02: service driver aer loaded
[ 55.208520] aer 0000:00:03.0:pcie02: service driver aer loaded
[ 55.222730] aer 0000:00:05.0:pcie02: service driver aer loaded
[ 55.238340] aer 0000:00:07.0:pcie02: service driver aer loaded
[ 55.242030] aer 0000:00:09.0:pcie02: service driver aer loaded
[ 56.270866] run_acpi_osc: ret length 40 cap length 12
[ 56.275370] aer 0000:80:00.0:pcie02: service driver aer loaded
[ 56.279645] aer 0000:80:01.0:pcie02: service driver aer loaded
[ 56.289378] aer 0000:80:03.0:pcie02: service driver aer loaded
[ 56.306406] aer 0000:80:05.0:pcie02: service driver aer loaded
[ 56.309489] aer 0000:80:07.0:pcie02: service driver aer loaded
[ 56.326848] aer 0000:80:09.0:pcie02: service driver aer loaded
[ 56.330392] initcall aer_service_init+0x0/0x2b returned 0 after 2089791 usecs
[ 56.347263] calling aer_inject_init+0x0/0x12 @ 1
[ 56.349822] initcall aer_inject_init+0x0/0x12 returned 0 after 290 usecs
[ 56.367496] calling ioapic_init+0x0/0x1b @ 1
[ 56.370813] initcall ioapic_init+0x0/0x1b returned 0 after 718 usecs
[ 56.387751] calling pci_hotplug_init+0x0/0x4e @ 1
[ 56.391225] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 56.407362] initcall pci_hotplug_init+0x0/0x4e returned 0 after 15785 usecs
[ 56.411486] calling pcied_init+0x0/0x9c @ 1
[ 56.427349] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCI0
[ 56.446705] Firmware did not grant requested _OSC control
[ 56.450227] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:00:03.0
[ 56.469325] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCI0
[ 56.488221] Firmware did not grant requested _OSC control
[ 56.491440] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:00:05.0
[ 56.511164] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCI0
[ 56.530074] Firmware did not grant requested _OSC control
[ 56.546595] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:00:1c.0
[ 56.567448] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCIB
[ 56.586091] Firmware did not grant requested _OSC control
[ 56.589624] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:80:03.0
[ 56.611700] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCIB
[ 56.627768] Firmware did not grant requested _OSC control
[ 56.630734] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:80:05.0
[ 56.655403] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCI0
[ 56.671933] Firmware did not grant requested _OSC control
[ 56.687138] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:00:03.0
[ 56.708671] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCI0
[ 56.726175] Firmware did not grant requested _OSC control
[ 56.728791] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:00:05.0
[ 56.749652] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCI0
[ 56.768909] Firmware did not grant requested _OSC control
[ 56.785642] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:00:1c.0
[ 56.805022] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCIB
[ 56.810012] Firmware did not grant requested _OSC control
[ 56.827406] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:80:03.0
[ 56.848214] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Trying to get hotplug control for \_SB_.PCIB
[ 56.867509] Firmware did not grant requested _OSC control
[ 56.872287] acpi_pcihp: acpi_get_hp_hw_control_from_firmware:
Cannot get control of hotplug hardware for pci 0000:80:05.0
[ 56.890273] pciehp: pcie_port_service_register = 0