Re: problem with USB mass storage when the device interface >= 3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 20, 2011 at 4:40 PM, yingchun li <sword.l.dragon@xxxxxxxxx> wrote:
> On Wed, Apr 20, 2011 at 7:04 PM, Rajaram R <rajaram.officemail@xxxxxxxxx> wrote:
>> On Wed, Apr 20, 2011 at 4:29 PM, yingchun li <sword.l.dragon@xxxxxxxxx> wrote:
>>>
>>> My device has three interface: adb, usb mass storage and general serial.
>>> when I connect cable, the usb mass storage setup fail, and pc will reset
>>> usb bus sometimes, below is the infomation from usbmon:
>>>
>>> From log, I can see after PC send the command
>>> cca5f000 4015670100 S Bo:1:091:2 -115 31 = 55534243 0c000000 00100000
>>> 80000a28 00000000 00000008 00000000 000000
>>> the callback return -71(protocol error),  what's wrong in this case?
>>> and I see in the device  it enqueue the request of this, but  didn't wait the
>>> request complete and receive the bus reset.
>>>
>>> But if the device build with two interface(adb+mass storage) or only one, it is
>>> always OK! could someone give me some advice on where I should check?
>>
>> Are you using Kernel 2.6.34 ?
>
>  kernel version is 2.6.32

I guess the androind f_mass_storage.c does a check

" if (w_index != 0 || w_value != 0) { "

in function

static int fsg_setup(struct usb_function *f,  const struct
usb_ctrlrequest *ctrl)

which could be the cause.. ( w_index != 0 is not zero in case of composite)

You may refer http://lxr.free-electrons.com/source/drivers/usb/gadget/f_mass_storage.c?v=2.6.34
for solution.

>>
>>>
>>> f70ae400 4010276390 C Ii:1:001:1 0:2048 2 = 0400
>>> f70ae400 4010276403 S Ii:1:001:1 -115:2048 4 <
>>> e1320300 4010276410 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e1320300 4010276419 C Ci:1:001:0 0 4 = 01050100
>>> e1320300 4010276422 S Co:1:001:0 s 23 01 0010 0002 0000 0
>>> e1320300 4010276426 C Co:1:001:0 0 0
>>> e1320300 4010276428 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e1320300 4010276430 C Ci:1:001:0 0 4 = 01050000
>>> e1320300 4010307937 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e1320300 4010307946 C Ci:1:001:0 0 4 = 01050000
>>> e1320300 4010339447 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e1320300 4010339455 C Ci:1:001:0 0 4 = 01050000
>>> e1320300 4010371940 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e1320300 4010371949 C Ci:1:001:0 0 4 = 01050000
>>> e1320300 4010403452 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e1320300 4010403461 C Ci:1:001:0 0 4 = 01050000
>>> e1320300 4010403473 S Co:1:001:0 s 23 03 0004 0002 0000 0
>>> e1320300 4010403476 C Co:1:001:0 0 0
>>> e1320300 4010459446 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e1320300 4010459656 C Ci:1:001:0 0 4 = 03051000
>>> e1320300 4010515951 S Co:1:001:0 s 23 01 0014 0002 0000 0
>>> e1320300 4010515960 C Co:1:001:0 0 0
>>> e1320300 4010515977 S Ci:1:000:0 s 80 06 0100 0000 0040 64 <
>>> e1320300 4010516284 C Ci:1:000:0 0 18 = 12010002 00000040 8217035d 27020102 0301
>>> e1320300 4010516293 S Co:1:001:0 s 23 03 0004 0002 0000 0
>>> e1320300 4010516298 C Co:1:001:0 0 0
>>> e1320300 4010571938 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e1320300 4010572154 C Ci:1:001:0 0 4 = 03051000
>>> e1320300 4010627444 S Co:1:001:0 s 23 01 0014 0002 0000 0
>>> e1320300 4010627453 C Co:1:001:0 0 0
>>> e1320300 4010627458 S Co:1:000:0 s 00 05 005b 0000 0000 0
>>> e1320300 4010627661 C Co:1:000:0 0 0
>>> e1320300 4010647941 S Ci:1:091:0 s 80 06 0100 0000 0012 18 <
>>> e1320300 4010648285 C Ci:1:091:0 0 18 = 12010002 00000040 8217035d 27020102 0301
>>> e1320300 4010648299 S Ci:1:091:0 s 80 06 0200 0000 0009 9 <
>>> e1320300 4010648532 C Ci:1:091:0 0 9 = 09024e00 030100e0 fa
>>> e1320300 4010648541 S Ci:1:091:0 s 80 06 0200 0000 004e 78 <
>>> e1320300 4010648781 C Ci:1:091:0 0 78 = 09024e00 030100e0 fa090400
>>> 0002ff42 01000705 81020002 00070501 02000200
>>> e1320300 4010648796 S Ci:1:091:0 s 80 06 0300 0000 00ff 255 <
>>> e1320300 4010649030 C Ci:1:091:0 0 4 = 04030904
>>> e1320300 4010649038 S Ci:1:091:0 s 80 06 0302 0409 00ff 255 <
>>> e1320300 4010649280 C Ci:1:091:0 0 42 = 2a035300 70007200 65006100
>>> 64007400 72007500 6d002000 6f007000 65006e00
>>> e1320300 4010649289 S Ci:1:091:0 s 80 06 0301 0409 00ff 255 <
>>> e1320300 4010649531 C Ci:1:091:0 0 22 = 16035300 70007200 65006100
>>> 64007400 72007500 6d00
>>> e1320300 4010649539 S Ci:1:091:0 s 80 06 0303 0409 00ff 255 <
>>> e1320300 4010649781 C Ci:1:091:0 0 18 = 12033100 39003700 36003100 32003000 3200
>>> e1320300 4010649999 S Co:1:091:0 s 00 09 0001 0000 0000 0
>>> e1320300 4010650532 C Co:1:091:0 0 0
>>> f2719d80 4011651540 S Ci:1:091:0 s 80 06 0300 0000 0100 256 <
>>> f2719d80 4011651763 C Ci:1:091:0 0 4 = 04030904
>>> f2719d80 4011651813 S Ci:1:091:0 s 80 06 0303 0409 0100 256 <
>>> f2719d80 4011652007 C Ci:1:091:0 0 18 = 12033100 39003700 36003100 32003000 3200
>>> f2719000 4011652142 S Bi:1:091:1 -115 24 <
>>> c99d1380 4011652188 S Bo:1:091:1 -115 24 = 434e584e 00000001 00100000
>>> 07000000 32020000 bcb1a7b1
>>> c99d1380 4011652258 C Bo:1:091:1 0 24 >
>>> c99d1900 4011652300 S Bo:1:091:1 -115 7 = 686f7374 3a3a00
>>> c99d1900 4011652633 C Bo:1:091:1 0 7 >
>>> f2719000 4011663937 C Bi:1:091:1 0 24 = 434e584e 00000001 00100000
>>> 09000000 e4020000 bcb1a7b1
>>> f2719000 4011663958 S Bi:1:091:1 -115 9 <
>>> f2719000 4011664257 C Bi:1:091:1 0 9 = 64657669 63653a3a 00
>>> f2719000 4011664312 S Bi:1:091:1 -115 24 <
>>> cca5f000 4015647462 S Ci:1:091:0 s a1 fe 0000 0001 0001 1 <
>>> cca5f000 4015647923 C Ci:1:091:0 -32 0
>>> cca5f000 4015648112 S Bo:1:091:2 -115 31 = 55534243 01000000 24000000
>>> 80000612 00000024 00000000 00000000 000000
>>> cca5f000 4015648168 C Bo:1:091:2 0 31 >
>>> caffce80 4015648214 S Bi:1:091:2 -115 36 <
>>> caffce80 4015648793 C Bi:1:091:2 0 36 = 00800202 1f000000 53707265
>>> 61647472 756d6f70 656e7068 6f6e6520 20202020
>>> cca5f000 4015648822 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015648917 C Bi:1:091:2 0 13 = 55534253 01000000 00000000 00
>>> cca5f000 4015650247 S Bo:1:091:2 -115 31 = 55534243 02000000 00000000
>>> 00000600 00000000 00000000 00000000 000000
>>> cca5f000 4015650293 C Bo:1:091:2 0 31 >
>>> cca5f000 4015650358 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015650793 C Bi:1:091:2 0 13 = 55534253 02000000 00000000 01
>>> cca5f000 4015651077 S Bo:1:091:2 -115 31 = 55534243 03000000 12000000
>>> 80000603 00000012 00000000 00000000 000000
>>> cca5f000 4015651169 C Bo:1:091:2 0 31 >
>>> caffc400 4015651197 S Bi:1:091:2 -115 18 <
>>> caffc400 4015651667 C Bi:1:091:2 0 18 = 70000600 0000000a 00000000 29000000 0000
>>> cca5f000 4015653312 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015653420 C Bi:1:091:2 0 13 = 55534253 03000000 00000000 00
>>> cca5f000 4015662416 S Bo:1:091:2 -115 31 = 55534243 04000000 00000000
>>> 00000600 00000000 00000000 00000000 000000
>>> cca5f000 4015662547 C Bo:1:091:2 0 31 >
>>> cca5f000 4015662606 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015663043 C Bi:1:091:2 0 13 = 55534253 04000000 00000000 00
>>> cca5f000 4015663175 S Bo:1:091:2 -115 31 = 55534243 05000000 08000000
>>> 80000a25 00000000 00000000 00000000 000000
>>> cca5f000 4015663291 C Bo:1:091:2 0 31 >
>>> ebd7e680 4015663343 S Bi:1:091:2 -115 8 <
>>> ebd7e680 4015663667 C Bi:1:091:2 0 8 = 00064a0f 00000200
>>> cca5f000 4015663818 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015663917 C Bi:1:091:2 0 13 = 55534253 05000000 00000000 00
>>> cca5f000 4015664695 S Bo:1:091:2 -115 31 = 55534243 06000000 c0000000
>>> 8000061a 003f00c0 00000000 00000000 000000
>>> cca5f000 4015664792 C Bo:1:091:2 0 31 >
>>> dfeaa080 4015664844 S Bi:1:091:2 -115 192 <
>>> dfeaa080 4015665292 C Bi:1:091:2 -121 4 = 03000000
>>> cca5f000 4015665335 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015665541 C Bi:1:091:2 0 13 = 55534253 06000000 bc000000 00
>>> cca5f000 4015665738 S Bo:1:091:2 -115 31 = 55534243 07000000 00000000
>>> 00000600 00000000 00000000 00000000 000000
>>> cca5f000 4015665792 C Bo:1:091:2 0 31 >
>>> cca5f000 4015665831 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015666291 C Bi:1:091:2 0 13 = 55534253 07000000 00000000 00
>>> cca5f000 4015666513 S Bo:1:091:2 -115 31 = 55534243 08000000 00000000
>>> 0000061e 00000001 00000000 00000000 000000
>>> cca5f000 4015666541 C Bo:1:091:2 0 31 >
>>> cca5f000 4015666568 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015667042 C Bi:1:091:2 0 13 = 55534253 08000000 00000000 00
>>> cca5f000 4015667134 S Bo:1:091:2 -115 31 = 55534243 09000000 00000000
>>> 00000600 00000000 00000000 00000000 000000
>>> cca5f000 4015667167 C Bo:1:091:2 0 31 >
>>> cca5f000 4015667192 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015667792 C Bi:1:091:2 0 13 = 55534253 09000000 00000000 00
>>> cca5f000 4015668373 S Bo:1:091:2 -115 31 = 55534243 0a000000 08000000
>>> 80000a25 00000000 00000000 00000000 000000
>>> cca5f000 4015668415 C Bo:1:091:2 0 31 >
>>> dfeaa200 4015668433 S Bi:1:091:2 -115 8 <
>>> dfeaa200 4015668915 C Bi:1:091:2 0 8 = 00064a0f 00000200
>>> cca5f000 4015668932 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015669165 C Bi:1:091:2 0 13 = 55534253 0a000000 00000000 00
>>> cca5f000 4015669213 S Bo:1:091:2 -115 31 = 55534243 0b000000 c0000000
>>> 8000061a 003f00c0 00000000 00000000 000000
>>> cca5f000 4015669291 C Bo:1:091:2 0 31 >
>>> dfeaa200 4015669306 S Bi:1:091:2 -115 192 <
>>> dfeaa200 4015669789 C Bi:1:091:2 -121 4 = 03000000
>>> cca5f000 4015669806 S Bi:1:091:2 -115 13 <
>>> cca5f000 4015670040 C Bi:1:091:2 0 13 = 55534253 0b000000 bc000000 00
>>> cca5f000 4015670100 S Bo:1:091:2 -115 31 = 55534243 0c000000 00100000
>>> 80000a28 00000000 00000008 00000000 000000
>>> cca5f000 4015670165 C Bo:1:091:2 0 31 >
>>> dfeaa200 4015670181 S Bi:1:091:2 -115 4096 <
>>> dfeaa200 4015675790 C Bi:1:091:2 -71 0
>>>
>>> FROM here PC receive protocol error and reset bus
>>>
>>> f2719000 4015676039 C Bi:1:091:1 -108 0
>>> dfeaa200 4015676064 S Co:1:001:0 s 23 03 0004 0002 0000 0
>>> dfeaa200 4015676068 C Co:1:001:0 0 0
>>> dfeaa600 4015731951 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> dfeaa600 4015732161 C Ci:1:001:0 0 4 = 03051000
>>> dfeaaa00 4015787954 S Co:1:001:0 s 23 01 0014 0002 0000 0
>>> dfeaaa00 4015787963 C Co:1:001:0 0 0
>>> dfeaaa00 4015787980 S Ci:1:000:0 s 80 06 0100 0000 0040 64 <
>>> dfeaaa00 4015788288 C Ci:1:000:0 0 18 = 12010002 00000040 8217035d 27020102 0301
>>> dfeaaa00 4015788298 S Co:1:001:0 s 23 03 0004 0002 0000 0
>>> dfeaaa00 4015788304 C Co:1:001:0 0 0
>>> dfeaa600 4015843951 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> dfeaa600 4015844159 C Ci:1:001:0 0 4 = 03051000
>>> dfeaa600 4015899949 S Co:1:001:0 s 23 01 0014 0002 0000 0
>>> dfeaa600 4015899959 C Co:1:001:0 0 0
>>> dfeaa600 4015899963 S Co:1:000:0 s 00 05 005b 0000 0000 0
>>> dfeaa600 4015900165 C Co:1:000:0 0 0
>>> dfeaa600 4015919945 S Ci:1:091:0 s 80 06 0100 0000 0012 18 <
>>> dfeaa600 4015920289 C Ci:1:091:0 0 18 = 12010002 00000040 8217035d 27020102 0301
>>> dfeaa600 4015920302 S Ci:1:091:0 s 80 06 0200 0000 004e 78 <
>>> dfeaa600 4015920536 C Ci:1:091:0 0 78 = 09024e00 030100e0 fa090400
>>> 0002ff42 01000705 81020002 00070501 02000200
>>> dfeaa600 4015920546 S Ci:1:091:0 s 80 06 0303 0409 00ff 255 <
>>> dfeaa600 4015920662 C Ci:1:091:0 0 18 = 12033100 39003700 36003100 32003000 3200
>>> dfeaa600 4015920670 S Co:1:091:0 s 00 09 0001 0000 0000 0
>>> dfeaa600 4015921661 C Co:1:091:0 0 0
>>> cca5f000 4015921771 S Bo:1:091:2 -115 31 = 55534243 0d000000 00100000
>>> 80000a28 00000000 00000008 00000000 000000
>>> cca5f000 4015925160 C Bo:1:091:2 0 31 >
>>> dfeaa600 4015925218 S Bi:1:091:2 -115 4096 <
>>> dfeaa600 4015929161 C Bi:1:091:2 -71 0
>>> ebd7ef80 4015929201 S Co:1:001:0 s 23 03 0004 0002 0000 0
>>> ebd7ef80 4015929206 C Co:1:001:0 0 0
>>> ebd7ef80 4015983452 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> ebd7ef80 4015983660 C Ci:1:001:0 0 4 = 03051000
>>> ebd7ef80 4016039450 S Co:1:001:0 s 23 01 0014 0002 0000 0
>>> ebd7ef80 4016039459 C Co:1:001:0 0 0
>>> ebd7ef80 4016039476 S Ci:1:000:0 s 80 06 0100 0000 0040 64 <
>>> ebd7ef80 4016039783 C Ci:1:000:0 0 18 = 12010002 00000040 8217035d 27020102 0301
>>> ebd7ef80 4016039795 S Co:1:001:0 s 23 03 0004 0002 0000 0
>>> ebd7ef80 4016039799 C Co:1:001:0 0 0
>>> ebd7ef80 4016095453 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> ebd7ef80 4016095652 C Ci:1:001:0 0 4 = 03051000
>>> ebd7ef80 4016151442 S Co:1:001:0 s 23 01 0014 0002 0000 0
>>> ebd7ef80 4016151451 C Co:1:001:0 0 0
>>> ebd7ef80 4016151455 S Co:1:000:0 s 00 05 005b 0000 0000 0
>>> ebd7ef80 4016151659 C Co:1:000:0 0 0
>>> ebd7ef80 4016171449 S Ci:1:091:0 s 80 06 0100 0000 0012 18 <
>>> ebd7ef80 4016171784 C Ci:1:091:0 0 18 = 12010002 00000040 8217035d 27020102 0301
>>> ebd7ef80 4016171800 S Ci:1:091:0 s 80 06 0200 0000 004e 78 <
>>> ebd7ef80 4016172031 C Ci:1:091:0 0 78 = 09024e00 030100e0 fa090400
>>> 0002ff42 01000705 81020002 00070501 02000200
>>> ebd7ef80 4016172042 S Ci:1:091:0 s 80 06 0303 0409 00ff 255 <
>>> ebd7ef80 4016172279 C Ci:1:091:0 0 18 = 12033100 39003700 36003100 32003000 3200
>>> ebd7ef80 4016172289 S Co:1:091:0 s 00 09 0001 0000 0000 0
>>> ebd7ef80 4016173280 C Co:1:091:0 0 0
>>> cca5f000 4016173372 S Bo:1:091:2 -115 31 = 55534243 0e000000 00100000
>>> 80000a28 00000000 00000008 00000000 000000
>>> cca5f000 4016173904 C Bo:1:091:2 0 31 >
>>> dfeaaa00 4016173929 S Bi:1:091:2 -115 4096 <
>>> e354dd00 4016653576 S Ci:1:091:0 s 80 06 0300 0000 0100 256 <
>>> e354dd00 4016653894 C Ci:1:091:0 0 4 = 04030904
>>> e354dd00 4016653944 S Ci:1:091:0 s 80 06 0303 0409 0100 256 <
>>> e354dd00 4016654145 C Ci:1:091:0 0 18 = 12033100 39003700 36003100 32003000 3200
>>> e354d080 4016654280 S Bi:1:091:1 -115 24 <
>>> dfeaaf00 4016654330 S Bo:1:091:1 -115 24 = 434e584e 00000001 00100000
>>> 07000000 32020000 bcb1a7b1
>>> dfeaaf00 4016654395 C Bo:1:091:1 0 24 >
>>> dfeaa380 4016654439 S Bo:1:091:1 -115 7 = 686f7374 3a3a00
>>> dfeaa380 4016654769 C Bo:1:091:1 0 7 >
>>> e354d080 4016656019 C Bi:1:091:1 0 24 = 434e584e 00000001 00100000
>>> 09000000 e4020000 bcb1a7b1
>>> e354d080 4016656062 S Bi:1:091:1 -115 9 <
>>> e354d080 4016656269 C Bi:1:091:1 0 9 = 64657669 63653a3a 00
>>> e354d080 4016656312 S Bi:1:091:1 -115 24 <
>>> f70ae400 4019832961 C Ii:1:001:1 0:2048 2 = 0400
>>> f70ae400 4019832969 S Ii:1:001:1 -115:2048 4 <
>>> d51c1980 4019833060 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> d51c1980 4019833067 C Ci:1:001:0 0 4 = 00010100
>>> d51c1980 4019833076 S Co:1:001:0 s 23 01 0010 0002 0000 0
>>> d51c1980 4019833080 C Co:1:001:0 0 0
>>> e354d080 4019833198 C Bi:1:091:1 -108 0
>>> dfeaaa00 4019836823 C Bi:1:091:2 -71 0
>>> ed991e00 4019845049 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> ed991e00 4019845055 C Ci:1:001:0 0 4 = 00010000
>>> e376aa00 4019875454 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e376aa00 4019875463 C Ci:1:001:0 0 4 = 00010000
>>> e9234480 4019907445 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e9234480 4019907454 C Ci:1:001:0 0 4 = 00010000
>>> ca6f7980 4019939449 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> ca6f7980 4019939457 C Ci:1:001:0 0 4 = 00010000
>>> e0f6c400 4019971605 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
>>> e0f6c400 4019971614 C Ci:1:001:0 0 4 = 00010000
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux