On 23/11/17, Bjørn Mork wrote: > This is also consistent with the Windows drivers. And being a proper > CDC ECM class function, it should Just Work with the cdc_ether driver. > Except for the "RmNet" part, which I guess is the reason you want to > add this device to qmi_wwan. Which is fine, *if* we can be reasonably > certain that it does support QMI. The description string is a strong > indication, but it would be even better to know this was tested. > > But adding this to qmi_wwan is not enough. You also need to add a > blacklist entry to cdc_ether. Both should use a device+class match, > similar to the Novatel entries. This will make the interface numbering > irrelevant, and will allow a single entry to match both QMI/rmnet > functions.
I tried the following changes but I still can't get the PLS8 to work with kernel 4.14. Here some more information what I have and what I did. The Module is in this Revsion: Cinterion PLS8-E REVISION 02.011 A-REVISION 01.010.19 --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c @@ -779,6 +779,7 @@ static const struct usb_device_id products[] = { {QMI_FIXED_INTF(0x0b3c, 0xc00a, 6)}, /* Olivetti Olicard 160 */ {QMI_FIXED_INTF(0x0b3c, 0xc00b, 4)}, /* Olivetti Olicard 500 */ {QMI_FIXED_INTF(0x1e2d, 0x0060, 4)}, /* Cinterion PLxx */ + {QMI_FIXED_INTF(0x1e2d, 0x0061, 3)}, /* Cinterion PLS8 */ {QMI_FIXED_INTF(0x1e2d, 0x0053, 4)}, /* Cinterion PHxx,PXxx */ {QMI_FIXED_INTF(0x413c, 0x81a2, 8)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card */ {QMI_FIXED_INTF(0x413c, 0x81a3, 8)}, /* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card */ I tried the value 4 instead of 3. here but both won't work. In my working old setup with Kernel 3.9.11 the value is 3. and this was the only change back then. +++ b/drivers/net/usb/cdc_ether.c @@ -562,6 +562,7 @@ static void usbnet_cdc_zte_status(struct usbnet *dev, struct urb *urb) #define MICROSOFT_VENDOR_ID 0x045e #define UBLOX_VENDOR_ID 0x1546 #define TPLINK_VENDOR_ID 0x2357 +#define CINTERION_VENDOR_ID 0x1e2d static const struct usb_device_id products[] = { /* BLACKLIST !! @@ -821,6 +822,13 @@ static void usbnet_cdc_zte_status(struct usbnet *dev, struct urb *urb) .driver_info = 0, }, +/* Cinterion PLS8 - handled by qmi_wwan */ +{ + USB_DEVICE_AND_INTERFACE_INFO(CINTERION_VENDOR_ID, 0x0061, USB_CLASS_COMM, + USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), + .driver_info = 0, +}, This change wasn't necessary in my old setup with the PLS8. Can you explain me why its needed now? This is the output I get with dmesg. [ 747.989455] usb 2-1: USB disconnect, device number 11 [ 748.694818] usb 2-1: new high-speed USB device number 12 using ci_hdrc [ 748.856821] usb 2-1: New USB device found, idVendor=1e2d, idProduct=0061 [ 748.863712] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 748.871112] usb 2-1: Product: LTE Modem [ 748.875109] usb 2-1: Manufacturer: Cinterion [ 748.895201] cdc_acm 2-1:1.0: ttyACM0: USB ACM device [ 748.915099] cdc_acm 2-1:1.2: ttyACM1: USB ACM device [ 748.933204] cdc_acm 2-1:1.4: ttyACM2: USB ACM device [ 748.952976] cdc_acm 2-1:1.6: ttyACM3: USB ACM device Then I try to connect to /dev/ttyACM1 to execute a "ati1" but without success. Best Regards, Oliver