diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c index f85b9b932a4f4030d73f4a1ad6bd68c04eebf3a5..170a80e4fe46064713f91d5d919018763405ef88 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -2718,8 +2718,18 @@ vchiq_register_child(struct platform_device *pdev, const char *name) child->dev.of_node = np; + /* + * We want the dma-ranges etc to be copied from the parent VCHIQ device + * to be passed on to the children without a node of their own. + */ + 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; }