Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 018c968d authored by Sricharan R's avatar Sricharan R Committed by Greg Kroah-Hartman
Browse files

dmaengine: qcom: bam_dma: Fix completed descriptors count

commit f6034225442c4a87906d36e975fd9e99a8f95487 upstream.

One space is left unused in circular FIFO to differentiate
'full' and 'empty' cases. So take that in to account while
counting for the descriptors completed.

Fixes the issue reported here,
	https://lkml.org/lkml/2019/6/18/669



Cc: stable@vger.kernel.org
Reported-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: default avatarSricharan R <sricharan@codeaurora.org>
Tested-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 870de149
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -808,6 +808,9 @@ static u32 process_channel_irqs(struct bam_device *bdev)
		/* Number of bytes available to read */
		avail = CIRC_CNT(offset, bchan->head, MAX_DESCRIPTORS + 1);

		if (offset < bchan->head)
			avail--;

		list_for_each_entry_safe(async_desc, tmp,
					 &bchan->desc_list, desc_node) {
			/* Not enough data to read */