| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (c) 2019 MediaTek Inc. |
| */ |
| |
| |
| #ifndef __MTK_RPMSG_CCD_MEM_H__ |
| #define __MTK_RPMSG_CCD_MEM_H__ |
| |
| #define MAX_NUMBER_OF_BUFFER (128) |
| struct vb2_mem_ops; |
| struct ccd_mem_obj; |
| |
| /** |
| * struct mtk_ccd_mem - memory buffer allocated in kernel |
| * |
| * @mem_priv: vb2_dc_buf |
| * @size: allocated buffer size |
| */ |
| struct mtk_ccd_mem { |
| void *mem_priv; |
| size_t size; |
| }; |
| |
| /** |
| * struct mtk_ccd_memory |
| * |
| * @vcu: struct mtk_ccd |
| * @mmap_lock: the lock to protect allocated buffer |
| * @dev: device |
| * @num_buffers:allocated buffer number |
| * @mem_ops: the file operation of memory allocated |
| * @bufs: store the information of allocated buffers |
| */ |
| struct mtk_ccd_memory { |
| void *priv; |
| struct mutex mmap_lock; |
| struct device *dev; |
| unsigned int num_buffers; |
| const struct vb2_mem_ops *mem_ops; |
| struct mtk_ccd_mem bufs[MAX_NUMBER_OF_BUFFER]; |
| }; |
| |
| struct mtk_ccd_memory *mtk_ccd_mem_init(struct device *dev); |
| void mtk_ccd_mem_release(struct mtk_ccd *ccd); |
| #endif |