i2c: tegra: Allocate DMA memory for DMA engine
authorThierry Reding <treding@nvidia.com>
Thu, 20 Oct 2022 14:39:33 +0000 (16:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Nov 2022 08:24:31 +0000 (09:24 +0100)
commitb432581f19a0241102ca7230e77f576271837fb7
treeebf8c20e91aeab752254919f8841efef1e002b09
parent7b0ae4c7b91817cc38299b9dd8db87803ed98141
i2c: tegra: Allocate DMA memory for DMA engine

[ Upstream commit cdbf26251d3b35c4ccaea0c3a6de4318f727d3d2 ]

When the I2C controllers are running in DMA mode, it is the DMA engine
that performs the memory accesses rather than the I2C controller. Pass
the DMA engine's struct device pointer to the DMA API to make sure the
correct DMA operations are used.

This fixes an issue where the DMA engine's SMMU stream ID needs to be
misleadingly set for the I2C controllers in device tree.

Suggested-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-tegra.c