dmaengine: idma64: Update bytes_transferred field
Subsystems (2)
PATCH 1/1 dmaengine: idma64: Update bytes_transferred field
From: Aman Kumar <[email protected]>
Currently when 8250 data transfer is done, bytes_tranferred always returns 0 at /sys/devices/pci0000\:\:**.*/dma/dma*chan*/bytes_transferred. In many cases it gives false impression that data is not being trasferred via DMA.
So, updating the bytes_transferred field to count the bytes whenever there is data transfer using idma64.
--- drivers/dma/idma64.c | 4 ++++ 1 file changed, 4 insertions(+)
drivers/dma/idma64.c +4 -0
@@ -137,8 +137,11 @@ static void idma64_chan_irq(struct idma64 *idma64, unsigned short c, u32 status_err, u32 status_xfer) {struct idma64_chan *idma64c = &idma64->chan[c]; +struct dma_chan_percpu *stat;struct idma64_desc *desc; + stat =this_cpu_ptr (idma64c->vchan.chan.local); +spin_lock (&idma64c->vchan.lock); desc = idma64c->desc;if (desc) {
@@ -149,6 +152,7 @@ static void idma64_chan_irq(struct idma64 *idma64, unsigned short c,dma_writel (idma64,CLEAR (XFER ), idma64c->mask); desc->status =DMA_COMPLETE ;vchan_cookie_complete (&desc->vdesc); + stat->bytes_transferred += desc->length;idma64_start_transfer (idma64c); }
Signature · 1 line
2.17.1
Quoted 9 lines · On 03-02-23, 17:47, [email protected] wrote:
From: Aman Kumar <[email protected]>
Currently when 8250 data transfer is done,
bytes_tranferredalways returns 0 at /sys/devices/pci0000\:\:**.*/dma/dma*chan*/bytes_transferred. In many cases it gives false impression that data is not being trasferred via DMA.So, updating the
bytes_transferredfield to count the bytes whenever there is data transfer using idma64.
Applied, thanks
Signature · 1 line
~Vinod