Re: [PATCH v1 2/2] usb: gadget: dummy_hcd: Set transfer interval to 1 microframe

From: Alan Stern
Date: Thu Apr 11 2024 - 13:47:28 EST


On Thu, Apr 11, 2024 at 05:22:11PM +0200, Marcello Sylvester Bauer wrote:
> Currently, the transfer polling interval is set to 1ms, which is the
> frame rate of full-speed and low-speed USB. The USB 2.0 specification
> introduces microframes (125 microseconds) to improve the timing
> precision of data transfers.
>
> Reducing the transfer interval to 1 microframe increases data throughput
> for high-speed and super-speed USB communication
>
> Signed-off-by: Marcello Sylvester Bauer <marcello.bauer@xxxxxxxxxxxxx>
> Signed-off-by: Marcello Sylvester Bauer <sylv@xxxxxxx>
> ---
> drivers/usb/gadget/udc/dummy_hcd.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
> index dab559d8ee8c..f37b0d8386c1 100644
> --- a/drivers/usb/gadget/udc/dummy_hcd.c
> +++ b/drivers/usb/gadget/udc/dummy_hcd.c
> @@ -50,6 +50,8 @@
> #define POWER_BUDGET 500 /* in mA; use 8 for low-power port testing */
> #define POWER_BUDGET_3 900 /* in mA */
>
> +#define DUMMY_TIMER_INT_NSECS 125000 /* 1 microframe */

If the is_super_speed and is_high_speed module parameters are both false
then the timer should run at 1-ms intervals. So this needs to be
something that can be adjusted at runtime, not a constant.

Alan Stern