Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 265086
b: refs/heads/master
c: 0c6ef98
h: refs/heads/master
v: v3
  • Loading branch information
Kuninori Morimoto authored and Felipe Balbi committed Oct 13, 2011
1 parent 51c42e9 commit 9428031
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7fd097e727466cda1b22beca6cb11096b8be88d2
refs/heads/master: 0c6ef985ced753b60ecdc091fa49c3f5fa4a4f79
12 changes: 8 additions & 4 deletions trunk/drivers/usb/renesas_usbhs/fifo.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ static struct usbhs_pkt_handle usbhsf_null_handler = {
};

void usbhs_pkt_push(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt,
struct usbhs_pkt_handle *handler,
void *buf, int len, int zero)
{
struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
Expand All @@ -64,17 +63,22 @@ void usbhs_pkt_push(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt,
/******************** spin lock ********************/
usbhs_lock(priv, flags);

if (!handler) {
if (!pipe->handler) {
dev_err(dev, "no handler function\n");
handler = &usbhsf_null_handler;
pipe->handler = &usbhsf_null_handler;
}

list_del_init(&pkt->node);
list_add_tail(&pkt->node, &pipe->list);

/*
* each pkt must hold own handler.
* because handler might be changed by its situation.
* dma handler -> pio handler.
*/
pkt->pipe = pipe;
pkt->buf = buf;
pkt->handler = handler;
pkt->handler = pipe->handler;
pkt->length = len;
pkt->zero = zero;
pkt->actual = 0;
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/usb/renesas_usbhs/fifo.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ extern struct usbhs_pkt_handle usbhs_fifo_dma_pop_handler;

void usbhs_pkt_init(struct usbhs_pkt *pkt);
void usbhs_pkt_push(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt,
struct usbhs_pkt_handle *handler,
void *buf, int len, int zero);
struct usbhs_pkt *usbhs_pkt_pop(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt);
void usbhs_pkt_start(struct usbhs_pipe *pipe);
Expand Down
14 changes: 6 additions & 8 deletions trunk/drivers/usb/renesas_usbhs/mod_gadget.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ struct usbhsg_uep {
char ep_name[EP_NAME_SIZE];

struct usbhsg_gpriv *gpriv;
struct usbhs_pkt_handle *handler;
};

struct usbhsg_gpriv {
Expand Down Expand Up @@ -139,8 +138,7 @@ static void usbhsg_queue_push(struct usbhsg_uep *uep,

req->actual = 0;
req->status = -EINPROGRESS;
usbhs_pkt_push(pipe, pkt, uep->handler,
req->buf, req->length, req->zero);
usbhs_pkt_push(pipe, pkt, req->buf, req->length, req->zero);

dev_dbg(dev, "pipe %d : queue push (%d)\n",
usbhs_pipe_number(pipe),
Expand Down Expand Up @@ -389,13 +387,13 @@ static int usbhsg_irq_ctrl_stage(struct usbhs_priv *priv,

switch (stage) {
case READ_DATA_STAGE:
dcp->handler = &usbhs_fifo_pio_push_handler;
pipe->handler = &usbhs_fifo_pio_push_handler;
break;
case WRITE_DATA_STAGE:
dcp->handler = &usbhs_fifo_pio_pop_handler;
pipe->handler = &usbhs_fifo_pio_pop_handler;
break;
case NODATA_STATUS_STAGE:
dcp->handler = &usbhs_ctrl_stage_end_handler;
pipe->handler = &usbhs_ctrl_stage_end_handler;
break;
default:
return ret;
Expand Down Expand Up @@ -501,9 +499,9 @@ static int usbhsg_ep_enable(struct usb_ep *ep,
* It will use pio handler if impossible.
*/
if (usb_endpoint_dir_in(desc))
uep->handler = &usbhs_fifo_dma_push_handler;
pipe->handler = &usbhs_fifo_dma_push_handler;
else
uep->handler = &usbhs_fifo_dma_pop_handler;
pipe->handler = &usbhs_fifo_dma_pop_handler;

ret = 0;
}
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/usb/renesas_usbhs/pipe.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ struct usbhs_pipe {
#define USBHS_PIPE_FLAGS_IS_DIR_IN (1 << 1)
#define USBHS_PIPE_FLAGS_IS_DIR_HOST (1 << 2)

struct usbhs_pkt_handle *handler;

void *mod_private;
};

Expand Down

0 comments on commit 9428031

Please sign in to comment.