diff options
| author | Terje Bergstrom <tbergstrom@nvidia.com> | 2012-11-08 15:21:07 +0200 |
|---|---|---|
| committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 01:27:51 -0700 |
| commit | d194682523d1252d8f6a301a7f6a3170a0c59034 (patch) | |
| tree | f104ffbc7664d2287f69a49f60cd08fda32962ce /include/linux/nvhost_ioctl.h | |
| parent | 2d43d2972aa5872f1503c1b49577120722c1dd7e (diff) | |
video: tegra: host: New submit interface
Add new interface for submit. Now a single IOCTL will send the whole
job to kernel.
Also removes 32 sync point limit from the interface, and adds
possibility to have variable number of sync point ids and increments.
Because of these changes, nvhost_job has been refactored to remove
dependency to the submit header struct.
Change-Id: Id43b0c916e5ad5cdc7541726ea2d96bfc7497256
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/162888
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Diffstat (limited to 'include/linux/nvhost_ioctl.h')
| -rw-r--r-- | include/linux/nvhost_ioctl.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/include/linux/nvhost_ioctl.h b/include/linux/nvhost_ioctl.h index 028de39de0d2..43498cd577d2 100644 --- a/include/linux/nvhost_ioctl.h +++ b/include/linux/nvhost_ioctl.h @@ -87,6 +87,11 @@ struct nvhost_waitchk { __u32 thresh; }; +struct nvhost_syncpt_incr { + __u32 syncpt_id; + __u32 syncpt_incrs; +}; + struct nvhost_get_param_args { __u32 value; }; @@ -122,6 +127,23 @@ struct nvhost_ctrl_module_regrdwr_args { __u32 write; }; +struct nvhost_submit_args { + __u32 submit_version; + __u32 num_syncpt_incrs; + __u32 num_cmdbufs; + __u32 num_relocs; + __u32 num_waitchks; + __u32 timeout; + struct nvhost_syncpt_incr *syncpt_incrs; + struct nvhost_cmdbuf *cmdbufs; + struct nvhost_reloc *relocs; + struct nvhost_reloc_shift *reloc_shifts; + struct nvhost_waitchk *waitchks; + + __u32 pad[5]; /* future expansion */ + __u32 fence; /* Return value */ +}; + #define NVHOST_IOCTL_CHANNEL_FLUSH \ _IOR(NVHOST_IOCTL_MAGIC, 1, struct nvhost_get_param_args) #define NVHOST_IOCTL_CHANNEL_GET_SYNCPOINTS \ @@ -150,9 +172,11 @@ struct nvhost_ctrl_module_regrdwr_args { _IOW(NVHOST_IOCTL_MAGIC, 13, struct nvhost_set_priority_args) #define NVHOST_IOCTL_CHANNEL_MODULE_REGRDWR \ _IOWR(NVHOST_IOCTL_MAGIC, 14, struct nvhost_ctrl_module_regrdwr_args) +#define NVHOST_IOCTL_CHANNEL_SUBMIT \ + _IOWR(NVHOST_IOCTL_MAGIC, 15, struct nvhost_submit_args) #define NVHOST_IOCTL_CHANNEL_LAST \ - _IOC_NR(NVHOST_IOCTL_CHANNEL_MODULE_REGRDWR) -#define NVHOST_IOCTL_CHANNEL_MAX_ARG_SIZE sizeof(struct nvhost_submit_hdr_ext) + _IOC_NR(NVHOST_IOCTL_CHANNEL_SUBMIT) +#define NVHOST_IOCTL_CHANNEL_MAX_ARG_SIZE sizeof(struct nvhost_submit_args) struct nvhost_ctrl_syncpt_read_args { __u32 id; |
