summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMehrdad Afshari <mehrdad@signeen.com>2026-08-15 21:04:26 -0700
committerJakub Kicinski <kuba@kernel.org>2026-08-20 14:47:29 -0700
commit746fc0787f616da418ffc04a110296fe95d53491 (patch)
treec56a0c3026fa7a683166440b06c8503403910084 /drivers
parente264c048709469096f3927fcd35a2c45f9e38eb8 (diff)
downloadlinux-746fc0787f616da418ffc04a110296fe95d53491.tar.gz
linux-746fc0787f616da418ffc04a110296fe95d53491.zip
net: usb: cdc_ncm: add Apple MacBook Pro USB product ID 0x1902
The cdc_devs[] quirk table special-cases the Mac CDC-NCM private interface personality only for USB product ID 0x1905. Some MacBook Pro models (e.g. M1 Max) connected over a USB4/Thunderbolt 3/4 cable to a host whose Thunderbolt controller lacks PCIe tunneling support (no NHI function, USB4-only mode) present themselves with product ID 0x1902 instead, using the same descriptor layout as 0x1905: a Communications control interface with zero endpoints (no interrupt/status endpoint) paired with a CDC Data interface, at interface numbers 0 and 2. Because 0x1902 is unmatched, these devices fall through to the generic cdc_ncm_info driver_info, which sets FLAG_LINK_INTR and therefore requires an interrupt endpoint on the control interface. Apple's private NCM interface never provides one, so cdc_ncm_bind() fails outright: cdc_ncm 2-1:1.0: bind() failure cdc_ncm 2-1:1.2: bind() failure and no network device is created, breaking Ethernet-over-USB4 between the Mac and any USB4 host lacking Thunderbolt PCIe tunneling. Add matching entries for 0x1902 alongside the existing 0x1905 ones, reusing apple_private_interface_info as with the other Mac ID. Signed-off-by: Mehrdad Afshari <mehrdad@signeen.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/usb/cdc_ncm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index 0223a172851e..35db38cb3e4a 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -2013,6 +2013,12 @@ static const struct usb_device_id cdc_devs[] = {
},
/* Mac */
+ { USB_DEVICE_INTERFACE_NUMBER(0x05ac, 0x1902, 0),
+ .driver_info = (unsigned long)&apple_private_interface_info,
+ },
+ { USB_DEVICE_INTERFACE_NUMBER(0x05ac, 0x1902, 2),
+ .driver_info = (unsigned long)&apple_private_interface_info,
+ },
{ USB_DEVICE_INTERFACE_NUMBER(0x05ac, 0x1905, 0),
.driver_info = (unsigned long)&apple_private_interface_info,
},