Message ID | 20170407120644.405-1-p.zabel@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 7 April 2017 at 13:06, Philipp Zabel <p.zabel@pengutronix.de> wrote: > Import the etnaviv header changes from kernel commits 9ad59fea162c > ("drm/etnaviv: submit support for in-fences") and 78ec187f64fa > ("drm/etnaviv: submit support for out-fences") for fence fd support. > > The drm_etnaviv_gem_submit structure was extended to include a flags > field, new flags for in-fence and out-fence fds and an input/output > fence fd field. > > This is one-way backwards compatible because old userspace code passing > a short structure not including the flags field to new kernels will > cause the remaining fields to be zero-filled. New userspace code must > make sure to only pass the short structure to old kernels, though. > > Not generated using make headers_install, since the drm/etnaviv_drm.h > uapi header is not installed yet by the kernel. IIRC all the other drivers should already install the header, so we want to fix this, right? If we're too late for this kernel cycle, we will land the patch as-is. Thanks Emil
On Sat, 2017-04-08 at 20:55 +0100, Emil Velikov wrote: > On 7 April 2017 at 13:06, Philipp Zabel <p.zabel@pengutronix.de> wrote: > > Import the etnaviv header changes from kernel commits 9ad59fea162c > > ("drm/etnaviv: submit support for in-fences") and 78ec187f64fa > > ("drm/etnaviv: submit support for out-fences") for fence fd support. > > > > The drm_etnaviv_gem_submit structure was extended to include a flags > > field, new flags for in-fence and out-fence fds and an input/output > > fence fd field. > > > > This is one-way backwards compatible because old userspace code passing > > a short structure not including the flags field to new kernels will > > cause the remaining fields to be zero-filled. New userspace code must > > make sure to only pass the short structure to old kernels, though. > > > > Not generated using make headers_install, since the drm/etnaviv_drm.h > > uapi header is not installed yet by the kernel. > IIRC all the other drivers should already install the header, so we > want to fix this, right? > If we're too late for this kernel cycle, we will land the patch as-is. Yes, I'll send a kernel patch for the next cycle. For now I'll just resend the patch as-is but with the new symbol added to symbol-check. regards Philipp
diff --git a/etnaviv/etnaviv_drm.h b/etnaviv/etnaviv_drm.h index 2584c1cc..76f6f78a 100644 --- a/etnaviv/etnaviv_drm.h +++ b/etnaviv/etnaviv_drm.h @@ -154,6 +154,12 @@ struct drm_etnaviv_gem_submit_bo { * one or more cmdstream buffers. This allows for conditional execution * (context-restore), and IB buffers needed for per tile/bin draw cmds. */ +#define ETNA_SUBMIT_NO_IMPLICIT 0x0001 +#define ETNA_SUBMIT_FENCE_FD_IN 0x0002 +#define ETNA_SUBMIT_FENCE_FD_OUT 0x0004 +#define ETNA_SUBMIT_FLAGS (ETNA_SUBMIT_NO_IMPLICIT | \ + ETNA_SUBMIT_FENCE_FD_IN | \ + ETNA_SUBMIT_FENCE_FD_OUT) #define ETNA_PIPE_3D 0x00 #define ETNA_PIPE_2D 0x01 #define ETNA_PIPE_VG 0x02 @@ -167,6 +173,8 @@ struct drm_etnaviv_gem_submit { __u64 bos; /* in, ptr to array of submit_bo's */ __u64 relocs; /* in, ptr to array of submit_reloc's */ __u64 stream; /* in, ptr to cmdstream */ + __u32 flags; /* in, mask of ETNA_SUBMIT_x */ + __s32 fence_fd; /* in/out, fence fd (see ETNA_SUBMIT_FENCE_FD_x) */ }; /* The normal way to synchronize with the GPU is just to CPU_PREP on