On 2017.07.12 09:54:13 +0200, Daniel Vetter wrote: > On Wed, Jul 12, 2017 at 02:10:51PM +0800, Tina Zhang 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> > > > > diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h > > index ae46105..c176cc8 100644 > > --- a/include/uapi/linux/vfio.h > > +++ b/include/uapi/linux/vfio.h > > @@ -502,6 +502,32 @@ 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; > > What's argsz for? It's vfio ioctl idiom for parameter sanity check. > > > + __u32 flags; > > + /* in */ > > + __u32 drm_plane_type; /* type of plane: DRM_PLANE_TYPE_* */ > > Do we plan to support multiple outputs on a vfio? In that case just the > plane-type doesn't identify the right plane. Also, if you want to support > overlay planes, then usually hw has a lot of those. Currently no plan to support multiple outputs on one mdev. And no overlay plane support in gvt now, even we'd support that maybe also one plane only. > > > + /* out */ > > + __u32 drm_format; /* drm format of plane */ > > + __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*/ > > Why is x/y pos only for cursors? I'm not clear at all what this would be > for ... Is this an offset within the plane where the cursor starts? yes, it's cursor start in primary plane. > > > + __s32 fd; /* dma-buf fd */ > > +}; > > + > > +#define VFIO_DEVICE_QUERY_GFX_PLANE _IO(VFIO_TYPE, VFIO_BASE + 14) > > + > > + > > /* -------- API for Type1 VFIO IOMMU -------- */ > > > > /** > > -- > > 2.7.4 > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Open Source Technology Center, Intel ltd. $gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx