On Sun, Jun 13, 2010 at 09:27:18AM +0800, Xu, Andiry wrote: > > -----Original Message----- > > From: Sarah Sharp [mailto:sarah.a.sharp@xxxxxxxxxxxxxxx] > > Sent: Friday, June 11, 2010 1:50 AM > > To: Xu, Andiry > > Cc: linux-usb@xxxxxxxxxxxxxxx; Yang, Libin; Nguyen, Dong > > Subject: Re: Regression found with link TRB activation patch > > > > Hi Andiry, > > > > The bug I found in John's link TRB activation patch would also effect > > isochronous TDs that end just before the link TRB, when the URB needs > > more TDs enqueued after that. Have you run into this problem? > > > > Yes, I have encountered this problem too and found that with this patch, > even without isoc transfer implemented, plugging an isoc device will > cause the system hangs. I just remove the patch for isoc testing and > trying to figure out what the patch does. It's good that you found it > too. Shoot, I wish you had told me this particular patch was causing you trouble sooner. In the future, can you tell me if this sort of thing happens? If you hit the bug, other users are also likely to hit the bug, and I'd like to fix it sooner. > > Also, how are you doing on the isoch patches? Did you end up fixing > the > > problem when multiple URBs are skipped? I hope you're not waiting on > me > > to refactor the handle_tx_event() function, but if you are, please let > > me know. I'd like to get all your patches (including the PM patches) > > reviewed, tested, and queued before I leave for a conference/vacation > on > > June 25th. Otherwise they will have to wait until after July 12th. > > > > Thanks for your concern. Yes, I'm doing the handle_tx_event() refine > work but I have been engaging in some other urgent tasks these > days(including investigating the xHCI 1.0 spec) and sorry for the late > response. I'll do my best to submit the patches ASAP. Thanks for your > help! It turns out that I also have some urgent work that needs to be done before I leave, so I may not be able to fully review and test your code before June 25th. So no need to rush on the patches. I have some notes on what will need to be done to the xHCI driver to be compliant with the xHCI 1.0 specification. I'll try to post them in the next couple of days. I'm most concerned about the TD fragments change because TD fragments cannot span segment boundaries, so having only a link TRB at the end of the segment will not suffice. (We can't insert no-ops before the link TRB because no-ops cannot be chained.) I think the solution is to end the segment early with a link TRB, and make the dequeue pointer function change the link TRB back into a normal TRB once the hardware is done with that TD. But the room_on_ring() function is going to have to calculate where to break the transfer into TD fragments and allocate new segments if needed. I think that will be the most complex change for the 1.0 xHCI specification. Hopefully the 1.0 xHCI specification is posted on the intel.com website soon. Jeff Ravencraft has said there's some sort of download security thing that's holding up posting the spec publicly to the website. Sarah Sharp -- 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