diff options
| author | Shridhar Rasal <srasal@nvidia.com> | 2017-01-24 05:12:49 -0500 |
|---|---|---|
| committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-02-02 02:14:42 -0500 |
| commit | 616b709f02dd0cda47ae0ba02b1b3eb0ffb1e389 (patch) | |
| tree | 664a9655621842b1177a6433604e60813a103931 /include/linux | |
| parent | 70c455dff49e8a7ff19e3aaae6f1b5d5cfc54e62 (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.h | 6 |
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 | /** |
