Thread (8 messages) 8 messages, 4 authors, 2023-03-30

Re: [PATCH v2] iommu/rockchip: Add missing set_platform_dma_ops callback

From: Jason Gunthorpe <jgg@ziepe.ca>
Date: 2023-03-27 15:27:02
Also in: linux-iommu, linux-rockchip, lkml

On Mon, Mar 27, 2023 at 03:35:04PM +0100, John Keeping wrote:
On Fri, Mar 24, 2023 at 11:11:27AM +0000, Steven Price wrote:
quoted
Similar to exynos, we need a set_platform_dma_ops() callback for proper
operation on ARM 32 bit after recent changes in the IOMMU framework
(detach ops removal). But also the use of a NULL domain is confusing.

Rework the code to have a singleton rk_identity_domain which is assigned
to domain when using an identity mapping rather than "detaching". This
makes the code easier to reason about.

Signed-off-by: Steven Price <steven.price@arm.com>
---
Changes since v1[1]:

 * Reworked the code to avoid a NULL domain, instead a singleton
   rk_identity_domain is used instead. The 'detach' language is no
   longer used.

[1] https://lore.kernel.org/r/20230315164152.333251-1-steven.price%40arm.com

 drivers/iommu/rockchip-iommu.c | 50 ++++++++++++++++++++++++++--------
 1 file changed, 39 insertions(+), 11 deletions(-)
diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c
index f30db22ea5d7..437541004994 100644
--- a/drivers/iommu/rockchip-iommu.c
+++ b/drivers/iommu/rockchip-iommu.c
[snip]
quoted
+static struct iommu_domain rk_identity_domain = {
+	.type = IOMMU_DOMAIN_IDENTITY,
+	.ops = &rk_identity_ops,
+};
+
+#ifdef CONFIG_ARM
Is this #ifdef needed?  I can't see anything ARM-specific about this
function or .set_platform_dma_ops.
set_platform_dma_ops is never called on ARM64.
Not shown in the patch are the pm_runtime hooks.  Do they need to
change like this?
Most likely yes

Jason

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help