FCC authentication with QMI over MBIM; try 1 -- Logs
Aleksander Morgado
aleksander at aleksander.es
Fri Jul 1 13:32:54 UTC 2016
On Fri, Jul 1, 2016 at 2:57 PM, Bjørn Mork <bjorn at mork.no> wrote:
>> Didn't check yet myself, but this device does work reliably in Windows
>> in MBIM mode, right? I mean, Lenovo doesn't switch it to QMI in the
>> Windows driver they use, I assume?
>
> I don't know, but I assume it is mostly reliable in Windows. They have
> probably tested that :)
>
> I have now tried adding all sorts of resets in different parts of the
> driver without any noticable success rate improvement. And I have
> verified that I can reproduce the same problem with different MBIM
> tools, using different timings and request sequences. Then I started
> adding a few sleeps here and there, and that seemed to improve things.
> Removing and reducing the total amount of sleep time, I ended up with
> this which still seems to work:
>
> diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
> index 53759c315b97..b22eab07db29 100644
> --- a/drivers/net/usb/cdc_ncm.c
> +++ b/drivers/net/usb/cdc_ncm.c
> @@ -854,6 +854,9 @@ int cdc_ncm_bind_common(struct usbnet *dev, struct usb_interface *intf, u8 data_
> if (cdc_ncm_init(dev))
> goto error2;
>
> + /* experimental fix(?) for EM7455/MC7455 */
> + usleep_range(10000, 20000);
> +
> /* configure data interface */
> temp = usb_set_interface(dev->udev, iface_no, data_altsetting);
> if (temp) {
>
>
>
> It could still just be pure luck, though. I've only tested it a couple
> of times using that delay so far. It would be good to get broader
> testing, if any of you with a problematic EM7455 could try adding a line
> like that. And please test other values if it doesn't seem to work at
> first. I started out with msleep(1000), reducing it gradually down to
> usleep_range(1000, 2000). Which didn't work. The (10000, 20000) looks
> like a reasonable minimum to me, but it could be too little. I don't
> know.
>
> The point of reducing this as much as possible is to be able to apply it
> unconditionally. This might be necessary for lots of other MDM9x30
> devices, and I don't want another device ID list to maintain.
>
> Or maybe I am completely off the target again, and all this is just
> another irrelevant coincidence.
Oh! That worked here with my EM7455! :)
--
Aleksander
https://aleksander.es
More information about the libmbim-devel
mailing list