On Thu, 2 Nov 2017, Roger Quadros wrote:

> On 01/11/17 17:45, Alan Stern wrote:
> > On Wed, 1 Nov 2017, Roger Quadros wrote:
> > 
> >>> Roger, would you like to send in a follow-up patch that removes the now 
> >>> unnecessary code from dummy_udc_set_speed() in dummy_hcd.c?
> >>>
> >>
> >> Sure. I have a question though.
> >>
> >> In dummy_udc_set_speed() we should just set gadget.speed to whatever is 
> >> passed in speed.
> >> This will be the maximum supported speed by the gadget function driver.
> > 
> > Following your patch, it will be the maximum speed supported by the 
> > gadget function driver or the maximum speed supported by the UDC 
> > driver, whichever is lower.  That's the whole point of your patch, 
> > right?
> 
> Yes.
> 
> > 
> >> However, is it possible that the gadget will be connected at a lower speed 
> >> than that?
> > 
> > Yes, it is possible to connect at a speed lower than the function 
> > driver's maximum speed.  The connection speed for dummy-hcd is 
> > controlled by a pair of module parameters: is_super_speed and 
> > is_high_speed.
> > 
> >> I see gadget.speed being updated in dummy_hub_control() GetPortStatus: 
> >> case, but not
> >> in case of USB_SPEED_HIGH and USB_SPEED_LOW.
> > 
> > Here's what the code does, in outline form:
> > 
> >     switch (dum_hcd->dum->gadget.speed) {
> >     case USB_SPEED_HIGH:
> >             ...
> >             break;
> >     case USB_SPEED_LOW:
> >             ...
> >             break;
> >     default:
> >             dum_hcd->dum->gadget.speed = USB_SPEED_FULL;
> >             break;
> >     }
> > 
> > In other words, if gadget.speed isn't USB_SPEED_HIGH or USB_SPEED_LOW, 
> > set it to USB_SPEED_FULL.  And this is all under the case where the 
> > connection is USB-2, not USB-3 or higher.
> > 
> > How is this related to the requested change to dummy_udc_set_speed()?
> 
> With or without the requested change to dummy_udc_set_speed() there will
> never be a case when gadget.speed isn't already USB_SPEED_FULL
> if connection is USB-2 and gadget.speed is not USB_SPEED_HIGH or 
> USB_SPEED_LOW.
> 
> So in the above code snippet, default: portion is redundant.
> 
> But that can be fixed in a separate patch.

Ah, I see.  Yes, you can change this too if you want.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to