[ 659.660272] usb 1-4: new high speed USB device using ehci_hcd and address 6
[ 659.812616] rndis_host 1-4:1.0: master #4/ (null) slave #5/
(null)
[ 659.812624] usb 1-4: bad CDC descriptors
[ 659.812851] rndis_wlan 1-4:1.0: master #4/ (null) slave #5/
(null)
[ 659.812858] usb 1-4: bad CDC descriptors
And this the corresponding code...
/* we need a master/control interface (what we're
* probed with) and a slave/data interface; union
* descriptors sort this all out.
*/
info->control = usb_ifnum_to_if(dev->udev, info->u->bMasterInterface0);
info->data = usb_ifnum_to_if(dev->udev, info->u->bSlaveInterface0);
if (!info->control || !info->data) { dev_dbg(&intf->dev, "master #%u/%p slave #%u/%p\n", info->u->bMasterInterface0, info->control, info->u->bSlaveInterface0, info->data);
goto bad_desc;
}
Any ideas what to do next?
Could the problem be that the bInterfaceNumber starts with 0.
So there is 0 and 1.
And the ifnum for master is 4 and for slave 5.
So that usb_ifnum_to_if doesn't find the configuration...
Is the condition bInterfaceNumber == ifnum the bug?
This is the DEBUG output...
[ 659.660272] usb 1-4: new high speed USB device using ehci_hcd and address 6
[ 659.812616] rndis_host 1-4:1.0: master #4/ (null) slave #5/
(null)
[ 659.812624] usb 1-4: bad CDC descriptors
[ 659.812851] rndis_wlan 1-4:1.0: master #4/ (null) slave #5/
(null)
[ 659.812858] usb 1-4: bad CDC descriptors
And this the corresponding code...
/* we need a master/control interface (what we're to_if(dev- >udev,
info- >u->bMasterInte rface0) ; to_if(dev- >udev,
info- >u->bSlaveInter face0);
dev_dbg( &intf-> dev,
"master #%u/%p slave #%u/%p\n",
info- >u->bMasterInte rface0,
info- >control,
info- >u->bSlaveInter face0,
info- >data);
* probed with) and a slave/data interface; union
* descriptors sort this all out.
*/
info->control = usb_ifnum_
info->data = usb_ifnum_
if (!info->control || !info->data) {
goto bad_desc;
}
Any ideas what to do next?
Could the problem be that the bInterfaceNumber starts with 0.
So there is 0 and 1.
And the ifnum for master is 4 and for slave 5.
So that usb_ifnum_to_if doesn't find the configuration...
Is the condition bInterfaceNumber == ifnum the bug?