diff options
Diffstat (limited to 'drivers/usb/renesas_usbhs/pipe.c')
| -rw-r--r-- | drivers/usb/renesas_usbhs/pipe.c | 24 | 
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/usb/renesas_usbhs/pipe.c b/drivers/usb/renesas_usbhs/pipe.c index 7926e1c700f1..040bcefcb040 100644 --- a/drivers/usb/renesas_usbhs/pipe.c +++ b/drivers/usb/renesas_usbhs/pipe.c @@ -578,6 +578,19 @@ int usbhs_pipe_is_dir_host(struct usbhs_pipe *pipe)  	return usbhsp_flags_has(pipe, IS_DIR_HOST);  } +int usbhs_pipe_is_running(struct usbhs_pipe *pipe) +{ +	return usbhsp_flags_has(pipe, IS_RUNNING); +} + +void usbhs_pipe_running(struct usbhs_pipe *pipe, int running) +{ +	if (running) +		usbhsp_flags_set(pipe, IS_RUNNING); +	else +		usbhsp_flags_clr(pipe, IS_RUNNING); +} +  void usbhs_pipe_data_sequence(struct usbhs_pipe *pipe, int sequence)  {  	u16 mask = (SQCLR | SQSET); @@ -640,6 +653,11 @@ static struct usbhs_pipe *usbhsp_get_pipe(struct usbhs_priv *priv, u32 type)  	return pipe;  } +static void usbhsp_put_pipe(struct usbhs_pipe *pipe) +{ +	usbhsp_flags_init(pipe); +} +  void usbhs_pipe_init(struct usbhs_priv *priv,  		     int (*dma_map_ctrl)(struct usbhs_pkt *pkt, int map))  { @@ -710,6 +728,7 @@ struct usbhs_pipe *usbhs_pipe_malloc(struct usbhs_priv *priv,  	usbhsp_pipe_select(pipe);  	usbhsp_pipe_cfg_set(pipe, 0xFFFF, pipecfg);  	usbhsp_pipe_buf_set(pipe, 0xFFFF, pipebuf); +	usbhs_pipe_clear(pipe);  	usbhs_pipe_sequence_data0(pipe); @@ -726,6 +745,11 @@ struct usbhs_pipe *usbhs_pipe_malloc(struct usbhs_priv *priv,  	return pipe;  } +void usbhs_pipe_free(struct usbhs_pipe *pipe) +{ +	usbhsp_put_pipe(pipe); +} +  void usbhs_pipe_select_fifo(struct usbhs_pipe *pipe, struct usbhs_fifo *fifo)  {  	if (pipe->fifo)  |