<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/acpi/pci_root.c, branch linux-3.6.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.6.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.6.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-08-03T04:31:23Z</updated>
<entry>
<title>Merge branches 'delete-gts-bfs', 'misc', 'novell-bugzilla-757888-numa' and 'osc-pcie' into base</title>
<updated>2012-08-03T04:31:23Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2012-08-03T04:31:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d0b01a1bbb7a4ad23000240b67bca33c4235fcf'/>
<id>urn:sha1:9d0b01a1bbb7a4ad23000240b67bca33c4235fcf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ACPI / PCI: Do not try to acquire _OSC control if that is hopeless</title>
<updated>2012-07-31T01:15:07Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2012-07-30T20:40:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2d9c86774756193edff2a2a9077264f666c626de'/>
<id>urn:sha1:2d9c86774756193edff2a2a9077264f666c626de</id>
<content type='text'>
If acpi_pci_osc_support() fails for the given flags, it doesn't make
sense to call acpi_pci_osc_control_set() down the road for the same
flags, because it will certainly fail too.  Moreover, problem
diagnostics is then harder, because it is not too easy to identify
the reason of the _OSC failure in those cases.

For this reason, check the status returned by acpi_pci_osc_support()
for PCIe support flags and do not attempt to execute
acpi_pci_osc_control_set() for those flags and print a message if
it's "failure".  For compatibility with the existing code, disable
ASPM in that case too.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>PCI/ACPI: provide MMCONFIG address for PCI host bridges</title>
<updated>2012-06-22T21:16:51Z</updated>
<author>
<name>Jiang Liu</name>
</author>
<published>2012-06-22T06:55:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f4b57a3b4352f72e461e362cb25917e28bdba80f'/>
<id>urn:sha1:f4b57a3b4352f72e461e362cb25917e28bdba80f</id>
<content type='text'>
This patch provide MMCONFIG address for PCI host bridges, which will
be used to support host bridge hotplug.  It gets MMCONFIG address
by evaluating _CBA method if available.

Reviewed-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
Signed-off-by: Jiang Liu &lt;liuj97@gmail.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;</content>
</entry>
<entry>
<title>PCI: Rework ASPM disable code</title>
<updated>2011-12-05T18:21:45Z</updated>
<author>
<name>Matthew Garrett</name>
</author>
<published>2011-11-10T21:38:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3c076351c4027a56d5005a39a0b518a4ba393ce2'/>
<id>urn:sha1:3c076351c4027a56d5005a39a0b518a4ba393ce2</id>
<content type='text'>
Right now we forcibly clear ASPM state on all devices if the BIOS indicates
that the feature isn't supported. Based on the Microsoft presentation
"PCI Express In Depth for Windows Vista and Beyond", I'm starting to think
that this may be an error. The implication is that unless the platform
grants full control via _OSC, Windows will not touch any PCIe features -
including ASPM. In that case clearing ASPM state would be an error unless
the platform has granted us that control.

This patch reworks the ASPM disabling code such that the actual clearing
of state is triggered by a successful handoff of PCIe control to the OS.
The general ASPM code undergoes some changes in order to ensure that the
ability to clear the bits isn't overridden by ASPM having already been
disabled. Further, this theoretically now allows for situations where
only a subset of PCIe roots hand over control, leaving the others in the
BIOS state.

It's difficult to know for sure that this is the right thing to do -
there's zero public documentation on the interaction between all of these
components. But enough vendors enable ASPM on platforms and then set this
bit that it seems likely that they're expecting the OS to leave them alone.

Measured to save around 5W on an idle Thinkpad X220.

Signed-off-by: Matthew Garrett &lt;mjg@redhat.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>ACPI: fix 80 char overflow</title>
<updated>2011-07-14T04:14:05Z</updated>
<author>
<name>Jon Mason</name>
</author>
<published>2011-06-19T23:51:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e545b55a1e980cbb6a158886286106bbf39722b1'/>
<id>urn:sha1:e545b55a1e980cbb6a158886286106bbf39722b1</id>
<content type='text'>
Trivial fix for 80 char line overflow in drivers/acpi/pci_root.c

Signed-off-by: Jon Mason &lt;jdmason@kudzu.us&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>PCI/ACPI: Report _OSC control mask returned on failure to get control</title>
<updated>2011-05-10T22:43:37Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2011-04-29T22:21:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a246670ddee3132fa71f8993d3989ad8ac04d965'/>
<id>urn:sha1:a246670ddee3132fa71f8993d3989ad8ac04d965</id>
<content type='text'>
If an attempt to get _OSC control of the PCIe native features from the
BIOS fails, report the resulting mask of control flags the BIOS was
willing to grant in the error message.  Moreover, if the _OSC support
mask is insufficient for requesting control of the PCIe native features
or pcie_ports_disabled is set, print a diagnostic message containing the
_OSC support mask.  This helps to diagnose obscure _OSC-related problems
on a number machines.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>PCI: Disable ASPM when _OSC control is not granted for PCIe services</title>
<updated>2011-03-21T16:41:08Z</updated>
<author>
<name>Naga Chumbalkar</name>
</author>
<published>2011-03-21T03:29:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eca67315e0e0d5fd91264d79c88694006dbc7d31'/>
<id>urn:sha1:eca67315e0e0d5fd91264d79c88694006dbc7d31</id>
<content type='text'>
v3 -&gt; v2: Added text to describe the problem
v2 -&gt; v1: Split this patch from v1
v1	: Part of: http://marc.info/?l=linux-pci&amp;m=130042212003242&amp;w=2

Disable ASPM when no _OSC control for PCIe services is granted
by the BIOS. This is to protect systems with a buggy BIOS that
did not set the ACPI FADT "ASPM Controls" bit even though the
underlying HW can't do ASPM.

To turn "on" ASPM the minimum the BIOS needs to do:
1. Clear the ACPI FADT "ASPM Controls" bit.
2. Support _OSC appropriately

There is no _OSC Control bit for ASPM. However, we expect the BIOS to
support _OSC for a Root Bridge that originates a PCIe hierarchy. If this
is not the case - we are better off not enabling ASPM on that server.

Commit 852972acff8f10f3a15679be2059bb94916cba5d (ACPI: Disable ASPM if the
Platform won't provide _OSC control for PCIe) describes the above scenario.
To quote verbatim from there:
[The PCI SIG documentation for the _OSC OS/firmware handshaking interface
states:

"If the _OSC control method is absent from the scope of a host bridge
device, then the operating system must not enable or attempt to use any
features defined in this section for the hierarchy originated by the host
bridge."

The obvious interpretation of this is that the OS should not attempt to use
PCIe hotplug, PME or AER - however, the specification also notes that an
_OSC method is *required* for PCIe hierarchies, and experimental validation
with An Alternative OS indicates that it doesn't use any PCIe functionality
if the _OSC method is missing. That arguably means we shouldn't be using
MSI or extended config space, but right now our problems seem to be limited
to vendors being surprised when ASPM gets enabled on machines when other
OSs refuse to do so. So, for now, let's just disable ASPM if the _OSC
method doesn't exist or refuses to hand over PCIe capability control.]

Signed-off-by: Naga Chumbalkar &lt;nagananda.chumbalkar@hp.com&gt;
Cc: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Cc: Matthew Garrett &lt;mjg59@srcf.ucam.org&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>PCI/ACPI: Report ASPM support to BIOS if not disabled from command line</title>
<updated>2011-03-21T16:38:02Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2011-03-05T12:21:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8b8bae901ce23addbdcdb54fa1696fb2d049feb5'/>
<id>urn:sha1:8b8bae901ce23addbdcdb54fa1696fb2d049feb5</id>
<content type='text'>
We need to distinguish the situation in which ASPM support is
disabled from the command line or through .config from the situation
in which it is disabled, because the hardware or BIOS can't handle
it.  In the former case we should not report ASPM support to the BIOS
through ACPI _OSC, but in the latter case we should do that.

Introduce pcie_aspm_support_enabled() that can be used by
acpi_pci_root_add() to determine whether or not it should report ASPM
support to the BIOS through _OSC.

Cc: stable@kernel.org
References: https://bugzilla.kernel.org/show_bug.cgi?id=29722
References: https://bugzilla.kernel.org/show_bug.cgi?id=20232
Reported-and-tested-by: Ortwin Glück &lt;odi@odi.ch&gt;
Reviewed-by: Kenji Kaneshige &lt;kaneshige.kenji@jp.fujitsu.com&gt;
Tested-by: Kenji Kaneshige &lt;kaneshige.kenji@jp.fujitsu.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>ACPI: Fix boot problem related to APEI with acpi_disabled set</title>
<updated>2011-01-16T19:56:26Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2011-01-16T19:44:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d3072e6a7e9bf7aca200370317f8e297be360b17'/>
<id>urn:sha1:d3072e6a7e9bf7aca200370317f8e297be360b17</id>
<content type='text'>
Commit 415e12b23792 ("PCI/ACPI: Request _OSC control once for each root
bridge (v3)") put the acpi_hest_init() call in acpi_pci_root_init() into
a wrong place, presumably because the author confused acpi_pci_disabled
with acpi_disabled.  Bring the code ordering in acpi_pci_root_init()
back to sanity.

Additionally, make sure that hest_disable is set when acpi_disabled is
set, which is going to prevent acpi_hest_parse(), that still may be
executed for acpi_disabled=1 through aer_acpi_firmware_first(), from
crashing because of uninitialized hest_tab.

Reported-and-tested-by: Andres Salomon &lt;dilinger@queued.net&gt;
Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>PCI/ACPI: Request _OSC control once for each root bridge (v3)</title>
<updated>2011-01-14T16:55:41Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2011-01-06T23:55:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=415e12b2379239973feab91850b0dce985c6058a'/>
<id>urn:sha1:415e12b2379239973feab91850b0dce985c6058a</id>
<content type='text'>
Move the evaluation of acpi_pci_osc_control_set() (to request control of
PCI Express native features) into acpi_pci_root_add() to avoid calling
it many times for the same root complex with the same arguments.
Additionally, check if all of the requisite _OSC support bits are set
before calling acpi_pci_osc_control_set() for a given root complex.

References: https://bugzilla.kernel.org/show_bug.cgi?id=20232
Reported-by: Ozan Caglayan &lt;ozan@pardus.org.tr&gt;
Tested-by: Ozan Caglayan &lt;ozan@pardus.org.tr&gt;
Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
</feed>
