[PATCH 00/12] Thunderbolt hotplug support for Apple hardware (testers needed)

From: Andreas Noever
Date: Thu Nov 28 2013 - 20:38:56 EST


Thunderbolt hotplug is supposed to be implemented by the firmware. But Apple's
firmeware only initializes devices during boot and ignores hotplugged devices.
This patch series adds a driver for the Intel Cactus Ridge Thunderbolt
controller. The driver supports hotplug operations of simple (one PCI device,
no chaining) thunderbolt devices.

The patches in this series are self contained and I have tried to sort them
(roughly) from lowest to highest level of abstraction. They all compile but
only the final driver has been tested.

The driver works on my MacBookPro10,1 with two Thunderbolt ethernet adapters.
The system contains the Cactus Ridge C4 TB controller (device id 0x1547). I
could not run tests on other systems, but there is a good chance that the
driver will work on other models as well. If something is controller specific
then it should be confined to patch 01.

There are still a number of limitations:
(1) The system must be booted with acpi_osi=Darwin. Otherwise ACPI will cut
power to the controller.
(2) After suspend the controller is gone. I think that ACPI thinks that we are
Windows and cuts power, even with acpi_osi=Darwin.
(3) No support for chaining. Also the driver only activates the first PCI
device found on a Thunderbolt device.
(4) Rapidly replugging a device confuses pciehp.

(1) and (2) should be solveable given some time. I also have a pretty good idea
on how chaining should work. The main problem is that I have yet to see any
Thunderbolt device besides the Apple ethernet adapter. If someone with a
MacBook and access to more complicated TB hardware is willing to run some
tests: Please contact me.

I will try to debug (4) further and write a seperate bug report for the issue.

Andreas

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/