> -----Original Message----- > From: dri-devel [mailto:dri-devel-bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Alex Williamson > Sent: Wednesday, August 2, 2017 5:18 AM > To: Zhang, Tina <tina.zhang@xxxxxxxxx> > Cc: Tian, Kevin <kevin.tian@xxxxxxxxx>; kraxel@xxxxxxxxxx; intel- > gfx@xxxxxxxxxxxxxxxxxxxxx; Wang, Zhi A <zhi.a.wang@xxxxxxxxx>; > kwankhede@xxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; intel-gvt- > dev@xxxxxxxxxxxxxxxxxxxxx; Lv, Zhiyuan <zhiyuan.lv@xxxxxxxxx> > Subject: Re: [PATCH v13 5/7] vfio: ABI for mdev display dma-buf operation > > On Tue, 25 Jul 2017 17:28:18 +0800 > Tina Zhang <tina.zhang@xxxxxxxxx> wrote: > > > Add VFIO_DEVICE_QUERY_GFX_PLANE ioctl command to let user mode query > > and get the plan and its related information. > > > > The dma-buf's life cycle is handled by user mode and tracked by kernel. > > The returned fd in struct vfio_device_query_gfx_plane can be a new fd > > or an old fd of a re-exported dma-buf. Host User mode can check the > > value of fd and to see if it needs to create new resource according to > > the new fd or just use the existed resource related to the old fd. > > > > Signed-off-by: Tina Zhang <tina.zhang@xxxxxxxxx> > > --- > > include/uapi/linux/vfio.h | 28 ++++++++++++++++++++++++++++ > > 1 file changed, 28 insertions(+) > > > > diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h > > index ae46105..827a230 100644 > > --- a/include/uapi/linux/vfio.h > > +++ b/include/uapi/linux/vfio.h > > @@ -502,6 +502,34 @@ struct vfio_pci_hot_reset { > > > > #define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + > 13) > > > > +/** > > + * VFIO_DEVICE_QUERY_GFX_PLANE - _IOW(VFIO_TYPE, VFIO_BASE + 14, > > +struct vfio_device_query_gfx_plane) > > + * > > + * Set the drm_plane_type and retrieve information about the gfx plane. > > + * > > + * Return: 0 on success, -errno on failure. > > + */ > > +struct vfio_device_gfx_plane_info { > > + __u32 argsz; > > + __u32 flags; > > + /* in */ > > + __u32 drm_plane_type; /* type of plane: DRM_PLANE_TYPE_* */ > > + /* out */ > > + __u32 drm_format; /* drm format of plane */ > > + __u64 drm_format_mod; /* tiled mode */ > > + __u32 width; /* width of plane */ > > + __u32 height; /* height of plane */ > > + __u32 stride; /* stride of plane */ > > + __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 region_index; > > + __s32 fd; /* dma-buf fd */ > > How do I know which of these is valid, region_index or fd? Can I ask for one vs > the other? What are the errno values to differentiate unsupported vs not > initialized? Is there a "probe" flag that I can use to determine what the device > supports without allocating those resources yet? Dma-buf won't use region_index, which means region_index is zero all the time for dma-buf usage. As we discussed, there won't be errno if not initialized, just keep all fields zero. I will add the comments about these in the next version. Thanks Tina > > Kirti, does this otherwise meet your needs? > > Thanks, > Alex > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel