* new gpu support: a405, a640, a650 * dpu: color processing support * mdp5: support for msm8x36 (the thing with a405) * some prep work for per-context pagetables (ie the part that does not depend on in-flight iommu patches) * last but not least, UABI update for submit ioctl to support syncobj (from Bas)
Showing the changes to include/uapi (1 of 47 files). Show all
Unified · Split
| @@ -217,13 +217,28 @@ struct drm_msm_gem_submit_bo { · 216 unmodified lines | ||
| 217 | 217 | #define MSM_SUBMIT_FENCE_FD_IN 0x40000000 /* enable input fence_fd */ |
| 218 | 218 | #define MSM_SUBMIT_FENCE_FD_OUT 0x20000000 /* enable output fence_fd */ |
| 219 | 219 | #define MSM_SUBMIT_SUDO 0x10000000 /* run submitted cmds from RB */ |
| 220 | +#define MSM_SUBMIT_SYNCOBJ_IN 0x08000000 /* enable input syncobj */ | |
| 221 | +#define MSM_SUBMIT_SYNCOBJ_OUT 0x04000000 /* enable output syncobj */ | |
| 220 | 222 | #define MSM_SUBMIT_FLAGS ( \ |
| 221 | 223 | MSM_SUBMIT_NO_IMPLICIT | \ |
| 222 | 224 | MSM_SUBMIT_FENCE_FD_IN | \ |
| 223 | 225 | MSM_SUBMIT_FENCE_FD_OUT | \ |
| 224 | 226 | MSM_SUBMIT_SUDO | \ |
| 227 | + MSM_SUBMIT_SYNCOBJ_IN | \ | |
| 228 | + MSM_SUBMIT_SYNCOBJ_OUT | \ | |
| 225 | 229 | 0) |
| 226 | 230 | |
| 231 | +#define MSM_SUBMIT_SYNCOBJ_RESET 0x00000001 /* Reset syncobj after wait. */ | |
| 232 | +#define MSM_SUBMIT_SYNCOBJ_FLAGS ( \ | |
| 233 | + MSM_SUBMIT_SYNCOBJ_RESET | \ | |
| 234 | + 0) | |
| 235 | + | |
| 236 | +struct drm_msm_gem_submit_syncobj { | |
| 237 | + __u32 handle; /* in, syncobj handle. */ | |
| 238 | + __u32 flags; /* in, from MSM_SUBMIT_SYNCOBJ_FLAGS */ | |
| 239 | + __u64 point; /* in, timepoint for timeline syncobjs. */ | |
| 240 | +}; | |
| 241 | + | |
| 227 | 242 | /* Each cmdstream submit consists of a table of buffers involved, and |
| 228 | 243 | * one or more cmdstream buffers. This allows for conditional execution |
| 229 | 244 | * (context-restore), and IB buffers needed for per tile/bin draw cmds. |
| @@ -236,7 +251,14 @@ struct drm_msm_gem_submit { · 6 unmodified lines | ||
| 236 | 251 | __u64 bos; /* in, ptr to array of submit_bo's */ |
| 237 | 252 | __u64 cmds; /* in, ptr to array of submit_cmd's */ |
| 238 | 253 | __s32 fence_fd; /* in/out fence fd (see MSM_SUBMIT_FENCE_FD_IN/OUT) */ |
| 239 | − __u32 queueid; /* in, submitqueue id */ | |
| 254 | + __u32 queueid; /* in, submitqueue id */ | |
| 255 | + __u64 in_syncobjs; /* in, ptr to to array of drm_msm_gem_submit_syncobj */ | |
| 256 | + __u64 out_syncobjs; /* in, ptr to to array of drm_msm_gem_submit_syncobj */ | |
| 257 | + __u32 nr_in_syncobjs; /* in, number of entries in in_syncobj */ | |
| 258 | + __u32 nr_out_syncobjs; /* in, number of entries in out_syncobj. */ | |
| 259 | + __u32 syncobj_stride; /* in, stride of syncobj arrays. */ | |
| 260 | + __u32 pad; /*in, reserved for future use, always 0. */ | |
| 261 | + | |
| 240 | 262 | }; |
| 241 | 263 | |
| 242 | 264 | /* The normal way to synchronize with the GPU is just to CPU_PREP on |