1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2020 - 2025 Intel Corporation 4 */ 5 6 #ifndef IPU7_FW_SYSCOM_ABI_H 7 #define IPU7_FW_SYSCOM_ABI_H 8 9 #include <linux/types.h> 10 11 #include "ipu7_fw_common_abi.h" 12 13 #pragma pack(push, 1) 14 #define SYSCOM_QUEUE_MIN_CAPACITY 2U 15 16 struct syscom_queue_params_config { 17 ia_gofo_addr_t token_array_mem; 18 u16 token_size_in_bytes; 19 u16 max_capacity; 20 }; 21 22 struct syscom_config_s { 23 u16 max_output_queues; 24 u16 max_input_queues; 25 }; 26 27 #pragma pack(pop) 28 29 static inline struct syscom_queue_params_config * syscom_config_get_queue_configs(struct syscom_config_s * config)30syscom_config_get_queue_configs(struct syscom_config_s *config) 31 { 32 return (struct syscom_queue_params_config *)(&config[1]); 33 } 34 35 static inline const struct syscom_queue_params_config * syscom_config_get_queue_configs_const(const struct syscom_config_s * config)36syscom_config_get_queue_configs_const(const struct syscom_config_s *config) 37 { 38 return (const struct syscom_queue_params_config *)(&config[1]); 39 } 40 41 #pragma pack(push, 1) 42 struct syscom_queue_indices_s { 43 u32 read_index; 44 u32 write_index; 45 }; 46 47 #pragma pack(pop) 48 49 #endif 50