Re: [PATCH v2 1/5] USB: gadget: f_rndis: fix bitrate for SuperSpeed and above

From: William Mcvicker
Date: Mon Nov 30 2020 - 13:33:54 EST


On Mon, Nov 30, 2020 at 06:24:40AM +0000, Peter Chen wrote:
> On 20-11-27 15:05:55, Greg Kroah-Hartman wrote:
> > From: Will McVicker <willmcvicker@xxxxxxxxxx>
> >
> > Align the SuperSpeed Plus bitrate for f_rndis to match f_ncm's ncm_bitrate
> > defined by commit 1650113888fe ("usb: gadget: f_ncm: add SuperSpeed descriptors
> > for CDC NCM").
> >
> > Cc: Felipe Balbi <balbi@xxxxxxxxxx>
> > Cc: EJ Hsu <ejh@xxxxxxxxxx>
> > Cc: Peter Chen <peter.chen@xxxxxxx>
> > Cc: stable <stable@xxxxxxxxxxxxxxx>
> > Signed-off-by: Will McVicker <willmcvicker@xxxxxxxxxx>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> > ---
> > drivers/usb/gadget/function/f_rndis.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/usb/gadget/function/f_rndis.c b/drivers/usb/gadget/function/f_rndis.c
> > index 9534c8ab62a8..0739b05a0ef7 100644
> > --- a/drivers/usb/gadget/function/f_rndis.c
> > +++ b/drivers/usb/gadget/function/f_rndis.c
> > @@ -87,8 +87,10 @@ static inline struct f_rndis *func_to_rndis(struct usb_function *f)
> > /* peak (theoretical) bulk transfer rate in bits-per-second */
> > static unsigned int bitrate(struct usb_gadget *g)
> > {
> > + if (gadget_is_superspeed(g) && g->speed >= USB_SPEED_SUPER_PLUS)
> > + return 4250000000U;
>
> Is tested value or spec defined value?
>
> > if (gadget_is_superspeed(g) && g->speed == USB_SPEED_SUPER)
> > - return 13 * 1024 * 8 * 1000 * 8;
> > + return 3750000000U;
>
> 13 * 1024 * 8 * 1000 * 8 = 851,968,000, how 3750000000U is calculated?
>
> > else if (gadget_is_dualspeed(g) && g->speed == USB_SPEED_HIGH)
> > return 13 * 512 * 8 * 1000 * 8;
> > else
> > --
> > 2.29.2
> >
>
> --
>
> Thanks,
> Peter Chen

Hi Peter,

Thanks for the reviews! Regarding the updated transfer rates, please refer to
the f_ncm commit email thread by Lorenzo that explains the reasoning behind
these speeds:

https://patchwork.kernel.org/project/linux-usb/patch/20200818165848.4117493-1-lorenzo@xxxxxxxxxx/

Thanks,
Will