kernel-brax3-ubuntu-touch/drivers/rpmsg/mtk_ccd_rpmsg_internal.h
erascape f319b992b1 kernel-5.15: Initial import brax3 UT kernel
* halium configs enabled

Signed-off-by: erascape <erascape@proton.me>
2025-09-23 15:17:10 +00:00

56 lines
1.2 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#ifndef __MTK_RPMSG_INTERNAL_H__
#define __MTK_RPMSG_INTERNAL_H__
#include <linux/device.h>
#include <linux/remoteproc.h>
#include <linux/rpmsg.h>
#include <linux/idr.h>
#define MTK_CCD_MSGDEV_ADDR (0x3f0)
struct ccd_worker_item;
struct mtk_ccd_channel_info;
enum ccd_mept_state {
CCD_MENDPOINT_CREATED = 0,
CCD_MENDPOINT_DESTROY
};
struct mtk_ccd_queue {
struct list_head queue;
spinlock_t queue_lock; /* Protect queue operation */
};
struct mtk_ccd_params {
struct list_head list_entry;
struct ccd_worker_item worker_obj;
};
struct mtk_ccd_rpmsg_endpoint {
struct rpmsg_endpoint ept;
struct mtk_ccd_channel_info mchinfo;
struct mtk_rpmsg_rproc_subdev *mtk_subdev;
wait_queue_head_t worker_readwq;
struct mtk_ccd_queue pending_sendq;
atomic_t ccd_cmd_sent; /* Should be 0, 1, ..., N */
atomic_t ccd_mep_state; /* enum ccd_mept_state */
};
struct mtk_ccd_mchinfo_entry {
struct list_head list_entry;
struct mtk_ccd_channel_info *mchinfo;
};
#define to_mtk_rpmsg_endpoint(r) \
container_of(r, struct mtk_ccd_rpmsg_endpoint, ept)
int ccd_msgdev_init(void);
void __ept_release(struct kref *kref);
#endif