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