usb: renesas_usbhs: Modify ep.caps.type_xxx and usb_ep_maxpacket_limit()
This patch modifies the ep.caps.type_{iso,bulk,int} setting and the second argument of usb_ep_maxpacket_limit() using the dparam.pipe_configs. In the previous code, all the type_{iso,bulk,int} were set to true. However, to avoid waste time for finding suitable pipe in usb_ep_enable(), this driver should set correct type. Also the second argument of usb_ep_maxpacket_limit() was set to 512 even if the pipe is isochronous or interrupt. So, this driver could not bind a gadget driver like the g_audio driver. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
51f141a97a
commit
64c5f48b10
|
@ -1042,6 +1042,8 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
|
|||
struct usbhsg_gpriv *gpriv;
|
||||
struct usbhsg_uep *uep;
|
||||
struct device *dev = usbhs_priv_to_dev(priv);
|
||||
struct renesas_usbhs_driver_pipe_config *pipe_configs =
|
||||
usbhs_get_dparam(priv, pipe_configs);
|
||||
int pipe_size = usbhs_get_dparam(priv, pipe_size);
|
||||
int i;
|
||||
int ret;
|
||||
|
@ -1111,13 +1113,16 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
|
|||
gpriv->gadget.ep0 = &uep->ep;
|
||||
usb_ep_set_maxpacket_limit(&uep->ep, 64);
|
||||
uep->ep.caps.type_control = true;
|
||||
}
|
||||
} else {
|
||||
/* init normal pipe */
|
||||
else {
|
||||
usb_ep_set_maxpacket_limit(&uep->ep, 512);
|
||||
if (pipe_configs[i].type == USB_ENDPOINT_XFER_ISOC)
|
||||
uep->ep.caps.type_iso = true;
|
||||
if (pipe_configs[i].type == USB_ENDPOINT_XFER_BULK)
|
||||
uep->ep.caps.type_bulk = true;
|
||||
if (pipe_configs[i].type == USB_ENDPOINT_XFER_INT)
|
||||
uep->ep.caps.type_int = true;
|
||||
usb_ep_set_maxpacket_limit(&uep->ep,
|
||||
pipe_configs[i].bufsize);
|
||||
list_add_tail(&uep->ep.ep_list, &gpriv->gadget.ep_list);
|
||||
}
|
||||
uep->ep.caps.dir_in = true;
|
||||
|
|
Loading…
Reference in New Issue