diff options
author | Elen Song <elen.song@atmel.com> | 2013-05-10 11:00:50 +0800 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2013-07-05 11:40:30 +0530 |
commit | d088c33b646e9f3564eea7a057a2cb697c18bcd0 (patch) | |
tree | 297d676a700dad9089b642d80c5823f0a97cd7c1 /drivers/dma/at_hdmac.c | |
parent | 6c22770f644bf23aecc11fedd7b305488a861bfc (diff) | |
download | blackbird-op-linux-d088c33b646e9f3564eea7a057a2cb697c18bcd0.tar.gz blackbird-op-linux-d088c33b646e9f3564eea7a057a2cb697c18bcd0.zip |
DMA: AT91: Get transfer width
In one dma transfer, the data transfer width can be configured and it is limited by source or destination peripheral width,
tx_width will save the transfer width, but for memcpy, either source or destination transfer width is taken as tx_width.
Signed-off-by: Elen Song <elen.song@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/at_hdmac.c')
-rw-r--r-- | drivers/dma/at_hdmac.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index 9e1ad73a78cf..4c101a9dd3cb 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c @@ -615,6 +615,7 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, /* First descriptor of the chain embedds additional information */ first->txd.cookie = -EBUSY; first->len = len; + first->tx_width = src_width; /* set end-of-link to the last link descriptor of list*/ set_desc_eol(desc); @@ -761,6 +762,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, /* First descriptor of the chain embedds additional information */ first->txd.cookie = -EBUSY; first->len = total_len; + first->tx_width = reg_width; /* first link descriptor of list is responsible of flags */ first->txd.flags = flags; /* client is in control of this ack */ @@ -919,6 +921,7 @@ atc_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len, /* First descriptor of the chain embedds additional information */ first->txd.cookie = -EBUSY; first->len = buf_len; + first->tx_width = reg_width; return &first->txd; |