RE: Question about calculate trbs in xhci

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

 



From: vichy [mailto:vichy.kuo@xxxxxxxxx]


> hi David:
> 
> > Because the trb buffers can't cross a 64k physical address boundary.
>
> Is it only specific to iso scheduling or bulk also need to take care?
> from your kind explanation, the trb buffer for Bulk also need to take
> care crossing 64k physical boundary.
> But i don't find it for bulk transfer.
> Below is excerpted from xhci_queue_bulk_tx
>         while (running_total < urb->transfer_buffer_length) {
>                 num_trbs++;
>                 running_total += TRB_MAX_BUFF_SIZE;
>         }

Hmmm... that looks like a division by a power of 2!

The constraint applies to all TRB.
I've not looked at the code recently, it certainly does eventually
split on 64k physical boundaries.
It might not be detected until the entries are written to the ring,
you don't really want to do all the work twice.

	David

��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥





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

  Powered by Linux