dmaengine: xilinx: dpdma: Limit descriptor IDs to 16 bits
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Thu, 20 May 2021 15:24:20 +0000 (18:24 +0300)
committerSasha Levin <sashal@kernel.org>
Wed, 30 Jun 2021 12:47:19 +0000 (08:47 -0400)
commitb671b98169821836f12d646c85aafd6968a331a3
tree09d769c49e1ee3a8a30cf8f502ba767e95828de9
parent524f70b30ef811ca82ebf36fd148bf2796454314
dmaengine: xilinx: dpdma: Limit descriptor IDs to 16 bits

[ Upstream commit 9f007e7b6643799e2a6538a5fe04f51c371c6657 ]

While the descriptor ID is stored in a 32-bit field in the hardware
descriptor, only 16 bits are used by the hardware and are reported
through the XILINX_DPDMA_CH_DESC_ID register. Failure to handle the
wrap-around results in a descriptor ID mismatch after 65536 frames. Fix
it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Jianqiang Chen <jianqiang.chen@xilinx.com>
Reviewed-by: Jianqiang Chen <jianqiang.chen@xilinx.com>
Link: https://lore.kernel.org/r/20210520152420.23986-5-laurent.pinchart@ideasonboard.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dma/xilinx/xilinx_dpdma.c