usb: gadget: renesas_usbhs: add device select support in usbhs_pipe_config_update()
device select method will be used on mod_host Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
2cc971978c
commit
bc6fbf59df
@ -489,7 +489,7 @@ static int usbhsg_ep_enable(struct usb_ep *ep,
|
||||
pipe->mod_private = uep;
|
||||
|
||||
/* set epnum / maxp */
|
||||
usbhs_pipe_config_update(pipe,
|
||||
usbhs_pipe_config_update(pipe, 0,
|
||||
usb_endpoint_num(desc),
|
||||
usb_endpoint_maxp(desc));
|
||||
|
||||
@ -672,7 +672,7 @@ static int usbhsg_try_start(struct usbhs_priv *priv, u32 status)
|
||||
/* dcp init */
|
||||
dcp->pipe = usbhs_dcp_malloc(priv);
|
||||
dcp->pipe->mod_private = dcp;
|
||||
usbhs_pipe_config_update(dcp->pipe, 0, 64);
|
||||
usbhs_pipe_config_update(dcp->pipe, 0, 0, 64);
|
||||
|
||||
/*
|
||||
* system config enble
|
||||
|
@ -418,14 +418,26 @@ static u16 usbhsp_setup_pipebuff(struct usbhs_pipe *pipe)
|
||||
(0xff & bufnmb) << 0;
|
||||
}
|
||||
|
||||
void usbhs_pipe_config_update(struct usbhs_pipe *pipe, u16 epnum, u16 maxp)
|
||||
void usbhs_pipe_config_update(struct usbhs_pipe *pipe, u16 devsel,
|
||||
u16 epnum, u16 maxp)
|
||||
{
|
||||
if (devsel > 0xA) {
|
||||
struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
|
||||
struct device *dev = usbhs_priv_to_dev(priv);
|
||||
|
||||
dev_err(dev, "devsel error %d\n", devsel);
|
||||
|
||||
devsel = 0;
|
||||
}
|
||||
|
||||
usbhsp_pipe_barrier(pipe);
|
||||
|
||||
pipe->maxp = maxp;
|
||||
|
||||
usbhsp_pipe_select(pipe);
|
||||
usbhsp_pipe_maxp_set(pipe, 0xFFFF, maxp);
|
||||
usbhsp_pipe_maxp_set(pipe, 0xFFFF,
|
||||
(devsel << 12) |
|
||||
maxp);
|
||||
|
||||
if (!usbhs_pipe_is_dcp(pipe))
|
||||
usbhsp_pipe_cfg_set(pipe, 0x000F, epnum);
|
||||
|
@ -91,7 +91,8 @@ void usbhs_pipe_enable(struct usbhs_pipe *pipe);
|
||||
void usbhs_pipe_disable(struct usbhs_pipe *pipe);
|
||||
void usbhs_pipe_stall(struct usbhs_pipe *pipe);
|
||||
void usbhs_pipe_select_fifo(struct usbhs_pipe *pipe, struct usbhs_fifo *fifo);
|
||||
void usbhs_pipe_config_update(struct usbhs_pipe *pipe, u16 epnum, u16 maxp);
|
||||
void usbhs_pipe_config_update(struct usbhs_pipe *pipe, u16 devsel,
|
||||
u16 epnum, u16 maxp);
|
||||
|
||||
#define usbhs_pipe_to_priv(p) ((p)->priv)
|
||||
#define usbhs_pipe_number(p) (int)((p) - (p)->priv->pipe_info.pipe)
|
||||
|
Loading…
Reference in New Issue
Block a user