Commit bc6fbf59 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Felipe Balbi

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: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 2cc97197
...@@ -489,7 +489,7 @@ static int usbhsg_ep_enable(struct usb_ep *ep, ...@@ -489,7 +489,7 @@ static int usbhsg_ep_enable(struct usb_ep *ep,
pipe->mod_private = uep; pipe->mod_private = uep;
/* set epnum / maxp */ /* set epnum / maxp */
usbhs_pipe_config_update(pipe, usbhs_pipe_config_update(pipe, 0,
usb_endpoint_num(desc), usb_endpoint_num(desc),
usb_endpoint_maxp(desc)); usb_endpoint_maxp(desc));
...@@ -672,7 +672,7 @@ static int usbhsg_try_start(struct usbhs_priv *priv, u32 status) ...@@ -672,7 +672,7 @@ static int usbhsg_try_start(struct usbhs_priv *priv, u32 status)
/* dcp init */ /* dcp init */
dcp->pipe = usbhs_dcp_malloc(priv); dcp->pipe = usbhs_dcp_malloc(priv);
dcp->pipe->mod_private = dcp; 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 * system config enble
......
...@@ -418,14 +418,26 @@ static u16 usbhsp_setup_pipebuff(struct usbhs_pipe *pipe) ...@@ -418,14 +418,26 @@ static u16 usbhsp_setup_pipebuff(struct usbhs_pipe *pipe)
(0xff & bufnmb) << 0; (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); usbhsp_pipe_barrier(pipe);
pipe->maxp = maxp; pipe->maxp = maxp;
usbhsp_pipe_select(pipe); 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)) if (!usbhs_pipe_is_dcp(pipe))
usbhsp_pipe_cfg_set(pipe, 0x000F, epnum); usbhsp_pipe_cfg_set(pipe, 0x000F, epnum);
......
...@@ -91,7 +91,8 @@ void usbhs_pipe_enable(struct usbhs_pipe *pipe); ...@@ -91,7 +91,8 @@ void usbhs_pipe_enable(struct usbhs_pipe *pipe);
void usbhs_pipe_disable(struct usbhs_pipe *pipe); void usbhs_pipe_disable(struct usbhs_pipe *pipe);
void usbhs_pipe_stall(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_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_to_priv(p) ((p)->priv)
#define usbhs_pipe_number(p) (int)((p) - (p)->priv->pipe_info.pipe) #define usbhs_pipe_number(p) (int)((p) - (p)->priv->pipe_info.pipe)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment