<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/include/linux/pci-acpi.h, branch linux-2.6.34.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-2.6.34.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-2.6.34.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2010-02-23T00:21:02Z</updated>
<entry>
<title>PCI / ACPI / PM: Platform support for PCI PME wake-up</title>
<updated>2010-02-23T00:21:02Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2010-02-17T22:44:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b67ea76172d4b1922c4b3c46c8ea8e9fec1ff38c'/>
<id>urn:sha1:b67ea76172d4b1922c4b3c46c8ea8e9fec1ff38c</id>
<content type='text'>
Although the majority of PCI devices can generate PMEs that in
principle may be used to wake up devices suspended at run time,
platform support is generally necessary to convert PMEs into wake-up
events that can be delivered to the kernel.  If ACPI is used for this
purpose, PME signals generated by a PCI device will trigger the ACPI
GPE associated with the device to generate an ACPI wake-up event that
we can set up a handler for, provided that everything is configured
correctly.

Unfortunately, the subset of PCI devices that have GPEs associated
with them is quite limited.  The devices without dedicated GPEs have
to rely on the GPEs associated with other devices (in the majority of
cases their upstream bridges and, possibly, the root bridge) to
generate ACPI wake-up events in response to PME signals from them.

Add ACPI platform support for PCI PME wake-up:
o Add a framework making is possible to use ACPI system notify
  handlers for run-time PM.
o Add new PCI platform callback -&gt;run_wake() to struct
  pci_platform_pm_ops allowing us to enable/disable the platform to
  generate wake-up events for given device.  Implemet this callback
  for the ACPI platform.
o Define ACPI wake-up handlers for PCI devices and PCI root buses and
  make the PCI-ACPI binding code register wake-up notifiers for all
  PCI devices present in the ACPI tables.
o Add function pci_dev_run_wake() which can be used by PCI drivers to
  check if given device is capable of generating wake-up events at
  run time.

Developed in cooperation with Matthew Garrett &lt;mjg@redhat.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>PCI: use pci_is_root_bus() in acpi_find_root_bridge_handle()</title>
<updated>2009-06-16T21:29:30Z</updated>
<author>
<name>Kenji Kaneshige</name>
<email>kaneshige.kenji@jp.fujitsu.com</email>
</author>
<published>2009-05-26T07:05:33Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a222b8f83b995e9c6fe2aff2a8125facb49f658e'/>
<id>urn:sha1:a222b8f83b995e9c6fe2aff2a8125facb49f658e</id>
<content type='text'>
Use pci_is_root_bus() in acpi_find_root_bridge_handle() to check if
the pci bus is root, for code consistency.

Reviewed-by: Alex Chiang &lt;achiang@hp.com&gt;
Reviewed-by: Grant Grundler &lt;grundler@parisc-linux.org&gt;
Signed-off-by: Kenji Kaneshige &lt;kaneshige.kenji@jp.fujitsu.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>PCI: use pci_is_root_bus() in acpi_pci_get_bridge_handle()</title>
<updated>2009-06-16T21:29:29Z</updated>
<author>
<name>Kenji Kaneshige</name>
<email>kaneshige.kenji@jp.fujitsu.com</email>
</author>
<published>2009-05-26T07:05:06Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=84845c070ce3ac4d3bd2c148fa20ba8ce5409167'/>
<id>urn:sha1:84845c070ce3ac4d3bd2c148fa20ba8ce5409167</id>
<content type='text'>
Use pci_is_root_bus() in acpi_pci_get_bridge_handle() to check if the
pci bus is root, for code consistency.

Reviewed-by: Grant Grundler &lt;grundler@parisc-linux.org&gt;
Reviewed-by: Alex Chiang &lt;achiang@hp.com&gt;
Signed-off-by: Kenji Kaneshige &lt;kaneshige.kenji@jp.fujitsu.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>PCI/ACPI: fix wrong assumption in acpi_find_root_bridge_handle</title>
<updated>2009-03-20T17:47:57Z</updated>
<author>
<name>Kenji Kaneshige</name>
<email>kaneshige.kenji@jp.fujitsu.com</email>
</author>
<published>2009-02-17T05:12:36Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d18690af626b83fef1d1953b9f70e09497060586'/>
<id>urn:sha1:d18690af626b83fef1d1953b9f70e09497060586</id>
<content type='text'>
Current acpi_find_root_bridge_handle() has a assumption that
pci_bus-&gt;self is NULL on the root pci bus. But it might not be true on
some platforms. Because of this wrong assumption, current
acpi_find_root_bridge_handle() might cause endless loop. We must check
pci_bus-&gt;parent instead.

Signed-off-by: Kenji Kaneshige &lt;kaneshige.kenji@jp.fujitsu.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>PCI/ACPI: fix wrong assumption in acpi_pci_get_bridge_handle</title>
<updated>2009-03-20T17:47:56Z</updated>
<author>
<name>Kenji Kaneshige</name>
<email>kaneshige.kenji@jp.fujitsu.com</email>
</author>
<published>2009-02-17T05:11:56Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0747aaf42d78d26684c6f6b34a4103ff81f571f8'/>
<id>urn:sha1:0747aaf42d78d26684c6f6b34a4103ff81f571f8</id>
<content type='text'>
Current acpi_pci_get_bridge_handle() has an assumption that
pci_bus-&gt;self is NULL on the root pci bus. But it might not true on
some platforms. Because of this wrong assumption, current
acpi_pci_get_bridge_handle() might return improper ACPI handle. We
must check pci_bus-&gt;parent instead.

This bug is the root cause of the following kernel panic reported by
James Bottomley. This problem was introduced by the commit
e8c331e963c58b83db24b7d0e39e8c07f687dbc6. The immediate cause was
acpi_pci_get_bridge_handle() returned NULL unexpectedly and it was
passed as the second argument of acpi_walk_namespace().

pci_hotplug: PCI Hot Plug PCI Core version: 0.5
acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
IP: [&lt;ffffffff8039646f&gt;] acpi_ns_get_next_node+0xb/0x3c
PGD 0
Oops: 0000 [#1] SMP
last sysfs file:
CPU 0
Modules linked in:
Pid: 1, comm: swapper Not tainted 2.6.28 #1
RIP: 0010:[&lt;ffffffff8039646f&gt;]  [&lt;ffffffff8039646f&gt;] acpi_ns_get_next_node+0xb/0x3c
RSP: 0018:ffff88007f87fd30  EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: ffffffff8037d260 R09: ffff88007f87fdfc
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001
R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffffffff80742040(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000010 CR3: 0000000000201000 CR4: 00000000000006a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 1, threadinfo ffff88007f87e000, task ffff88007f875040)
Stack:
 0000000000000000 ffffffff803964f5 ffff88007f81b728 0000000000001001
 ffff88007f87fdfc ffffffff8037d260 0000000600000001 0000000000000000
 ffffffff8037d260 0000000000000000 0000000000000001 ffff88007f87fdfc
Call Trace:
 [&lt;ffffffff803964f5&gt;] acpi_ns_walk_namespace+0x55/0x138
 [&lt;ffffffff8037d260&gt;] is_pci_dock_device+0x0/0x20
 [&lt;ffffffff8037d260&gt;] is_pci_dock_device+0x0/0x20
 [&lt;ffffffff80394a9e&gt;] acpi_walk_namespace+0x5f/0x83
 [&lt;ffffffff8037dd33&gt;] detect_ejectable_slots+0x53/0x70
 [&lt;ffffffff8037de38&gt;] add_bridge+0xe8/0x200
 [&lt;ffffffff80394aaa&gt;] acpi_walk_namespace+0x6b/0x83
 [&lt;ffffffff803a4ad1&gt;] acpi_pci_register_driver+0x48/0x61
 [&lt;ffffffff806fc5df&gt;] acpiphp_init+0x0/0x58
 [&lt;ffffffff806fc732&gt;] acpiphp_glue_init+0x4c/0x5a
 [&lt;ffffffff806fc616&gt;] acpiphp_init+0x37/0x58
 [&lt;ffffffff8020903b&gt;] _stext+0x3b/0x180
 [&lt;ffffffff80312598&gt;] create_proc_entry+0x58/0xa0
 [&lt;ffffffff802815d1&gt;] register_irq_proc+0xc1/0xe0
 [&lt;ffffffff806db64b&gt;] kernel_init+0x152/0x1ac
 [&lt;ffffffff8023d970&gt;] finish_task_switch+0x0/0x110
 [&lt;ffffffff8020ca7a&gt;] child_rip+0xa/0x20
 [&lt;ffffffff8020c47c&gt;] restore_args+0x0/0x30
 [&lt;ffffffff806db4f9&gt;] kernel_init+0x0/0x1ac
 [&lt;ffffffff8020ca70&gt;] child_rip+0x0/0x20
Code: 89 c2 48 8b 00 48 85 c0 75 f5 48 8b 45 00 48 89 02 44 88 65 09 48 89 5d 00 31 c0 5b 5d 41 5c c3 53 48 85 d2 89 fb 48 89 d7 75 06 &lt;48&gt; 8b 56 10 eb 08 e8 73 f1 ff ff 48 89 c2 85 db 74 1a eb 13 0f
RIP  [&lt;ffffffff8039646f&gt;] acpi_ns_get_next_node+0xb/0x3c
 RSP &lt;ffff88007f87fd30&gt;
CR2: 0000000000000010
---[ end trace a7919e7f17c0a725 ]---

Signed-off-by: Kenji Kaneshige &lt;kaneshige.kenji@jp.fujitsu.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>PCI/ACPI: rename pci_osc_control_set()</title>
<updated>2009-03-20T02:29:33Z</updated>
<author>
<name>Kenji Kaneshige</name>
<email>kaneshige.kenji@jp.fujitsu.com</email>
</author>
<published>2009-02-09T07:00:04Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9f5404d8ea90bfa4d58a3936e5a3d0d28cecf60f'/>
<id>urn:sha1:9f5404d8ea90bfa4d58a3936e5a3d0d28cecf60f</id>
<content type='text'>
- Rename pci_osc_control_set() to acpi_pci_osc_control_set() according
  to the other API names in drivers/acpi/pci_root.c.

- Move _OSC related definitions to include/linux/acpi.h because _OSC
  related API is implemented in drivers/acpi/pci_root.c now.

Signed-off-by: Kenji Kaneshige &lt;kaneshige.kenji@jp.fujitsu.com&gt;
Reviewed-by: Andrew Patterson &lt;andrew.patterson@hp.com&gt;
Tested-by: Andrew Patterson &lt;andrew.patterson@hp.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>PCI/ACPI: move _OSC code to pci_root.c</title>
<updated>2009-03-20T02:29:32Z</updated>
<author>
<name>Kenji Kaneshige</name>
<email>kaneshige.kenji@jp.fujitsu.com</email>
</author>
<published>2009-02-09T06:59:29Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=63f10f0f6df4e4e860b790d64bebfde85b540b0a'/>
<id>urn:sha1:63f10f0f6df4e4e860b790d64bebfde85b540b0a</id>
<content type='text'>
Move PCI _OSC management code from drivers/pci/pci-acpi.c to
drivers/acpi/pci_root.c. The benefits are

- We no longer need struct osc_data and its management code (contents
  are moved to struct acpi_pci_root). This simplify the code, and we
  no longer care about kmalloc() failure.

- We can make pci_acpi_osc_support() be a static function, which is
  called only from drivers/acpi/pci_root.c.

Signed-off-by: Kenji Kaneshige &lt;kaneshige.kenji@jp.fujitsu.com&gt;
Reviewed-by: Andrew Patterson &lt;andrew.patterson@hp.com&gt;
Tested-by: Andrew Patterson &lt;andrew.patterson@hp.com&gt;
Acked-by: Alex Chiang &lt;achiang@hp.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>PCI hotplug: introduce functions for ACPI slot detection</title>
<updated>2009-01-07T19:13:11Z</updated>
<author>
<name>Kenji Kaneshige</name>
<email>kaneshige.kenji@jp.fujitsu.com</email>
</author>
<published>2008-12-17T03:09:12Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e8c331e963c58b83db24b7d0e39e8c07f687dbc6'/>
<id>urn:sha1:e8c331e963c58b83db24b7d0e39e8c07f687dbc6</id>
<content type='text'>
Some ACPI related PCI hotplug code can be shared among PCI hotplug
drivers. This patch introduces the following functions in
drivers/pci/hotplug/acpi_pcihp.c to share the code, and changes
acpiphp and pciehp to use them.

- int acpi_pci_detect_ejectable(struct pci_bus *pbus)
  This checks if the specified PCI bus has ejectable slots.

- int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle)
  This checks if the specified handle is ejectable ACPI PCI slot. The
  'pbus' parameter is needed to check if 'handle' is PCI related ACPI
  object.

This patch also introduces the following inline function in
include/linux/pci-acpi.h, which is useful to get ACPI handle of the
PCI bridge from struct pci_bus of the bridge's secondary bus.

- static inline acpi_handle acpi_pci_get_bridge_handle(struct pci_bus *pbus)
  This returns ACPI handle of the PCI bridge which generates PCI bus
  specified by 'pbus'.

Signed-off-by: Kenji Kaneshige &lt;kaneshige.kenji@jp.fujitsu.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>ACPI/PCI: remove obsolete _OSC capability support functions</title>
<updated>2009-01-07T19:12:32Z</updated>
<author>
<name>Andrew Patterson</name>
<email>andrew.patterson@hp.com</email>
</author>
<published>2008-11-10T22:31:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=23616941914917cf25b94789856b5326b68d8ee8'/>
<id>urn:sha1:23616941914917cf25b94789856b5326b68d8ee8</id>
<content type='text'>
The acpi_query_osc, __pci_osc_support_set, pci_osc_support_set, and
pcie_osc_support_set functions have been obsoleted in favor of setting
these capabilities during root bridge discovery with
pci_acpi_osc_support.  There are no longer any callers of these
functions, so remove them.

Signed-off-by: Andrew Patterson &lt;andrew.patterson@hp.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
<entry>
<title>ACPI/PCI: call _OSC support during root bridge discovery</title>
<updated>2009-01-07T19:12:27Z</updated>
<author>
<name>Andrew Patterson</name>
<email>andrew.patterson@hp.com</email>
</author>
<published>2008-11-10T22:30:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=990a7ac5645883a833a11b900bb6f25b65dea65b'/>
<id>urn:sha1:990a7ac5645883a833a11b900bb6f25b65dea65b</id>
<content type='text'>
Add pci_acpi_osc_support() and call it when a PCI bridge is added.  This
allows us to avoid having every individual PCI root bridge driver call
_OSC support for every root bridge in their probe functions, a
significant savings in boot time.

Signed-off-by: Matthew Wilcox &lt;willy@linux.intel.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
</feed>
