Skip to content

Commit

Permalink
staging: octeon-usb: program DMA engine based on transfer direction
Browse files Browse the repository at this point in the history
Program DMA engine based on transfer direction. We are only transferring
to one direction at a time.

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Aaro Koskinen authored and Greg Kroah-Hartman committed Mar 24, 2015
1 parent af8e4c7 commit d712648
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions drivers/staging/octeon-usb/octeon-hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1636,8 +1636,9 @@ static void cvmx_usb_start_channel(struct cvmx_usb_state *usb, int channel,
usbc_haintmsk.u32);
}

/* Setup the locations the DMA engines use */
/* Setup the location the DMA engine uses. */
{
uint64_t reg;
uint64_t dma_address = transaction->buffer +
transaction->actual_bytes;

Expand All @@ -1646,12 +1647,11 @@ static void cvmx_usb_start_channel(struct cvmx_usb_state *usb, int channel,
transaction->iso_packets[0].offset +
transaction->actual_bytes;

cvmx_write64_uint64(CVMX_USBNX_DMA0_OUTB_CHN0(usb->index) +
channel * 8,
dma_address);
cvmx_write64_uint64(CVMX_USBNX_DMA0_INB_CHN0(usb->index) +
channel * 8,
dma_address);
if (pipe->transfer_dir == CVMX_USB_DIRECTION_OUT)
reg = CVMX_USBNX_DMA0_OUTB_CHN0(usb->index);
else
reg = CVMX_USBNX_DMA0_INB_CHN0(usb->index);
cvmx_write64_uint64(reg + channel * 8, dma_address);
}

/* Setup both the size of the transfer and the SPLIT characteristics */
Expand Down

0 comments on commit d712648

Please sign in to comment.