Felipe Balbi wrote:
Hi,
Thinh Nguyen [off-list ref] writes:
quoted
@@ -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