Re: some questions about bandwidth calculation

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

 



On Fri, 31 Jan 2014, vichy wrote:

> Hi all:
> I have some questions about bandwidth calculation
> 1. why tt time need to include one maxp bus time ?
>             qh->tt_usecs = NS_TO_US (think_time +
>                     usb_calc_bus_time (urb->dev->speed,
>                     is_input, 0, max_packet (maxp)));

Because tt_usecs is the time required to send a maximum-size packet.  
So of course you have to include the maxp bus time.

> 2. in tt_available, below is used to check whether tt time is bigger than 125us
>         if (125 < usecs) {
>             int ufs = (usecs / 125);
>             int i;
>             for (i = uframe; i < (uframe + ufs) && i < 8; i++)
>                 if (0 < tt_usecs[i]) {
>                     ehci_vdbg(ehci,
>                         "multi-uframe xfer can't fit "
>                         "in frame %d uframe %d\n",
>                         frame, i);
>                     return 0;
>                 }
>         }
> is it possible tt time bigger than 1 uframe?

Yes.  Any isochronous transfer that is longer than 188 bytes will
require more than one uframe.

> 3. below is the fomula to calculate bus time
> Full-speed (Input)
> Non-Isochronous Transfer (Handshake Included)
> = 9107 + (83.54 * Floor(3.167 + BitStuffTime(Data_bc))) + Host_Delay
> what is 9107 and 3.167 used for?
> (9102 is not equal to FS bit time * FS protocol overhead)

9107 is the overhead.  It includes things like inter-packet delays, the
IN or OUT token packet, the ACK packet, and so on.

The 3.167 is the time required for the DATAx PID byte at the start of
the data packet and the CRC bytes at the end.

Alan Stern

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