diff options
Diffstat (limited to 'tegra/private.h')
-rw-r--r-- | tegra/private.h | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/tegra/private.h b/tegra/private.h index 1c9fca7d..9e9ae86c 100644 --- a/tegra/private.h +++ b/tegra/private.h @@ -60,7 +60,7 @@ struct drm_tegra_bo { struct drm_tegra *drm; drmMMListHead list; uint32_t handle; - uint32_t offset; + uint64_t offset; uint32_t flags; uint32_t size; atomic_t ref; @@ -70,14 +70,8 @@ struct drm_tegra_bo { struct drm_tegra_channel { struct drm_tegra *drm; enum host1x_class class; + unsigned int num_syncpts; uint64_t context; - uint32_t syncpt; -}; - -struct drm_tegra_fence { - struct drm_tegra *drm; - uint32_t syncpt; - uint32_t value; }; struct drm_tegra_pushbuf_private { @@ -87,8 +81,12 @@ struct drm_tegra_pushbuf_private { drmMMListHead bos; struct drm_tegra_bo *bo; + unsigned int index; uint32_t *start; uint32_t *end; + + struct drm_tegra_fence *fences; + unsigned int num_fences; }; static inline struct drm_tegra_pushbuf_private * @@ -102,22 +100,25 @@ int drm_tegra_pushbuf_queue(struct drm_tegra_pushbuf_private *pushbuf); struct drm_tegra_job { struct drm_tegra_channel *channel; - unsigned int increments; - uint32_t syncpt; - - struct drm_tegra_reloc *relocs; - unsigned int num_relocs; + struct drm_tegra_buffer *buffers; + unsigned int num_buffers; struct drm_tegra_cmdbuf *cmdbufs; unsigned int num_cmdbufs; + struct drm_tegra_reloc *relocs; + unsigned int num_relocs; + struct drm_tegra_pushbuf_private *pushbuf; drmMMListHead pushbufs; }; -int drm_tegra_job_add_reloc(struct drm_tegra_job *job, - const struct drm_tegra_reloc *reloc); +int drm_tegra_job_add_buffer(struct drm_tegra_job *job, + const struct drm_tegra_buffer *buffer, + unsigned int *index); int drm_tegra_job_add_cmdbuf(struct drm_tegra_job *job, const struct drm_tegra_cmdbuf *cmdbuf); +int drm_tegra_job_add_reloc(struct drm_tegra_job *job, + const struct drm_tegra_reloc *reloc); #endif /* __DRM_TEGRA_PRIVATE_H__ */ |