bcm27xx: update patches from RPi foundation
[openwrt/staging/luka.git] / target / linux / bcm27xx / patches-5.4 / 950-0429-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch
diff --git a/target/linux/bcm27xx/patches-5.4/950-0429-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch b/target/linux/bcm27xx/patches-5.4/950-0429-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch
new file mode 100644 (file)
index 0000000..7fb3443
--- /dev/null
@@ -0,0 +1,39 @@
+From 9f93264df7a631132f2dacd150d0cc6cb7d20fc4 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Mon, 3 Feb 2020 17:30:46 +0000
+Subject: [PATCH] staging: vchiq_arm: Give vchiq children DT nodes
+
+vchiq kernel clients are now instantiated as platform drivers rather
+than using DT, but the children of the vchiq interface may still
+benefit from access to DT properties. Give them the option of a
+a sub-node of the vchiq parent for configuration and to allow
+them to be disabled.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+---
+ .../staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
++++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+@@ -3190,12 +3190,20 @@ vchiq_register_child(struct platform_dev
+       pdevinfo.id = PLATFORM_DEVID_NONE;
+       pdevinfo.dma_mask = DMA_BIT_MASK(32);
++      np = of_get_child_by_name(pdev->dev.of_node, name);
++
++      /* Skip the child if it is explicitly disabled */
++      if (np && !of_device_is_available(np))
++              return NULL;
++
+       child = platform_device_register_full(&pdevinfo);
+       if (IS_ERR(child)) {
+               dev_warn(&pdev->dev, "%s not registered\n", name);
+               child = NULL;
+       }
++      child->dev.of_node = np;
++
+       /*
+        * We want the dma-ranges etc to be copied from a device with the
+        * correct dma-ranges for the VPU.