1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2013 - 2025 Intel Corporation 4 */ 5 6 #ifndef IPU7_SYSCOM_H 7 #define IPU7_SYSCOM_H 8 9 #include <linux/types.h> 10 11 struct syscom_config_s; 12 struct syscom_queue_params_config; 13 14 struct syscom_queue_config { 15 void *token_array_mem; 16 u32 queue_size; 17 u16 token_size_in_bytes; 18 u16 max_capacity; 19 }; 20 21 struct ipu7_syscom_context { 22 u16 num_input_queues; 23 u16 num_output_queues; 24 struct syscom_queue_config *queue_configs; 25 void __iomem *queue_indices; 26 dma_addr_t queue_mem_dma_addr; 27 void *queue_mem; 28 u32 queue_mem_size; 29 }; 30 31 void ipu7_syscom_put_token(struct ipu7_syscom_context *ctx, int q); 32 void *ipu7_syscom_get_token(struct ipu7_syscom_context *ctx, int q); 33 struct syscom_queue_params_config * 34 ipu7_syscom_get_queue_config(struct syscom_config_s *config); 35 #endif 36