Felipe Balbi wrote: > Hi, > > Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> writes: >> @@ -2476,6 +2506,17 @@ static void dwc3_gadget_set_speed(struct usb_gadget *g, >> spin_unlock_irqrestore(&dwc->lock, flags); >> } >> >> +static void dwc3_gadget_set_ssp_rate(struct usb_gadget *g, >> + enum usb_ssp_rate rate) >> +{ >> + struct dwc3 *dwc = gadget_to_dwc(g); >> + unsigned long flags; >> + >> + spin_lock_irqsave(&dwc->lock, flags); >> + dwc->gadget_ssp_rate = rate; >> + spin_unlock_irqrestore(&dwc->lock, flags); >> +} > it would be best to make this return a value. If udc_set_ssp_rate() is > called with invalid rate, UDC can notify core. > The core should know what ssp rate the gadget supports via the gadget->max_ssp_rate capability field. Any rate beyond that is invalid. Is it necessary to have a return value here? This uses the same logic as udc_set_speed() BR, Thinh