diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2021-05-18 13:43:23 +0300 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2021-05-31 07:20:39 +0300 |
commit | 66fde1794ffd075c1b2026d8956f667704c76920 (patch) | |
tree | 40454b1ea842fd043850ecff0e5021116fe5d175 /drivers/dma/hsu | |
parent | acfbb1911dc907f5f2f1096e88feeaff433bba81 (diff) | |
download | linux-66fde1794ffd075c1b2026d8956f667704c76920.tar.xz |
dmaengine: hsu: Account transferred bytes
Bump statistics for transferred bytes at the event of the successful transfer.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210518104323.37632-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/hsu')
-rw-r--r-- | drivers/dma/hsu/hsu.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/dma/hsu/hsu.c b/drivers/dma/hsu/hsu.c index 025d8ad5a63c..92caae55aece 100644 --- a/drivers/dma/hsu/hsu.c +++ b/drivers/dma/hsu/hsu.c @@ -201,6 +201,7 @@ EXPORT_SYMBOL_GPL(hsu_dma_get_status); */ int hsu_dma_do_irq(struct hsu_dma_chip *chip, unsigned short nr, u32 status) { + struct dma_chan_percpu *stat; struct hsu_dma_chan *hsuc; struct hsu_dma_desc *desc; unsigned long flags; @@ -210,6 +211,7 @@ int hsu_dma_do_irq(struct hsu_dma_chip *chip, unsigned short nr, u32 status) return 0; hsuc = &chip->hsu->chan[nr]; + stat = this_cpu_ptr(hsuc->vchan.chan.local); spin_lock_irqsave(&hsuc->vchan.lock, flags); desc = hsuc->desc; @@ -221,6 +223,7 @@ int hsu_dma_do_irq(struct hsu_dma_chip *chip, unsigned short nr, u32 status) } else { vchan_cookie_complete(&desc->vdesc); desc->status = DMA_COMPLETE; + stat->bytes_transferred += desc->length; hsu_dma_start_transfer(hsuc); } } |