[PATCH] drm/udl: avoid swiotlb for imported vmap buffers.

Daniel Vetter daniel at ffwll.ch
Wed May 1 01:53:30 PDT 2013


On Wed, May 1, 2013 at 6:30 AM, Dave Airlie <airlied at gmail.com> wrote:
> Since we ask the dmabuf owner to map the dma-buf into our device
> address space, but for udl at present that is the CPU address space,
> since we don't DMA directly from the mapped buffer.
>
> However if we don't set a dma mask on the usb device, the mapping
> ends up using swiotlb on machines that have it enabled, which
> is less than desireable.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>

Fyi for everyone else who was not on irc when Dave&I discussed this:
This really shouldn't be required and I think the real issue is that
udl creates a dma_buf attachement (which is needed for device dma
only), but only really wants to do cpu access through vmap/kmap. So
not attached the device should be good enough. Cc'ing a few more lists
for better fyi ;-)
-Daniel

> ---
>  drivers/gpu/drm/udl/udl_main.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/udl/udl_main.c b/drivers/gpu/drm/udl/udl_main.c
> index 0ce2d71..6770e1b 100644
> --- a/drivers/gpu/drm/udl/udl_main.c
> +++ b/drivers/gpu/drm/udl/udl_main.c
> @@ -293,6 +293,7 @@ int udl_driver_load(struct drm_device *dev, unsigned long flags)
>         udl->ddev = dev;
>         dev->dev_private = udl;
>
> +       dma_set_mask(dev->dev, DMA_BIT_MASK(64));
>         if (!udl_parse_vendor_descriptor(dev, dev->usbdev)) {
>                 DRM_ERROR("firmware not recognized. Assume incompatible device\n");
>                 goto err;
> --
> 1.8.2
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel



--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list