Re: [PATCH] PCI / ACPI: Always resume devices on ACPI wakeup notifications

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday, April 02, 2013 05:58:42 PM Bjorn Helgaas wrote:
> On Tue, Apr 2, 2013 at 4:49 PM, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
> > On Tuesday, April 02, 2013 10:30:54 AM Bjorn Helgaas wrote:
> >> On Tue, Apr 2, 2013 at 9:02 AM, Martin Mokrejs
> >> <mmokrejs@xxxxxxxxxxxxxxxxxx> wrote:
> >> > Hi Ying,
> >> >
> >> > huang ying wrote:
> >>
> >> >> And please give me the full dmesg for boot and incremental dmesg for
> >> >> operations.
> >> >
> >> >
> >> > The incremental bits here, the full dmesg will send only directly to your email, due to its size.
> >>
> >> Is there a bugzilla for this issue?  Please attach the complete dmesg
> >> there or somewhere similar so we can all benefit.
> >>
> >> I think we have two problems that may be relevant to this discussion.
> >>
> >> 1) The _OSC "PCI Express Capability Structure control" bit.  I don't
> >> think Linux pays attention to whether the BIOS has granted us control
> >> over the capability, so we may do things to it that the BIOS doesn't
> >> expect.
> >
> > Yes, it does, as far as I can say.
> 
> Let me expand on this to see if we're talking about the same thing.
> I'm looking at Tables 6-149 and 6-150 in ACPI spec 5.0, and I
> interpret them as saying the OS should not perform any configuration
> in the PCI Express, VC, Power Budgeting, AER, or Serial Number
> capabilities unless the BIOS grants "PCI Express Capability Structure
> control."
> 
> I see the code in acpi_pci_root_add() that runs _OSC with
> OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL in flags, but I don't see
> anything that uses the result to decide whether we can write to the
> Device Control, Link Control, Slot Control, etc., registers in the
> capability, or to the other extended capabilities.  (ASPM is an
> exception -- we *do* call pcie_no_aspm(), and maybe that keeps us from
> touching the ASPM part of Link Control.)
> 
> I haven't looked deeply enough to identify a problem; it's just
> something that worries me.

That actually is more convoluted.  Because we pass
OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL to acpi_pci_osc_control_set() as the
minimum requirement, it won't request any of the other PCIe flags without it.
This causes those flags to be unset in root->osc_control_set and then
*srv_mask from pcie_port_acpi_setup() will always be 0, in which case no native
PCIe port services will be used.

Of course, whether this is sufficient or not is a good question.

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux