linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] thunderbolt: Allow loading of module on recent Apple MacBooks with thunderbolt 2 controller
@ 2015-09-20 19:25 Knuth Posern
  2015-09-20 22:22 ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Knuth Posern @ 2015-09-20 19:25 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andreas Noever, Greg KH, linux-pci

[-- Attachment #1: Type: text/plain, Size: 1966 bytes --]

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@gmail.com>
Acked-by: Knuth Posern <knuth@posern.org>
---

... never 2 without 3 ;)

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 first 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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread
* [PATCH] thunderbolt: Allow loading of module on recent Apple MacBooks with thunderbolt 2 controller
@ 2015-09-20 18:16 Knuth Posern
  2015-09-20 19:04 ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Knuth Posern @ 2015-09-20 18:16 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andreas Noever, Greg KH, linux-pci

[-- Attachment #1: Type: text/plain, Size: 1928 bytes --]

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@gmail.com>
Acked-by: Knuth Posern <knuth@posern.org>
---

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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-09-20 22:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-20 19:25 [PATCH] thunderbolt: Allow loading of module on recent Apple MacBooks with thunderbolt 2 controller Knuth Posern
2015-09-20 22:22 ` Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2015-09-20 18:16 Knuth Posern
2015-09-20 19:04 ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).