diff options
Diffstat (limited to 'drivers/pci/hotplug/acpiphp_glue.c')
-rw-r--r-- | drivers/pci/hotplug/acpiphp_glue.c | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index a46b585fae31..5ed2dcaa8e27 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c | |||
@@ -222,35 +222,6 @@ static void acpiphp_post_dock_fixup(struct acpi_device *adev) | |||
222 | acpiphp_let_context_go(context); | 222 | acpiphp_let_context_go(context); |
223 | } | 223 | } |
224 | 224 | ||
225 | /* Check whether the PCI device is managed by native PCIe hotplug driver */ | ||
226 | static bool device_is_managed_by_native_pciehp(struct pci_dev *pdev) | ||
227 | { | ||
228 | u32 reg32; | ||
229 | acpi_handle tmp; | ||
230 | struct acpi_pci_root *root; | ||
231 | |||
232 | /* Check whether the PCIe port supports native PCIe hotplug */ | ||
233 | if (pcie_capability_read_dword(pdev, PCI_EXP_SLTCAP, ®32)) | ||
234 | return false; | ||
235 | if (!(reg32 & PCI_EXP_SLTCAP_HPC)) | ||
236 | return false; | ||
237 | |||
238 | /* | ||
239 | * Check whether native PCIe hotplug has been enabled for | ||
240 | * this PCIe hierarchy. | ||
241 | */ | ||
242 | tmp = acpi_find_root_bridge_handle(pdev); | ||
243 | if (!tmp) | ||
244 | return false; | ||
245 | root = acpi_pci_find_root(tmp); | ||
246 | if (!root) | ||
247 | return false; | ||
248 | if (!(root->osc_control_set & OSC_PCI_EXPRESS_NATIVE_HP_CONTROL)) | ||
249 | return false; | ||
250 | |||
251 | return true; | ||
252 | } | ||
253 | |||
254 | /** | 225 | /** |
255 | * acpiphp_add_context - Add ACPIPHP context to an ACPI device object. | 226 | * acpiphp_add_context - Add ACPIPHP context to an ACPI device object. |
256 | * @handle: ACPI handle of the object to add a context to. | 227 | * @handle: ACPI handle of the object to add a context to. |
@@ -334,7 +305,7 @@ static acpi_status acpiphp_add_context(acpi_handle handle, u32 lvl, void *data, | |||
334 | * expose slots to user space in those cases. | 305 | * expose slots to user space in those cases. |
335 | */ | 306 | */ |
336 | if ((acpi_pci_check_ejectable(pbus, handle) || is_dock_device(adev)) | 307 | if ((acpi_pci_check_ejectable(pbus, handle) || is_dock_device(adev)) |
337 | && !(pdev && device_is_managed_by_native_pciehp(pdev))) { | 308 | && !(pdev && pdev->is_hotplug_bridge && pciehp_is_native(pdev))) { |
338 | unsigned long long sun; | 309 | unsigned long long sun; |
339 | int retval; | 310 | int retval; |
340 | 311 | ||