I've Telit HE910 and HE910-v2 modems. After switching from 3.13-rc4 (sunxi branch) to mainline 3.17.2 I've got problems with 910. Before modem was set up properly:
Jan 1 03:22:11 localhost kernel: [ 1331.868867] usb 1-1.1.7: new high-speed USB device number 7 using sunxi-ehci Jan 1 03:22:11 localhost kernel: [ 1331.980255] usb 1-1.1.7: config 1 interface 0 altsetting 0 endpoint 0x81 has an invalid bInterval 255, changing to 11 Jan 1 03:22:11 localhost kernel: [ 1331.981915] usb 1-1.1.7: no of_node; not parsing pinctrl DT Jan 1 03:22:14 localhost kernel: [ 1334.448000] usb 1-1.1.7: USB disconnect, device number 7 Jan 1 03:22:15 localhost kernel: [ 1335.448864] usb 1-1.1.7: new high-speed USB device number 8 using sunxi-ehci Jan 1 03:22:15 localhost kernel: [ 1335.585512] usb 1-1.1.7: no of_node; not parsing pinctrl DT Jan 1 03:22:15 localhost kernel: [ 1335.597579] option 1-1.1.7:1.0: no of_node; not parsing pinctrl DT Jan 1 03:22:15 localhost kernel: [ 1335.597711] option 1-1.1.7:1.0: GSM modem (1-port) converter detected Jan 1 03:22:15 localhost kernel: [ 1335.598044] option1 ttyUSB0: no of_node; not parsing pinctrl DT Jan 1 03:22:15 localhost kernel: [ 1335.601305] usb 1-1.1.7: GSM modem (1-port) converter now attached to ttyUSB0 Jan 1 03:22:15 localhost kernel: [ 1335.602329] option 1-1.1.7:1.1: no of_node; not parsing pinctrl DT Jan 1 03:22:15 localhost kernel: [ 1335.602451] option 1-1.1.7:1.1: GSM modem (1-port) converter detected Jan 1 03:22:15 localhost kernel: [ 1335.602564] option1 ttyUSB1: no of_node; not parsing pinctrl DT Jan 1 03:22:15 localhost kernel: [ 1335.603246] usb 1-1.1.7: GSM modem (1-port) converter now attached to ttyUSB1
Now only every second endpoint (of class 0a - data) is recognised:
Jan 1 03:03:26 localhost kernel: [ 206.979757] usb 1-1.1.7: new high-speed USB device number 7 using ehci-platform Jan 1 03:03:27 localhost kernel: [ 207.091275] usb 1-1.1.7: config 1 interface 0 altsetting 0 endpoint 0x81 has an invalid bInterval 255, changing to 11 Jan 1 03:03:29 localhost kernel: [ 209.557516] usb 1-1.1.7: USB disconnect, device number 7 Jan 1 03:03:30 localhost kernel: [ 210.559763] usb 1-1.1.7: new high-speed USB device number 8 using ehci-platform Jan 1 03:03:30 localhost kernel: [ 210.697613] option 1-1.1.7:1.0: GSM modem (1-port) converter detected Jan 1 03:03:30 localhost kernel: [ 210.699571] option 1-1.1.7:1.1: GSM modem (1-port) converter detected Jan 1 03:03:30 localhost kernel: [ 210.703193] usb 1-1.1.7: GSM modem (1-port) converter now attached to ttyUSB1
For both kernels I've added the respective vendor/devid pair to the option.c.
910v2 works ok on both kernels, but it's differently organised (I provide the usb-devices output for brevity's sake):
T: Bus=01 Lev=03 Prnt=03 Port=04 Cnt=03 Dev#= 9 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1bc7 ProdID=1010 Rev=00.00 S: Manufacturer=Telit Wireless Solutions S: Product=Telit HS-USB Modem C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
While HE910 looks like it:
T: Bus=01 Lev=03 Prnt=03 Port=06 Cnt=04 Dev#= 11 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=02(commc) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1bc7 ProdID=0021 Rev=16.70 S: Manufacturer=Telit wireless solutions S: Product=Telit Wireless Module S: SerialNumber=357164040583455 C: #Ifs=14 Cfg#= 1 Atr=e0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=option I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option /usr/bin/usb-devices: line 79: printf: a: invalid number I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=option /usr/bin/usb-devices: line 79: printf: b: invalid number I: If#= 0 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option /usr/bin/usb-devices: line 79: printf: c: invalid number I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=option /usr/bin/usb-devices: line 79: printf: d: invalid number I: If#= 0 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option I: If#= 2 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=option I: If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option I: If#= 4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=option I: If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option I: If#= 6 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=option I: If#= 7 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option I: If#= 8 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=option I: If#= 9 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option
So I believe it might depend on the Class somehow.
Who can guide me where should I look to resolve this?