You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.7 KiB
Diff
52 lines
1.7 KiB
Diff
From 6aa74a52e014952b1a144def670a03a7deb0e112 Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
|
Date: Tue, 18 Jun 2019 12:15:50 +0100
|
|
Subject: [PATCH] staging: vchiq: Use the old dma controller for OF
|
|
config on platform devices
|
|
|
|
vchiq on Pi4 is no longer under the soc node, therefore it
|
|
doesn't get the dma-ranges for the VPU.
|
|
|
|
Switch to using the configuration of the old dma controller as
|
|
that will set the dma-ranges correctly.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
|
---
|
|
.../interface/vchiq_arm/vchiq_arm.c | 17 ++++++++++++++---
|
|
1 file changed, 14 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
|
|
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
|
|
@@ -3181,6 +3181,7 @@ vchiq_register_child(struct platform_dev
|
|
{
|
|
struct platform_device_info pdevinfo;
|
|
struct platform_device *child;
|
|
+ struct device_node *np;
|
|
|
|
memset(&pdevinfo, 0, sizeof(pdevinfo));
|
|
|
|
@@ -3196,10 +3197,20 @@ vchiq_register_child(struct platform_dev
|
|
}
|
|
|
|
/*
|
|
- * We want the dma-ranges etc to be copied from the parent VCHIQ device
|
|
- * to be passed on to the children too.
|
|
+ * We want the dma-ranges etc to be copied from a device with the
|
|
+ * correct dma-ranges for the VPU.
|
|
+ * VCHIQ on Pi4 is now under scb which doesn't get those dma-ranges.
|
|
+ * Take the "dma" node as going to be suitable as it sees the world
|
|
+ * through the same eyes as the VPU.
|
|
*/
|
|
- of_dma_configure(&new_dev->dev, pdev->dev.of_node, true);
|
|
+ np = of_find_node_by_path("dma");
|
|
+ if (!np)
|
|
+ np = pdev->dev.of_node;
|
|
+
|
|
+ of_dma_configure(&child->dev, np, true);
|
|
+
|
|
+ if (np != pdev->dev.of_node)
|
|
+ of_node_put(np);
|
|
|
|
return child;
|
|
}
|