hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/include/uapi/drm/vmwgfx_drm.h
....@@ -71,6 +71,7 @@
7171 #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26
7272 #define DRM_VMW_GB_SURFACE_CREATE_EXT 27
7373 #define DRM_VMW_GB_SURFACE_REF_EXT 28
74
+#define DRM_VMW_MSG 29
7475
7576 /*************************************************************************/
7677 /**
....@@ -85,6 +86,9 @@
8586 *
8687 * DRM_VMW_PARAM_SM4_1
8788 * SM4_1 support is enabled.
89
+ *
90
+ * DRM_VMW_PARAM_SM5
91
+ * SM5 support is enabled.
8892 */
8993
9094 #define DRM_VMW_PARAM_NUM_STREAMS 0
....@@ -102,6 +106,7 @@
102106 #define DRM_VMW_PARAM_DX 12
103107 #define DRM_VMW_PARAM_HW_CAPS2 13
104108 #define DRM_VMW_PARAM_SM4_1 14
109
+#define DRM_VMW_PARAM_SM5 15
105110
106111 /**
107112 * enum drm_vmw_handle_type - handle type for ref ioctls
....@@ -891,11 +896,13 @@
891896 * surface.
892897 * @drm_vmw_surface_flag_create_buffer: Create a backup buffer if none is
893898 * given.
899
+ * @drm_vmw_surface_flag_coherent: Back surface with coherent memory.
894900 */
895901 enum drm_vmw_surface_flags {
896902 drm_vmw_surface_flag_shareable = (1 << 0),
897903 drm_vmw_surface_flag_scanout = (1 << 1),
898
- drm_vmw_surface_flag_create_buffer = (1 << 2)
904
+ drm_vmw_surface_flag_create_buffer = (1 << 2),
905
+ drm_vmw_surface_flag_coherent = (1 << 3),
899906 };
900907
901908 /**
....@@ -1130,7 +1137,7 @@
11301137 * svga3d surface flags split into 2, upper half and lower half.
11311138 */
11321139 enum drm_vmw_surface_version {
1133
- drm_vmw_gb_surface_v1
1140
+ drm_vmw_gb_surface_v1,
11341141 };
11351142
11361143 /**
....@@ -1141,6 +1148,7 @@
11411148 * @svga3d_flags_upper_32_bits: Upper 32 bits of svga3d flags.
11421149 * @multisample_pattern: Multisampling pattern when msaa is supported.
11431150 * @quality_level: Precision settings for each sample.
1151
+ * @buffer_byte_stride: Buffer byte stride.
11441152 * @must_be_zero: Reserved for future usage.
11451153 *
11461154 * Input argument to the DRM_VMW_GB_SURFACE_CREATE_EXT Ioctl.
....@@ -1149,10 +1157,11 @@
11491157 struct drm_vmw_gb_surface_create_ext_req {
11501158 struct drm_vmw_gb_surface_create_req base;
11511159 enum drm_vmw_surface_version version;
1152
- uint32_t svga3d_flags_upper_32_bits;
1153
- SVGA3dMSPattern multisample_pattern;
1154
- SVGA3dMSQualityLevel quality_level;
1155
- uint64_t must_be_zero;
1160
+ __u32 svga3d_flags_upper_32_bits;
1161
+ __u32 multisample_pattern;
1162
+ __u32 quality_level;
1163
+ __u32 buffer_byte_stride;
1164
+ __u32 must_be_zero;
11561165 };
11571166
11581167 /**
....@@ -1211,6 +1220,22 @@
12111220 struct drm_vmw_surface_arg req;
12121221 };
12131222
1223
+/**
1224
+ * struct drm_vmw_msg_arg
1225
+ *
1226
+ * @send: Pointer to user-space msg string (null terminated).
1227
+ * @receive: Pointer to user-space receive buffer.
1228
+ * @send_only: Boolean whether this is only sending or receiving too.
1229
+ *
1230
+ * Argument to the DRM_VMW_MSG ioctl.
1231
+ */
1232
+struct drm_vmw_msg_arg {
1233
+ __u64 send;
1234
+ __u64 receive;
1235
+ __s32 send_only;
1236
+ __u32 receive_len;
1237
+};
1238
+
12141239 #if defined(__cplusplus)
12151240 }
12161241 #endif