summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorShridhar Rasal <srasal@nvidia.com>2017-01-24 05:12:49 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-02-02 02:14:42 -0500
commit616b709f02dd0cda47ae0ba02b1b3eb0ffb1e389 (patch)
tree664a9655621842b1177a6433604e60813a103931 /include/linux
parent70c455dff49e8a7ff19e3aaae6f1b5d5cfc54e62 (diff)
video: tegra: host: dla: remove updating user bufffer with IOVA
This patch addresses two fixes: [1] Removes updating user buffers with IOVA. - In address translation of address list of a tasks, handle and offset were replaced with actual IOVA into user buffer and same buffer was shared with engine. This approach is error prone. - To fix this issue, kernel keeps IOVA list and shares with engine. - In task submit, mem_handle list from user and updated in kernel copy of task. - and while pinning user buffers, engine shared list updated with actual dma address retrieved from submit pin call. [2] Remove dynamic allocation required in address translation - Required memory of 'kernel copy address list' and 'engine shared address list' both allocated from queue memory pool. - and assigned and released along with task data. DLA-286 Change-Id: I4d5a322adaff25e6e587d3305847540757850c77 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/1293124 Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/nvhost_nvdla_ioctl.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/nvhost_nvdla_ioctl.h b/include/linux/nvhost_nvdla_ioctl.h
index 02926b1fd..56044c85f 100644
--- a/include/linux/nvhost_nvdla_ioctl.h
+++ b/include/linux/nvhost_nvdla_ioctl.h
@@ -119,6 +119,8 @@ struct nvdla_ioctl_submit_task {
119 __u8 num_postfences; 119 __u8 num_postfences;
120 __u8 num_input_task_status; 120 __u8 num_input_task_status;
121 __u8 num_output_task_status; 121 __u8 num_output_task_status;
122#define NVDLA_MAX_BUFFERS_PER_TASK (256)
123 __u32 num_addresses;
122 __u16 flags; 124 __u16 flags;
123 __u16 reserved; 125 __u16 reserved;
124 126
@@ -127,9 +129,7 @@ struct nvdla_ioctl_submit_task {
127 129
128 __u64 input_task_status; 130 __u64 input_task_status;
129 __u64 output_task_status; 131 __u64 output_task_status;
130 132 __u64 address_list;
131 __u32 num_addresses;
132 struct nvdla_mem_handle address_list;
133}; 133};
134 134
135/** 135/**