diff mbox

[v17,0/6] drm/i915/gvt: Dma-buf support for GVT-g

Message ID 237F54289DF84E4997F34151298ABEBC7C62C124@SHSMSX101.ccr.corp.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Zhang, Tina Nov. 9, 2017, 11:27 p.m. UTC
And here is the "git diff" of (git://git.kraxel.org/qemu), which is used to test this version:



Thanks.

BR,
Tina

> -----Original Message-----
> From: Zhang, Tina
> Sent: Friday, November 10, 2017 7:20 AM
> To: 'Gerd Hoffmann' <kraxel@redhat.com>
> Cc: Tian, Kevin <kevin.tian@intel.com>; linux-kernel@vger.kernel.org; intel-
> gfx@lists.freedesktop.org; joonas.lahtinen@linux.intel.com;
> kwankhede@nvidia.com; zhenyuw@linux.intel.com; chris@chris-wilson.co.uk;
> alex.williamson@redhat.com; Lv, Zhiyuan <zhiyuan.lv@intel.com>;
> daniel@ffwll.ch; Yuan, Hang <hang.yuan@intel.com>; intel-gvt-
> dev@lists.freedesktop.org; Wang, Zhi A <zhi.a.wang@intel.com>
> Subject: RE: [PATCH v17 0/6] drm/i915/gvt: Dma-buf support for GVT-g
> 
> 
> 
> > -----Original Message-----
> > From: intel-gvt-dev
> > [mailto:intel-gvt-dev-bounces@lists.freedesktop.org] On Behalf Of Gerd
> > Hoffmann
> > Sent: Thursday, November 9, 2017 10:10 PM
> > To: Zhang, Tina <tina.zhang@intel.com>
> > Cc: Tian, Kevin <kevin.tian@intel.com>; linux-kernel@vger.kernel.org;
> > intel- gfx@lists.freedesktop.org; joonas.lahtinen@linux.intel.com;
> > kwankhede@nvidia.com; zhenyuw@linux.intel.com;
> > chris@chris-wilson.co.uk; alex.williamson@redhat.com; Lv, Zhiyuan
> > <zhiyuan.lv@intel.com>; daniel@ffwll.ch; Yuan, Hang
> > <hang.yuan@intel.com>; intel-gvt- dev@lists.freedesktop.org; Wang, Zhi
> > A <zhi.a.wang@intel.com>
> > Subject: Re: [PATCH v17 0/6] drm/i915/gvt: Dma-buf support for GVT-g
> >
> > On Thu, Nov 09, 2017 at 05:33:56PM +0800, Tina Zhang wrote:
> > > v16->v17:
> > > 1) modify VFIO_DEVICE_GET_GFX_DMABUF interface. (Alex)
> > > 2) add comments for x_hot/y_hot. (Gerd)
> >
> > Hmm, doesn't apply cleanly here.
> > Tried 4.14-rc8 + gem proxy v2 + this series.
> > Seems the patches depend on unmerged gvt changes.
> > Do you have a git branch somewhere?
> Please use this:
> https://github.com/intel/gvt-linux.git
> branch: topic/dmabuf
> Thanks.
> 
> BR,
> Tina
> >
> > thanks,
> >   Gerd
> >
> > _______________________________________________
> > intel-gvt-dev mailing list
> > intel-gvt-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev
diff mbox

Patch

diff --git a/hw/vfio/display.c b/hw/vfio/display.c
index 1cdc926..06234b2 100644
--- a/hw/vfio/display.c
+++ b/hw/vfio/display.c
@@ -36,7 +36,7 @@  static VFIODMABuf *vfio_display_get_dmabuf(VFIOPCIDevice *vdev,
                                            uint32_t plane_type)
 {
     struct vfio_device_gfx_plane_info plane;
-    struct vfio_device_gfx_dmabuf_fd gfd;
+    int dmabuf_fd;
     VFIODMABuf *dmabuf;
     static int errcnt;
     int ret;
@@ -84,11 +84,10 @@  static VFIODMABuf *vfio_display_get_dmabuf(VFIOPCIDevice *vdev,
         }
     }

-    memset(&gfd, 0, sizeof(gfd));
-    gfd.argsz = sizeof(gfd);
-    gfd.dmabuf_id = plane.dmabuf_id;
-    ret = ioctl(vdev->vbasedev.fd, VFIO_DEVICE_GET_GFX_DMABUF, &gfd);
-    if (ret < 0) {
+
+
+    dmabuf_fd = ioctl(vdev->vbasedev.fd, VFIO_DEVICE_GET_GFX_DMABUF, &plane.dmabuf_id);
+    if (dmabuf_fd < 0) {
         fprintf(stderr, "(%d) ioctl VFIO_DEVICE_GET_GFX_DMABUF: %s\r",
                 ++errcnt, strerror(errno));
         return NULL;
@@ -103,7 +102,7 @@  static VFIODMABuf *vfio_display_get_dmabuf(VFIOPCIDevice *vdev,
             (plane.drm_format >> 16) & 0xff,
             (plane.drm_format >> 24) & 0xff,
             (plane_type == DRM_PLANE_TYPE_PRIMARY) ? "primary" : "cursor",
-            gfd.dmabuf_fd);
+            dmabuf_fd);

     dmabuf = g_new0(VFIODMABuf, 1);
     dmabuf->dmabuf_id  = plane.dmabuf_id;
@@ -111,7 +110,7 @@  static VFIODMABuf *vfio_display_get_dmabuf(VFIOPCIDevice *vdev,
     dmabuf->buf.height = plane.height;
     dmabuf->buf.stride = plane.stride;
     dmabuf->buf.fourcc = plane.drm_format;
-    dmabuf->buf.fd     = gfd.dmabuf_fd;
+    dmabuf->buf.fd     = dmabuf_fd;

     QTAILQ_INSERT_HEAD(&vdev->dmabufs, dmabuf, next);
     return dmabuf;
diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
index c80bb5e..aee81f2 100644
--- a/linux-headers/linux/vfio.h
+++ b/linux-headers/linux/vfio.h
@@ -536,6 +536,8 @@  struct vfio_device_gfx_plane_info {
        __u32 size;     /* size of plane in bytes, align on page*/
        __u32 x_pos;    /* horizontal position of cursor plane, upper left corner in pixels */
        __u32 y_pos;    /* vertical position of cursor plane, upper left corner in lines*/
+       __u32 x_hot;
+       __u32 y_hot;
        union {
                __u32 region_index;     /* region index */
                __u32 dmabuf_id;        /* dma-buf id */