123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
- */
- #ifndef __H_CVP_HFI_H__
- #define __H_CVP_HFI_H__
- #include "cvp_hfi_helper.h"
- #include "cvp_hfi_api.h"
- #include "cvp_comm_def.h"
- #define HFI_CMD_SESSION_CVP_START \
- (HFI_DOMAIN_BASE_CVP + HFI_ARCH_COMMON_OFFSET + \
- HFI_CMD_START_OFFSET + 0x1000)
- #define HFI_CMD_SESSION_CVP_SET_BUFFERS\
- (HFI_CMD_SESSION_CVP_START + 0x001)
- #define HFI_CMD_SESSION_CVP_RELEASE_BUFFERS\
- (HFI_CMD_SESSION_CVP_START + 0x002)
- #define HFI_CMD_SESSION_CVP_DS\
- (HFI_CMD_SESSION_CVP_START + 0x003)
- #define HFI_CMD_SESSION_CVP_HCD_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x004)
- #define HFI_CMD_SESSION_CVP_HCD_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x005)
- #define HFI_CMD_SESSION_CVP_CV_HOG_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x006)
- #define HFI_CMD_SESSION_CVP_CV_HOG_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x007)
- #define HFI_CMD_SESSION_CVP_SVM\
- (HFI_CMD_SESSION_CVP_START + 0x008)
- #define HFI_CMD_SESSION_CVP_NCC_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x009)
- #define HFI_CMD_SESSION_CVP_NCC_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x00A)
- #define HFI_CMD_SESSION_CVP_DFS_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x00B)
- #define HFI_CMD_SESSION_CVP_DFS_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x00C)
- #define HFI_CMD_SESSION_CVP_FTEXT\
- (HFI_CMD_SESSION_CVP_START + 0x00F)
- /* ==========CHAINED OPERATIONS===================*/
- #define HFI_CMD_SESSION_CVP_CV_HOG_SVM_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x010)
- #define HFI_CMD_SESSION_CVP_CV_HOG_SVM_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x011)
- #define HFI_CMD_SESSION_CVP_CV_HOG_SVM_HCD_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x012)
- #define HFI_CMD_SESSION_CVP_CV_HOG_SVM_HCD_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x013)
- #define HFI_CMD_SESSION_CVP_OPTICAL_FLOW\
- (HFI_CMD_SESSION_CVP_START + 0x014)
- /* ===========USECASE OPERATIONS===============*/
- #define HFI_CMD_SESSION_CVP_DC_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x030)
- #define HFI_CMD_SESSION_CVP_DC_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x031)
- #define HFI_CMD_SESSION_CVP_DCM_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x034)
- #define HFI_CMD_SESSION_CVP_DCM_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x035)
- #define HFI_CMD_SESSION_CVP_DME_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x039)
- #define HFI_CMD_SESSION_CVP_DME_BASIC_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x03B)
- #define HFI_CMD_SESSION_CVP_DME_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x03A)
- #define HFI_CMD_SESSION_EVA_DME_ONLY_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x040)
- #define HFI_CMD_SESSION_EVA_DME_ONLY_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x041)
- #define HFI_CMD_SESSION_CVP_CV_TME_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x047)
- #define HFI_CMD_SESSION_CVP_CV_TME_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x048)
- #define HFI_CMD_SESSION_CVP_CV_OD_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x049)
- #define HFI_CMD_SESSION_CVP_CV_OD_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x04A)
- #define HFI_CMD_SESSION_CVP_CV_ODT_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x04B)
- #define HFI_CMD_SESSION_CVP_CV_ODT_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x04C)
- #define HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS\
- (HFI_CMD_SESSION_CVP_START + 0x04D)
- #define HFI_CMD_SESSION_CVP_PYS_HCD_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x050)
- #define HFI_CMD_SESSION_CVP_PYS_HCD_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x051)
- #define HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS\
- (HFI_CMD_SESSION_CVP_START + 0x052)
- #define HFI_CMD_SESSION_CVP_FD_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x053)
- #define HFI_CMD_SESSION_CVP_FD_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x054)
- #define HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS\
- (HFI_CMD_SESSION_CVP_START + 0x055)
- #define HFI_CMD_SESSION_CVP_RELEASE_MODEL_BUFFERS\
- (HFI_CMD_SESSION_CVP_START + 0x056)
- #define HFI_CMD_SESSION_CVP_SGM_DFS_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x057)
- #define HFI_CMD_SESSION_CVP_SGM_DFS_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x058)
- #define HFI_CMD_SESSION_CVP_SGM_OF_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x059)
- #define HFI_CMD_SESSION_CVP_SGM_OF_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x05A)
- #define HFI_CMD_SESSION_CVP_GCE_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x05B)
- #define HFI_CMD_SESSION_CVP_GCE_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x05C)
- #define HFI_CMD_SESSION_CVP_WARP_NCC_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x05D)
- #define HFI_CMD_SESSION_CVP_WARP_NCC_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x05E)
- #define HFI_CMD_SESSION_CVP_DMM_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x05F)
- #define HFI_CMD_SESSION_CVP_DMM_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x060)
- #define HFI_CMD_SESSION_CVP_FLUSH\
- (HFI_CMD_SESSION_CVP_START + 0x061)
- #define HFI_CMD_SESSION_CVP_WARP_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x062)
- #define HFI_CMD_SESSION_CVP_WARP_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x063)
- #define HFI_CMD_SESSION_CVP_DMM_PARAMS\
- (HFI_CMD_SESSION_CVP_START + 0x064)
- #define HFI_CMD_SESSION_CVP_WARP_DS_PARAMS\
- (HFI_CMD_SESSION_CVP_START + 0x065)
- #define HFI_CMD_SESSION_CVP_XRA_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x066)
- #define HFI_CMD_SESSION_CVP_XRA_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x067)
- #define HFI_CMD_SESSION_CVP_XRA_BLOB_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x069)
- #define HFI_CMD_SESSION_CVP_XRA_BLOB_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x06A)
- #define HFI_CMD_SESSION_CVP_XRA_PATCH_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x06B)
- #define HFI_CMD_SESSION_CVP_XRA_PATCH_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x06C)
- #define HFI_CMD_SESSION_CVP_XRA_MATCH_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x06D)
- #define HFI_CMD_SESSION_CVP_XRA_MATCH_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x06E)
- #define HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS\
- (HFI_CMD_SESSION_CVP_START + 0x070)
- #define HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS\
- (HFI_CMD_SESSION_CVP_START + 0x071)
- #define HFI_CMD_SESSION_CVP_SNAPSHOT_WRITE_DONE\
- (HFI_CMD_SESSION_CVP_START + 0x072)
- #define HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE\
- (HFI_CMD_SESSION_CVP_START + 0x073)
- #define HFI_CMD_SESSION_EVA_ITOF_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x078)
- #define HFI_CMD_SESSION_EVA_ITOF_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x079)
- #define HFI_CMD_SESSION_EVA_DLFD_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x07C)
- #define HFI_CMD_SESSION_EVA_DLFD_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x07D)
- #define HFI_CMD_SESSION_CVP_RGE_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x07E)
- #define HFI_CMD_SESSION_CVP_RGE_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x07F)
- #define HFI_CMD_SESSION_EVA_DLFL_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x080)
- #define HFI_CMD_SESSION_EVA_DLFL_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x081)
- #define HFI_CMD_SESSION_CVP_SYNX\
- (HFI_CMD_SESSION_CVP_START + 0x086)
- #define HFI_CMD_SESSION_EVA_START\
- (HFI_CMD_SESSION_CVP_START + 0x088)
- #define HFI_CMD_SESSION_EVA_STOP\
- (HFI_CMD_SESSION_CVP_START + 0x089)
- #define HFI_CMD_SESSION_CVP_ICA_FRAME\
- (HFI_CMD_SESSION_CVP_START + 0x100)
- #define HFI_CMD_SESSION_CVP_ICA_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x101)
- #define HFI_CMD_SESSION_CVP_DS_CONFIG\
- (HFI_CMD_SESSION_CVP_START + 0x02F)
- #define HFI_MSG_SESSION_CVP_START \
- (HFI_DOMAIN_BASE_CVP + HFI_ARCH_COMMON_OFFSET + \
- HFI_MSG_START_OFFSET + 0x1000)
- #define HFI_MSG_SESSION_CVP_SET_BUFFERS\
- (HFI_MSG_SESSION_CVP_START + 0x001)
- #define HFI_MSG_SESSION_CVP_RELEASE_BUFFERS \
- (HFI_MSG_SESSION_CVP_START + 0x002)
- #define HFI_MSG_SESSION_CVP_DS\
- (HFI_MSG_SESSION_CVP_START + 0x003)
- #define HFI_MSG_SESSION_CVP_HCD\
- (HFI_MSG_SESSION_CVP_START + 0x004)
- #define HFI_MSG_SESSION_CVP_CV_HOG\
- (HFI_MSG_SESSION_CVP_START + 0x005)
- #define HFI_MSG_SESSION_CVP_SVM\
- (HFI_MSG_SESSION_CVP_START + 0x006)
- #define HFI_MSG_SESSION_CVP_NCC\
- (HFI_MSG_SESSION_CVP_START + 0x007)
- #define HFI_MSG_SESSION_CVP_DFS\
- (HFI_MSG_SESSION_CVP_START + 0x008)
- #define HFI_MSG_SESSION_CVP_TME\
- (HFI_MSG_SESSION_CVP_START + 0x009)
- #define HFI_MSG_SESSION_CVP_FTEXT\
- (HFI_MSG_SESSION_CVP_START + 0x00A)
- #define HFI_MSG_SESSION_CVP_ICA\
- (HFI_MSG_SESSION_CVP_START + 0x014)
- #define HFI_MSG_SESSION_CVP_DME\
- (HFI_MSG_SESSION_CVP_START + 0x023)
- #define HFI_MSG_SESSION_EVA_DME_ONLY\
- (HFI_MSG_SESSION_CVP_START + 0x050)
- #define HFI_MSG_SESSION_CVP_OPERATION_CONFIG (HFI_MSG_SESSION_CVP_START + 0x030)
- #define HFI_MSG_SESSION_CVP_SET_PERSIST_BUFFERS\
- (HFI_MSG_SESSION_CVP_START + 0x034)
- #define HFI_MSG_SESSION_CVP_SET_MODEL_BUFFERS\
- (HFI_MSG_SESSION_CVP_START + 0x036)
- #define HFI_MSG_SESSION_CVP_FD\
- (HFI_MSG_SESSION_CVP_START + 0x037)
- #define HFI_MSG_SESSION_CVP_RELEASE_PERSIST_BUFFERS\
- (HFI_MSG_SESSION_CVP_START + 0x038)
- #define HFI_MSG_SESSION_CVP_RELEASE_MODEL_BUFFERS\
- (HFI_MSG_SESSION_CVP_START + 0x039)
- #define HFI_MSG_SESSION_CVP_SGM_OF\
- (HFI_MSG_SESSION_CVP_START + 0x03A)
- #define HFI_MSG_SESSION_CVP_GCE\
- (HFI_MSG_SESSION_CVP_START + 0x03B)
- #define HFI_MSG_SESSION_CVP_WARP_NCC\
- (HFI_MSG_SESSION_CVP_START + 0x03C)
- #define HFI_MSG_SESSION_CVP_DMM\
- (HFI_MSG_SESSION_CVP_START + 0x03D)
- #define HFI_MSG_SESSION_CVP_SGM_DFS\
- (HFI_MSG_SESSION_CVP_START + 0x03E)
- #define HFI_MSG_SESSION_CVP_WARP\
- (HFI_MSG_SESSION_CVP_START + 0x03F)
- #define HFI_MSG_SESSION_CVP_DMM_PARAMS\
- (HFI_MSG_SESSION_CVP_START + 0x040)
- #define HFI_MSG_SESSION_CVP_WARP_DS_PARAMS\
- (HFI_MSG_SESSION_CVP_START + 0x041)
- #define HFI_MSG_SESSION_CVP_SET_SNAPSHOT_BUFFERS\
- (HFI_MSG_SESSION_CVP_START + 0x045)
- #define HFI_MSG_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS\
- (HFI_MSG_SESSION_CVP_START + 0x046)
- #define HFI_MSG_EVENT_NOTIFY_SNAPSHOT_READY\
- (HFI_MSG_SESSION_CVP_START + 0x047)
- #define HFI_MSG_SESSION_CVP_FLUSH\
- (HFI_MSG_SESSION_CVP_START + 0x004A)
- #define HFI_MSG_SESSION_EVA_START\
- (HFI_MSG_SESSION_CVP_START + 0x0058)
- #define HFI_MSG_SESSION_EVA_STOP\
- (HFI_MSG_SESSION_CVP_START + 0x0059)
- #define CVP_IFACEQ_MAX_PKT_SIZE 1024
- #define CVP_IFACEQ_MED_PKT_SIZE 768
- #define CVP_IFACEQ_MIN_PKT_SIZE 8
- #define CVP_IFACEQ_VAR_SMALL_PKT_SIZE 100
- #define CVP_IFACEQ_VAR_LARGE_PKT_SIZE 512
- #define CVP_IFACEQ_VAR_HUGE_PKT_SIZE (1024*12)
- /* HFI packet info needed for sanity check */
- #define HFI_DFS_CONFIG_CMD_SIZE 38
- #define HFI_DFS_FRAME_CMD_SIZE 16
- #define HFI_DMM_CONFIG_CMD_SIZE 194
- #define HFI_DMM_BASIC_CONFIG_CMD_SIZE 51
- #define HFI_DMM_FRAME_CMD_SIZE 28
- #define HFI_PERSIST_CMD_SIZE 11
- #define HFI_DS_CONFIG_CMD_SIZE 11
- #define HFI_DS_CMD_SIZE 50
- #define HFI_OF_CONFIG_CMD_SIZE 34
- #define HFI_OF_FRAME_CMD_SIZE 24
- #define HFI_ODT_CONFIG_CMD_SIZE 23
- #define HFI_ODT_FRAME_CMD_SIZE 33
- #define HFI_OD_CONFIG_CMD_SIZE 24
- #define HFI_OD_FRAME_CMD_SIZE 12
- #define HFI_NCC_CONFIG_CMD_SIZE 47
- #define HFI_NCC_FRAME_CMD_SIZE 22
- #define HFI_ICA_CONFIG_CMD_SIZE 127
- #define HFI_ICA_FRAME_CMD_SIZE 14
- #define HFI_HCD_CONFIG_CMD_SIZE 46
- #define HFI_HCD_FRAME_CMD_SIZE 18
- #define HFI_DCM_CONFIG_CMD_SIZE 20
- #define HFI_DCM_FRAME_CMD_SIZE 19
- #define HFI_PYS_HCD_CONFIG_CMD_SIZE 461
- #define HFI_PYS_HCD_FRAME_CMD_SIZE 66
- #define HFI_FD_CONFIG_CMD_SIZE 28
- #define HFI_FD_FRAME_CMD_SIZE 10
- struct cvp_hfi_cmd_session_flush_packet {
- u32 size;
- u32 packet_type;
- u32 session_id;
- u32 flush_type;
- };
- struct cvp_hfi_cmd_session_get_property_packet {
- u32 size;
- u32 packet_type;
- u32 session_id;
- u32 num_properties;
- u32 rg_property_data[1];
- };
- struct cvp_hfi_msg_sys_session_abort_done_packet {
- u32 size;
- u32 packet_type;
- u32 session_id;
- u32 error_type;
- };
- struct cvp_hfi_msg_sys_property_info_packet {
- u32 size;
- u32 packet_type;
- u32 num_properties;
- u32 rg_property_data[128];
- };
- enum session_flags {
- SESSION_PAUSE = BIT(1),
- };
- struct cvp_hal_session {
- struct list_head list;
- void *session_id;
- u32 flags;
- void *device;
- };
- enum buf_map_type {
- MAP_PERSIST = 1,
- UNMAP_PERSIST = 2,
- MAP_FRAME = 3,
- MAP_INVALID,
- };
- static inline enum buf_map_type cvp_find_map_type(int pkt_type)
- {
- if (pkt_type == HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS ||
- pkt_type == HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS ||
- pkt_type == HFI_CMD_SESSION_CVP_DMM_PARAMS ||
- pkt_type == HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS ||
- pkt_type == HFI_CMD_SESSION_CVP_WARP_DS_PARAMS ||
- pkt_type == HFI_CMD_SESSION_EVA_DLFL_CONFIG)
- return MAP_PERSIST;
- else if (pkt_type == HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS ||
- pkt_type ==
- HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS)
- return UNMAP_PERSIST;
- else
- return MAP_FRAME;
- }
- static inline bool is_params_pkt(int pkt_type)
- {
- if (pkt_type == HFI_CMD_SESSION_CVP_DMM_PARAMS ||
- pkt_type == HFI_CMD_SESSION_CVP_WARP_DS_PARAMS)
- return true;
- return false;
- }
- #endif
|