video: tegra: host: add sof/eof timestamp support

[1] Fills SOF/EOF timestamp buffer action before SOF/EOF
    signal actions.
[2] Adds action opcode ACTION_WRITE_TIMESTAMP to inform
    firmware for scribbling timestamp buffer.
[3] Decrement MAX_TASKS_PER_SUBMIT from 24 to 16, since existing
    results in stack size > 2048 byts (overflow).

Jira DLA-1992
Jira DLA-1993
Jira DLA-251

Change-Id: Ie16292a963a97fbea68ad6860dcfc39b85c4b55b
Signed-off-by: Arvind M <am@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2121532
Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Arvind M
2019-05-18 16:52:19 +05:30
committed by Laxman Dewangan
parent 971fe01893
commit 6e76995152
5 changed files with 188 additions and 3 deletions

View File

@@ -79,7 +79,7 @@ struct nvdla_pin_unpin_args {
struct nvdla_submit_args {
__u64 tasks;
__u16 num_tasks;
#define MAX_TASKS_PER_SUBMIT 24
#define MAX_TASKS_PER_SUBMIT 16
#define NVDLA_SUBMIT_FLAGS_ATOMIC (1 << 0)
__u16 flags;
__u32 version;
@@ -127,6 +127,8 @@ struct nvdla_mem_handle {
* @num_input_task_status number of input task status
* @num_sof_task_status number of sof task status
* @num_eof_task_status number of eof task status
* @num_sof_timestamps number of sof timestamp
* @num_eof_timestamps number of eof timestamp
* @flags flags for bitwise task info embeddeing
* @reserved reserved for future use
* @prefences pointer to pre-fence struct table
@@ -134,6 +136,8 @@ struct nvdla_mem_handle {
* @input_task_status pointer to input task status struct table
* @sof_task_status pointer to sof task status struct table
* @eof_task_status pointer to eof task status struct table
* @sof_timestamps pointer to sof timestamp handle list
* @eof_timestamps pointer to eof timestamp handle list
* @num_addresses total number of addressed passed in structure
* @address_list pointer to address list
* @timeout task timeout
@@ -145,7 +149,9 @@ struct nvdla_ioctl_submit_task {
__u8 num_input_task_status;
__u8 num_sof_task_status;
__u8 num_eof_task_status;
__u8 reserved0[3];
__u8 num_sof_timestamps;
__u8 num_eof_timestamps;
__u8 reserved0[1];
#define NVDLA_MAX_BUFFERS_PER_TASK (6144)
__u32 num_addresses;
__u16 flags;
@@ -157,6 +163,8 @@ struct nvdla_ioctl_submit_task {
__u64 input_task_status;
__u64 sof_task_status;
__u64 eof_task_status;
__u64 sof_timestamps;
__u64 eof_timestamps;
__u64 address_list;
__u64 timeout;
};