Lines Matching +full:host +full:- +full:command

1 /* SPDX-License-Identifier: MIT */
3 * Copyright (c) 2020-2024, Intel Corporation.
43 /* Max number of impacted contexts that can be dealt with the engine reset command */
75 /* Job status returned when the job was preempted mid-inference */
80 * Host <-> VPU IPC channels.
81 * ASYNC commands use a high priority channel, other messages use low-priority ones.
100 * Inline command mask.
101 * When set, the object in job queue is an inline command (see struct vpu_inline_cmd below).
107 * Reserved for the VPU to store private data about the job (or inline command)
130 * are immediately followed by an inline command object. This object is expected
131 * to be a fence signal command in most cases, but can also be a NOP in case the host
132 * does not need per-job fence signalling. Other inline commands objects can be
133 * inserted between "job and inline command" pairs.
150 * Max length (including trailing NULL char) of a dyndbg command.
158 * For HWS command queue scheduling, we can prioritise command queues inside the
159 * same process with a relative in-process priority. Valid values for relative
160 * priority are given below - max and min.
163 #define VPU_HWS_COMMAND_QUEUE_MIN_IN_PROCESS_PRIORITY -7
179 * Invalid command queue handle identifier. Applies to cmdq_id and cmdq_group
189 * VPU does nothing other than consuming the inline command object.
205 * to the host. Fence signal operations are executed upon completion of all the jobs
206 * present in the queue prior to them, and in-order relative to each other in the queue.
207 * But jobs in-between them may be processed concurrently and may complete out-of-order.
253 * Inline command format.
255 * synchronization directives). Inline command and job objects must be of
260 /* Inline command type, see VPU_INLINE_CMD_TYPE_* defines. */
264 /* Inline command payload. Depends on inline command type. */
272 /* User VA of the monitored fence value (read-only). */
286 * Job queue slots can be populated either with job objects or inline command objects.
342 /* Written by VPU after adding a log entry. Initialised by host to 0. */
344 /* Incremented by VPU every time the VPU writes the 0th entry; initialised by host to 0. */
347 * This is the number of buffers that can be stored in the log buffer provided by the host.
348 * It is written by host before passing buffer to VPU. VPU should consider it read-only.
363 * 0 - context state change
364 * 1 - queue new work
365 * 2 - queue unwait sync object
366 * 3 - queue no more work
367 * 4 - queue wait sync object
432 * Host <-> VPU IPC messages types.
437 /* IPC Host -> Device, Async commands */
446 * is rung again); the host is responsible to reset the job queue, either
473 * Release resource associated with host ssid . All jobs that belong to the host_ssid
485 * Stop collecting metric data. This command will return success if it is called
491 * Update current and next buffer for metric data collection. This command can
500 * the buffer specified in the command structure.
504 /** Control command: Priority band setup */
506 /** Control command: Create command queue */
508 /** Control command: Destroy command queue */
510 /** Control command: Set context scheduling properties */
517 /** Control command: Log buffer setting */
519 /* Control command: Suspend command queue. */
521 /* Control command: Resume command queue */
523 /* Control command: Resume engine after reset */
525 /* Control command: Enable survivability/DCT mode */
527 /* Control command: Disable survivability/DCT mode */
535 /* IPC Host -> Device, General commands */
539 * Control dyndbg behavior by executing a dyndbg command; equivalent to
540 * Linux command: `echo '<dyndbg_cmd>' > <debugfs>/dynamic_debug/control`.
548 /* IPC Device -> Host, Job completion */
550 /* IPC Device -> Host, Fence signalled */
553 /* IPC Device -> Host, Async command completion */
603 * Asynchronous event sent from the VPU to the host either when the current
605 * @notify_sample_count samples as indicated through the start command
611 /** Response to control command: Priority band setup */
613 /** Response to control command: Create command queue */
615 /** Response to control command: Destroy command queue */
617 /** Response to control command: Set context scheduling properties */
619 /** Response to control command: Log buffer setting */
621 /* IPC Device -> Host, HWS notify index entry of log buffer written */
623 /* IPC Device -> Host, HWS completion of a context suspend request */
625 /* Response to control command: Resume command queue */
627 /* Response to control command: Resume engine command response */
629 /* Response to control command: Enable survivability/DCT mode */
631 /* Response to control command: Disable survivability/DCT mode */
634 * Response to state dump control command.
639 /* IPC Device -> Host, General command completion */
654 * Host <-> LRT IPC message payload definitions
671 * @brief Register doorbell command structure.
684 /* Host sub-stream ID for the context assigned to the doorbell. */
689 * @brief Unregister doorbell command structure.
710 * range [0, power_level_count-1] where power_level_count
712 * the get power level count command. A power level of 0
714 * power_level_count-1 corresponds to the minimum possible
724 /* Host sub-stream ID for the context to be released. */
731 * @brief Metric streamer start command structure.
763 * send a notification to the host driver if @notify_sample_count is non-zero.
778 * @brief Metric streamer stop command structure.
798 * If the address is non-zero and differs from the current buffer address the
809 * are non-zero in same update request. It is the host's responsibility to ensure
826 /* Host SSID */
830 /* Command queue id */
841 /* Host SSID. */
850 /* Host SSID */
854 /* Command queue id */
865 /* Array of impacted command queue ids and their flags */
878 * Response structure for register doorbell command for both OS
891 * Response structure for unregister doorbell command for both OS
922 * [0-100%] range relative to power level 0.
954 * @brief HWS create command queue request.
955 * Host will create a command queue via this command.
957 * may contain one or more command queues.
964 /* Host SSID */
970 /* Command queue id */
972 /* Command queue base */
974 /* Command queue size */
981 * @brief HWS create command queue response.
988 /* Host SSID */
992 /* Command queue group */
994 /* Command queue id */
998 /* HWS destroy command queue request / response */
1000 /* Host SSID */
1004 /* Command queue id */
1010 /* Host SSID */
1014 /* Command queue id */
1036 * @brief Register doorbell command structure.
1047 /* Host sub-stream ID for the context assigned to the doorbell. */
1049 /* ID of the command queue associated with the doorbell. */
1051 /* Virtual address pointing to the start of command queue. */
1053 /* Size of the command queue in bytes. */
1058 * @brief Structure to set another buffer to be used for scheduling-related logging.
1061 * The log buffer received from the host is made up of;
1062 * - header: 32 bytes in size, as shown in 'struct vpu_hws_log_buffer_header'.
1064 * - log entry: 0 to n-1, each log entry is 32 bytes in size, as shown in
1067 * The host should provide the notify index value of log buffer to VPU. This is a
1070 * The host should set engine_idx and vpu_log_buffer_va to 0 to disable logging
1081 /* Host SSID */
1103 * an event into the log buffer at the notify_index. VPU notifies host with
1105 * message from VPU to host.
1117 * @brief HWS suspend command queue request and done structure.
1118 * Host will request the suspend of contexts and VPU will;
1119 * - Suspend all work on this context
1120 * - Preempt any running work
1121 * - Asynchronously perform the above and return success immediately once
1123 * - Notify the host of completion of these operations via
1125 * - Reject any other context operations on a context with an in-flight
1127 * Same structure used when VPU notifies host of completion of a context suspend
1128 * request. The ids and suspend fence value reported in this command will match
1129 * the one in the request from the host to suspend the context. Once suspend is
1130 * complete, VPU will not access any data relating to this command queue until
1136 /* Host SSID */
1140 /* Command queue id */
1143 * Suspend fence value - reported by the VPU suspend context
1150 * @brief HWS Resume command queue request / response structure.
1151 * Host will request the resume of a context;
1152 * - VPU will resume all work on this context
1153 * - Scheduler will allow this context to be scheduled
1158 /* Host SSID */
1162 /* Command queue id */
1169 * Host shall send this command to resume scheduling of any valid queue.
1186 * - For VPU_JSM_MSG_TRACE_SET_CONFIG, the payload specifies the desired
1189 * - For VPU_JSM_MSG_TRACE_SET_CONFIG_RSP, the payload reports the logging
1191 * The host can compare this payload with the one it sent in the
1195 * - VPU_JSM_MSG_TRACE_GET_CONFIG_RSP, the payload reports the current logging
1267 * Data sent from the VPU to the host in all metric streamer response messages
1279 * Size in bytes of single sample - total size of all enabled counters.
1309 * of the VPU_JSM_MSG_METRIC_STREAMER_INFO command. This is followed by one or more
1315 * Offset to the next metric group (8-byte aligned). If this offset is 0 this
1318 * + description_string_size and must be 8-byte aligned.
1322 * Offset to the first metric counter description record (8-byte aligned).
1359 * Offset to the next counter in a group (8-byte aligned). If this offset is
1403 * (https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html)
1404 * The host can control Dynamic Debug behavior by sending dyndbg commands, which
1408 * NOTE: in order for MVLOG_DEBUG messages to be actually printed, the host
1410 * VPU_JSM_MSG_TRACE_SET_CONFIG command.
1412 * The host can see the current dynamic debug configuration by executing a
1413 * special 'show' command. The dyndbg configuration will be printed to the
1418 * Dyndbg command (same format as Linux dyndbg); must be a NULL-terminated
1427 * This is a bi-directional payload.
1431 * 0: VPU_JSM_MSG_PWR_D0I3_ENTER_DONE is not sent to the host driver
1443 * corresponding to a 85% duty cycle. This payload allows the host to tune these
1498 * Host <-> LRT IPC message base structure.
1511 * Request ID, provided by the host in a request message and passed