| From 2065c7a1c75f56c8ea23952fd4de4b031a96552c Mon Sep 17 00:00:00 2001 |
| From: Tarun Gupta <tgupta@redhat.com> |
| Date: Wed, 20 Jun 2018 18:54:21 +0200 |
| Subject: [PATCH 13/17] linux-headers: Update to include region based display |
| support. |
| |
| RH-Author: Tarun Gupta <tgupta@redhat.com> |
| Message-id: <1529520865-18127-8-git-send-email-tgupta@redhat.com> |
| Patchwork-id: 80913 |
| O-Subject: [RHEL7.6 qemu-kvm PATCH v3 07/11] linux-headers: Update to include region based display support. |
| Bugzilla: 1555246 |
| RH-Acked-by: Alex Williamson <alex.williamson@redhat.com> |
| RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com> |
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> |
| |
| update Linux headers to 4.16-rc5 |
| |
| Note that VIRTIO_GPU_CAPSET_VIRGL2 was added manually so it has to |
| be added manually after re-running scripts/update-linux-headers.sh. |
| |
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
| (cherry picked from 9f2d175db5c29b23bc1a560041043d0b10ee57dc) |
| |
| Conflict: Only cherry-picking macros for adding region based display |
| support |
| |
| Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> |
| |
| linux-headers/linux/vfio.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++ |
| 1 file changed, 52 insertions(+) |
| |
| diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h |
| index 8995a34..0dab0cc 100644 |
| |
| |
| @@ -414,6 +414,58 @@ 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 flags, then retrieve the gfx plane info. |
| + * |
| + * flags supported: |
| + * - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_DMABUF are set |
| + * to ask if the mdev supports dma-buf. 0 on support, -EINVAL on no |
| + * support for dma-buf. |
| + * - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_REGION are set |
| + * to ask if the mdev supports region. 0 on support, -EINVAL on no |
| + * support for region. |
| + * - VFIO_GFX_PLANE_TYPE_DMABUF or VFIO_GFX_PLANE_TYPE_REGION is set |
| + * with each call to query the plane info. |
| + * - Others are invalid and return -EINVAL. |
| + * |
| + * Note: |
| + * 1. Plane could be disabled by guest. In that case, success will be |
| + * returned with zero-initialized drm_format, size, width and height |
| + * fields. |
| + * 2. x_hot/y_hot is set to 0xFFFFFFFF if no hotspot information available |
| + * |
| + * Return: 0 on success, -errno on other failure. |
| + */ |
| +struct vfio_device_gfx_plane_info { |
| + __u32 argsz; |
| + __u32 flags; |
| +#define VFIO_GFX_PLANE_TYPE_PROBE (1 << 0) |
| +#define VFIO_GFX_PLANE_TYPE_DMABUF (1 << 1) |
| +#define VFIO_GFX_PLANE_TYPE_REGION (1 << 2) |
| + /* 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 */ |
| + __u32 y_pos; /* vertical position of cursor plane*/ |
| + __u32 x_hot; /* horizontal position of cursor hotspot */ |
| + __u32 y_hot; /* vertical position of cursor hotspot */ |
| + union { |
| + __u32 region_index; /* region index */ |
| + __u32 dmabuf_id; /* dma-buf id */ |
| + }; |
| +}; |
| + |
| +#define VFIO_DEVICE_QUERY_GFX_PLANE _IO(VFIO_TYPE, VFIO_BASE + 14) |
| + |
| /* -------- API for Type1 VFIO IOMMU -------- */ |
| |
| /** |
| -- |
| 1.8.3.1 |
| |