Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1631731 > unrolled thread

[RFC PATCHv2 0/3] dma_buf import support for vgem

Started byLaura Abbott <labbott@redhat.com>
First post2017-04-26 23:20 +0200
Last post2017-04-27 09:50 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [RFC PATCHv2 0/3] dma_buf import support for vgem Laura Abbott <labbott@redhat.com> - 2017-04-26 23:20 +0200
    [RFC PATCHv2 1/3] drm/vgem: Add a dummy platform device Laura Abbott <labbott@redhat.com> - 2017-04-26 23:20 +0200
    Re: [RFC PATCHv2 0/3] dma_buf import support for vgem Chris Wilson <chris@chris-wilson.co.uk> - 2017-04-27 09:50 +0200

#1631731 — [RFC PATCHv2 0/3] dma_buf import support for vgem

FromLaura Abbott <labbott@redhat.com>
Date2017-04-26 23:20 +0200
Subject[RFC PATCHv2 0/3] dma_buf import support for vgem
Message-ID<tACvT-7Jf-7@gated-at.bofh.it>
Hi,

This is v2 of my proposal to add dma_buf import functions for vgem.
Big changes from v1:

- A device is required for dma_buf attach to work. The existing vgem driver
intentionally does not use one as it provides a good way to test the DRM
framework. This approach instead puts a dummy platform device in the existing
drm_device->platformdev field and uses that for attaching.
- Native vgem buffers can still be faulted in a page at a time without
requiring the entire buffer be resident in memory.

I'm still marking this as RFC as I haven't had a chance to finish
a userspace test that can be integrated into igt.

Feedback appreciated as always.

Thanks,
Laura

Laura Abbott (3):
  drm/vgem: Add a dummy platform device
  drm/prime: Introduce drm_gem_prime_import_platform
  drm/vgem: Enable dmabuf import interfaces

 drivers/gpu/drm/drm_prime.c     |  23 +++++-
 drivers/gpu/drm/vgem/vgem_drv.c | 150 +++++++++++++++++++++++++++++++---------
 drivers/gpu/drm/vgem/vgem_drv.h |   2 +
 include/drm/drmP.h              |   5 ++
 4 files changed, 145 insertions(+), 35 deletions(-)

-- 
2.7.4

[toc] | [next] | [standalone]


#1631733 — [RFC PATCHv2 1/3] drm/vgem: Add a dummy platform device

FromLaura Abbott <labbott@redhat.com>
Date2017-04-26 23:20 +0200
Subject[RFC PATCHv2 1/3] drm/vgem: Add a dummy platform device
Message-ID<tACvT-7Jf-17@gated-at.bofh.it>
In reply to#1631731
The vgem driver is currently registered independent of any actual
device. Some usage of the dmabuf APIs require an actual device structure
to do anything. Register a dummy platform device for use with dmabuf.

Signed-off-by: Laura Abbott <labbott@redhat.com>
---
v2: Store the platform device in the platformdev field instead of the
regular device structure.
---
 drivers/gpu/drm/vgem/vgem_drv.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
index a1f42d1..1b02e56 100644
--- a/drivers/gpu/drm/vgem/vgem_drv.c
+++ b/drivers/gpu/drm/vgem/vgem_drv.c
@@ -335,11 +335,20 @@ static int __init vgem_init(void)
 	int ret;
 
 	vgem_device = drm_dev_alloc(&vgem_driver, NULL);
-	if (IS_ERR(vgem_device)) {
-		ret = PTR_ERR(vgem_device);
+	if (IS_ERR(vgem_device))
+		return PTR_ERR(vgem_device);
+
+	vgem_device->platformdev = platform_device_register_simple("vgem",
+					-1, NULL, 0);
+
+	if (!vgem_device->platformdev) {
+		ret = -ENODEV;
 		goto out;
 	}
 
+	dma_coerce_mask_and_coherent(&vgem_device->platformdev->dev,
+					DMA_BIT_MASK(64));
+
 	ret  = drm_dev_register(vgem_device, 0);
 	if (ret)
 		goto out_unref;
@@ -347,13 +356,15 @@ static int __init vgem_init(void)
 	return 0;
 
 out_unref:
-	drm_dev_unref(vgem_device);
+	platform_device_unregister(vgem_device->platformdev);
 out:
+	drm_dev_unref(vgem_device);
 	return ret;
 }
 
 static void __exit vgem_exit(void)
 {
+	platform_device_unregister(vgem_device->platformdev);
 	drm_dev_unregister(vgem_device);
 	drm_dev_unref(vgem_device);
 }
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1631928

FromChris Wilson <chris@chris-wilson.co.uk>
Date2017-04-27 09:50 +0200
Message-ID<tAMlA-5Ov-9@gated-at.bofh.it>
In reply to#1631731
On Wed, Apr 26, 2017 at 02:12:27PM -0700, Laura Abbott wrote:
> Hi,
> 
> This is v2 of my proposal to add dma_buf import functions for vgem.
> Big changes from v1:
> 
> - A device is required for dma_buf attach to work. The existing vgem driver
> intentionally does not use one as it provides a good way to test the DRM
> framework. This approach instead puts a dummy platform device in the existing
> drm_device->platformdev field and uses that for attaching.
> - Native vgem buffers can still be faulted in a page at a time without
> requiring the entire buffer be resident in memory.
> 
> I'm still marking this as RFC as I haven't had a chance to finish
> a userspace test that can be integrated into igt.

Note, that it will be good to cc:intel-gfx@ so that our CI does run it
over the existing vgem tests.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web