RE: v3.8 regression: Huawei mode switching fails (was Re: [PATCH2/2]linux-usb:optimize to match the Huawei USB storage devices and supportnew switch command)

From: Fangxiaozhi (Franko)
Date: Tue Mar 05 2013 - 04:06:12 EST


Dear Oliver:

> -----Original Message-----
> From: Oliver Neukum [mailto:oneukum@xxxxxxx]
> Sent: Tuesday, March 05, 2013 4:49 PM
> To: Fangxiaozhi (Franko)
> Cc: BjÃrn Mork; linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> Xueguiying (Zihan); Linlei (Lei Lin); greg@xxxxxxxxx; Yili (Neil); Wangyuhua
> (Roger, Credit); Huqiao (C); balbi@xxxxxx; mdharm-usb@xxxxxxxxxxxxxxxxxx;
> sebastian@xxxxxxxxxxxxx
> Subject: Re: v3.8 regression: Huawei mode switching fails (was Re: [PATCH
> 2/2]linux-usb:optimize to match the Huawei USB storage devices and support
> new switch command)
>
> On Tuesday 05 March 2013 02:28:07 Fangxiaozhi wrote:
>
> Hi,
>
> > 1. As far as I know, usb_modeswitch is now only integrated in the PC Linux.
> It isn't integrated to other system with linux kernel, such as Android, Chrome
> OS, etc. On these system, how can we switch the device?
>
> Then those systems will have to add modeswitch.
> If we are to do mode switching in kernel space, there has to be an additional
> technical benefit over the existing and well working solution in user space.
-----The vendor doesn't want to add the modeswitch on their system. We try to push them to do it, but they don't agree.
>
> > 2. usb_modeswitch often sends the Windows switching command to
> switch Huawei device, but not sends Linux switching command. This maybe
> causes some unexpected problem.
>
> You have two commands? What is the difference? Anyway, if usb_modeswitch
> has issues, these problems need to be fixed.
------Sorry, it is one command, but with different values in it for different system, such as:
1. For Windows:
{0x11, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
2. For Mac OS:
{0x11, 0x06, 0x10, 0x00, 0x00, 0x01, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
3. For Linux:
{0x11, 0x06, 0x20, 0x00, 0x00, 0x01, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

Sometimes, modeswitch will send the command for Windows to device on Linux system, but not the command for Linux.
>
> Independent from that, there is a problem with user space mode switching.
> Namely it doesn't work with reset_resume(). Thus we cannot do sane S4 with
> the user space solution.
> However, the problem cannot be solved by merely by adding the switch to the
> storage driver.
-----For this issue, can you offer more details? And we can try to solve it together.
>
> Regards
> Oliver

Best Regards,
Franko Fang
¢éì®&Þ~º&¶¬–+-±éÝ¥Šw®žË±Êâmébžìdz¹Þ)í…æèw*jg¬±¨¶‰šŽŠÝj/êäz¹ÞŠà2ŠÞ¨è­Ú&¢)ß«a¶Úþø®G«éh®æj:+v‰¨Šwè†Ù>Wš±êÞiÛaxPjØm¶Ÿÿà -»+ƒùdš_