Thread (8 messages) 8 messages, 3 authors, 2016-02-24

Re: [PATCH 1/2] drm/tegra: Set DMA ops

From: Alexandre Courbot <hidden>
Date: 2016-02-24 08:31:05
Also in: dri-devel, lkml

On 02/24/2016 12:28 AM, Thierry Reding wrote:
* PGP Signed by an unknown key

On Tue, Feb 23, 2016 at 03:25:53PM +0900, Alexandre Courbot wrote:
quoted
The current settings leaves the DRM device's dma_ops field NULL, which
makes it use the dummy DMA ops on arm64 and return an error whenever we
try to import a buffer. Call of_dma_configure() with a NULL node (since
the device is not spawn from the device tree) so that
arch_setup_dma_ops() is called and sets the default ioswtlb DMA ops.

Signed-off-by: Alexandre Courbot <redacted>
---
  drivers/gpu/drm/tegra/drm.c | 2 ++
  1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index d347188bf8f4..bc0555adecaf 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -9,6 +9,7 @@

  #include <linux/host1x.h>
  #include <linux/iommu.h>
+#include <linux/of_device.h>

  #include <drm/drm_atomic.h>
  #include <drm/drm_atomic_helper.h>
@@ -990,6 +991,7 @@ static int host1x_drm_probe(struct host1x_device *dev)
  		return -ENOMEM;

  	dev_set_drvdata(&dev->dev, drm);
+	of_dma_configure(drm->dev, NULL);
Looking at the various pieces, I think this really belongs in
host1x_device_add() (see drivers/gpu/host1x/bus.c) where it can replace
the open-coded setting of DMA and coherent DMA masks. Also why can't we
pass the correct device tree node here? The DRM device is a virtual
device that hangs off the host1x device, so I think it could use the
same device tree node as the host1x device.

Something like the below (untested).
You're right, that looks like a much better place to do this. 
of_dma_configure() is called at the bus level (platform and PCI), so it 
makes sense to do it from host1x too.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help