Re: [PATCH] USB: storage: fix Huawei mode switching regression

Bjørn Mork
2013-03-05T11:36:22Z

Oliver Neukum <oneukum@suse.de> writes:
> On Monday 04 March 2013 23:28:47 Josua Dietze wrote:
>> > I guess the real problem will be verifying that all of the entries can
>> > go away. This type of hardware tends to get old very fast, but there is
>> > always someone having a really ancient device.
>>
>> I will check this and add any missing USB IDs to usb_modeswitch, but I can't shake the feeling that not all Huawei entries in "unusual_devs.h" did actually materialize as devices ...
>>
>> Anyway, as Bjørn said, putting that initialization into the storage
>> driver takes away quite some possibilities to handle these modems in
>> a flexible way.
>
> But it adds the ability to handle loss of power in the suspend case
> cleanly.

How is that different? If the device loses power, then it will appear
as a new unswitched USB storage device, and go through the switching
sequence again. And if the device does not lose power but the system
does, then it will appear as a new, already switched, USB modem device.

The system behaviour will be exactly the same AFAICS, providing the
switching command is the same.

> As long as the switch only makes additional devices appear,
> doing it in kernel space is the nicer approach.

You cannot guarantee this. Huawei may not support it, but there are
instructions around the net on how to change this.

And how do you want this to play together with complex devices having
multiple configurations, where one of those is mode switching and the
other is not? Yes, there are Huawei devices like that.

The firmware implement a wide variety of different alternative
configurations. Some users take advantage of that. Doing the mode
switching in the kernel removes all but one of these alternatives. The
fact that the one Windows uses is among those removed is IMHO bad,
regardless of whether Huawei support that mode on Linux.

Bjørn