Skip to content

Commit

Permalink
usb: gadget: fusb300_udc: bug fix of not doing idma reset for each time
Browse files Browse the repository at this point in the history
Enter IDMA_RESET only when the controller has been reset or
the device has been plugged in to or out from a host. In
IDMA_RESET, we should disable the corresponding PRD interrupt.
Also there is a redundant space eliminated.

fusb300_udc driver is tested on FARADAY platform a369 with
FUSB300 FPGA v1.8

Signed-off-by: Yuan-Hsin Chen <yhchen@faraday-tech.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
  • Loading branch information
Yuan-Hsin Chen authored and Felipe Balbi committed Apr 2, 2013
1 parent 9770a16 commit 1cb5e9e
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions drivers/usb/gadget/fusb300_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -930,12 +930,15 @@ static void fusb300_wait_idma_finished(struct fusb300_ep *ep)

fusb300_clear_int(ep->fusb300, FUSB300_OFFSET_IGR0,
FUSB300_IGR0_EPn_PRD_INT(ep->epnum));
return;

IDMA_RESET:
fusb300_clear_int(ep->fusb300, FUSB300_OFFSET_IGER0,
FUSB300_IGER0_EEPn_PRD_INT(ep->epnum));
reg = ioread32(ep->fusb300->reg + FUSB300_OFFSET_IGER0);
reg &= ~FUSB300_IGER0_EEPn_PRD_INT(ep->epnum);
iowrite32(reg, ep->fusb300->reg + FUSB300_OFFSET_IGER0);
}

static void fusb300_set_idma(struct fusb300_ep *ep,
static void fusb300_set_idma(struct fusb300_ep *ep,
struct fusb300_request *req)
{
int ret;
Expand Down

0 comments on commit 1cb5e9e

Please sign in to comment.