Re: [RFC PATCH] xen/gntdev: Stop abusing DT of_dma_configure API

From: Nicolas Saenz Julienne
Date: Thu Sep 26 2019 - 05:06:37 EST


On Wed, 2019-09-25 at 16:50 -0500, Rob Herring wrote:
> As the comment says, this isn't a DT based device. of_dma_configure()
> is going to stop allowing a NULL DT node, so this needs to be fixed.
>
> Not sure exactly what setup besides arch_setup_dma_ops is needed...
>
> Cc: Robin Murphy <robin.murphy@xxxxxxx>
> Cc: Julien Grall <julien.grall@xxxxxxx>
> Cc: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx>
> Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx>
> Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
> Cc: Juergen Gross <jgross@xxxxxxxx>
> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>

Just so it isn't forgotten, the same applies here:

diff --git a/drivers/gpu/drm/xen/xen_drm_front.c
b/drivers/gpu/drm/xen/xen_drm_front.c
index ba1828acd8c9..de316a891f39 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -11,7 +11,6 @@
#include <linux/delay.h>
#include <linux/dma-mapping.h>
#include <linux/module.h>
-#include <linux/of_device.h>

#include <drm/drm_atomic_helper.h>
#include <drm/drm_drv.h>
@@ -718,19 +717,7 @@ static int xen_drv_probe(struct xenbus_device *xb_dev,
struct device *dev = &xb_dev->dev;
int ret;

- /*
- * The device is not spawn from a device tree, so arch_setup_dma_ops
- * is not called, thus leaving the device with dummy DMA ops.
- * This makes the device return error on PRIME buffer import, which
- * is not correct: to fix this call of_dma_configure() with a NULL
- * node to set default DMA ops.
- */
dev->coherent_dma_mask = DMA_BIT_MASK(32);
- ret = of_dma_configure(dev, NULL, true);
- if (ret < 0) {
- DRM_ERROR("Cannot setup DMA ops, ret %d", ret);
- return ret;
- }

front_info = devm_kzalloc(&xb_dev->dev,
sizeof(*front_info), GFP_KERNEL);

Attachment: signature.asc
Description: This is a digitally signed message part