Here's the next revision of the workarounds for Thunderbolt machines. The previous revision can be found here: https://lkml.org/lkml/2013/6/25/400 The series fixes problems seen in ACPI hotplug driver and resource re-allocation issue in pcibios_resource_survey_bus(). With these applied we have been able to connect Thunderbolt chain as long as: PC +--+ eSata Hub #0 +--+ eSata Hub #1 +--+ Apple Thunderbolt display +--+ Apple ethernet dongle That's all Thunderbolt devices we have for testing. This results the following PCIe tree (output of lspci -tv): +-1c.4-[06-80]----00.0-[07-80]--+-00.0-[08]-- | +-03.0-[09-7d]----00.0-[0a-7d]--+-03.0-[0b]----00.0 Marvell Technology Group Ltd. Device 9182 | | +-04.0-[0c-7c]----00.0-[0d-7c]--+-03.0-[0e]----00.0 Marvell Technology Group Ltd. Device 9182 | | | +-04.0-[0f-7b]----00.0-[10-7b]--+-00.0-[11-13]----00.0-[12-13]----03.0-[13]--+-00.0 Pericom Semiconductor Device 400e | | | | | +-00.1 Pericom Semiconductor Device 400e | | | | | \-00.2 Pericom Semiconductor Device 400f | | | | +-01.0-[14]----00.0 Broadcom Corporation NetXtreme BCM57761 Gigabit Ethernet PCIe | | | | +-02.0-[15]----00.0 Agere Systems FW643 PCI Express 1394b Controller (PHY/Link) | | | | +-03.0-[16]-- | | | | +-04.0-[17-7a]----00.0-[18-7a]----00.0-[19]----00.0 Broadcom Corporation Device 1682 | | | | \-05.0-[7b]-- | | | \-05.0-[7c]-- | | \-05.0-[7d]-- | +-04.0-[7e]-- | +-05.0-[7f]-- | \-06.0-[80]-- There are still problems with individual device drivers not handling the surprise hotplug nature of Thunderbolt devices correctly but that can be handled per driver later on. This has been tested on Acer Aspire S5 ultrabook and in addition to that on Intel DZ77RE-75K desktop. Changes to the previous version: [1/8] A new patch that fixes pcibios_resource_survey_bus() to handle re-allocation of resources properly. This patch should be first one in the series because the following patches then enable things that depend on this one. [3/8] Dropped !dev->subordinate->is_added check. This is handled in [1/6]. [4/8] Removed 'continue' and call directly pci_trim_stale_devices() and fold the pci_trim_stale_devices() to this patch. [5/8] A new patch that removes SLOT_ENABLED flag completely from the acpiphp driver. This is a separate patch to make reverting easy in case there appears regressions but still make Thunderbolt working. [6/8] Use the original Kirill's workaround for Acer Aspire S5. [7,8/8] New cleanups for acpiphp that were found during development. The series applies on top of v3.10. Kirill A. Shutemov (4): PCI: acpiphp: do not check for SLOT_ENABLED in enable_device() PCI: acpiphp: enable_device(): rescan even if no new devices on slot PCI: acpiphp: check for new devices on enabled host PCI: acpiphp: workaround for Thunderbolt on Acer Aspire S5 Mika Westerberg (4): x86/PCI: prevent re-allocation of already existing bridge and ROM resources PCI: acpiphp: kill SLOT_ENABLED in favor of always re-enumerating the devices PCI: acpiphp: get rid of unused constants in acpiphp.h PCI: acpiphp: sanitize acpiphp_get_[latch|adapter]_status() arch/x86/pci/i386.c | 4 ++ drivers/pci/hotplug/acpi_pcihp.c | 13 +++++ drivers/pci/hotplug/acpiphp.h | 5 -- drivers/pci/hotplug/acpiphp_glue.c | 97 ++++++++++++-------------------------- drivers/pci/remove.c | 20 ++++++++ include/linux/pci.h | 1 + 6 files changed, 69 insertions(+), 71 deletions(-) -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html