| From | "Kirill A. Shutemov" <> | Subject | RE: [PATCH 5/6] PCI: acpiphp: look _RMV method a bit deeper in the hierarhcy | Date | Tue, 2 Jul 2013 13:44:06 +0300 (EEST) |
| |
Mika Westerberg wrote: > The acpiphp driver finds out whether the device is hotpluggable by checking > whether it has _RMV method behind it (and if it returns 1). However, at > least Acer Aspire S5 with Thunderbolt host router has this method placed > behind device called EPUP (endpoint upstream port?) and not directly behind > the root port as can be seen from the ASL code below: > > Device (RP05) > { > ... > Device (HRUP) > { > Name (_ADR, Zero) > Name (_PRW, Package (0x02) > { > 0x09, > 0x04 > }) > Device (HRDN) > { > Name (_ADR, 0x00040000) > Name (_PRW, Package (0x02) > { > 0x09, > 0x04 > }) > Device (EPUP) > { > Name (_ADR, Zero) > Method (_RMV, 0, NotSerialized) > { > Return (One) > } > } > } > } > > If we want to support such machines we must look for the _RMV method a bit > deeper in the hierarchy. Fix this by changing pcihp_is_ejectable() to check > few more devices down from the root port.
We found that this approach is broken. We've got false positive: host bridge itself was detected as hotplugable slot %) I think it's not acceptable.
Mika has tried few more approaches, but we haven't found anything better then hardcoded path like in original workaround patch[1]. It's not generic at all, but safe from false positives.
Any thoughts?
[1] http://article.gmane.org/gmane.linux.kernel.pci/19102
-- Kirill A. Shutemov
|