RE: Regression found with link TRB activation patch

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

 



> -----Original Message-----
> From: Sarah Sharp [mailto:sarah.a.sharp@xxxxxxxxxxxxxxx]
> Sent: Tuesday, June 15, 2010 1:16 AM
> To: Xu, Andiry
> Cc: linux-usb@xxxxxxxxxxxxxxx; Yang, Libin; Nguyen, Dong
> Subject: Re: Regression found with link TRB activation patch
> 
> 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.
> 

Sure.

> 
> 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.
> 

OK.

> 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.
> 

Yes. TD fragment is the most difficult part as I see. I'm afraid there
will be some judgments in the future code such as "if (HC_VERSION(reg)
== 0x0100)" to maintain compatibility. I wonder if you have some good
solutions to avoid this. Also, Section 4.9.4 states driver should
maximize the number of Events processed before writing the ERDP, not
write ERDP for every event. Do I need to modify handle_tx_event() to
comply with this statement?

Thanks,
Andiry

--
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