The pci device ids listed in the thunderbolt driver are to restrictive, which prevents the driver from being loaded on recent Apple MacBooks using a thunderbolt 2 controller. In particular this prevented any hot-plugging functionality for thunderbolt based ethernet dongles (i.e. Apples thunderbolt gigabit ethernet broadcom tg3 based dongle Model A1433 EMC 2590). Changing the subvendor and subdevice to PCI_ANY_ID the thunderbolt driver loads and binds to the pci device 07:00.0 System peripheral: Intel Corporation Device 156c which is the thunderbolt 2 controller on the MacBookPro12,1. Successfully tested on MacBookPro12,1. With the patch the thunderbolt module gets now loaded on boot. And it provides hot-plugging support both for a cold-plugged and a warm-plugged ethernet dongle. Signed-off-by: Andreas Noever <andreas.noever@xxxxxxxxx> Acked-by: Knuth Posern <knuth@xxxxxxxxxx> --- This patch is submitted for upstream inclusion. Thanks to Greg and Andreas helping coming up with the patch fixing the bug: https://bugzilla.kernel.org/show_bug.cgi?id=100191 This is a second trial for me, so I hope the format of this mail is convenient. For the changelog/comment, I tried to follow Andrew Mortons guide https://www.ozlabs.org/~akpm/stuff/tpp.txt - why the kernel needed patching 1st paragraph. - the overall design approach in the patch - implementation details 2nd paragraph - testing results 3rd paragraph Cheers, Knuth. --- linux/drivers/thunderbolt/nhi.c.orig 2015-09-20 17:36:14.014964300 +0200 +++ linux/drivers/thunderbolt/nhi.c 2015-09-13 09:58:18.000000000 +0200 @@ -643,7 +643,7 @@ static struct pci_device_id nhi_ids[] = { .class = PCI_CLASS_SYSTEM_OTHER << 8, .class_mask = ~0, .vendor = PCI_VENDOR_ID_INTEL, .device = 0x156c, - .subvendor = 0x2222, .subdevice = 0x1111, + .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, }, { 0,} };
Attachment:
signature.asc
Description: OpenPGP digital signature