38 lines
855 B
C
38 lines
855 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2020 MediaTek Inc.
|
|
*/
|
|
|
|
|
|
#ifndef __APUSYS_REVISER_REMOTE_H__
|
|
#define __APUSYS_REVISER_REMOTE_H__
|
|
|
|
|
|
#define REVISER_REMOTE_TIMEOUT 30000
|
|
|
|
struct reviser_remote_info {
|
|
bool init;
|
|
};
|
|
struct reviser_remote_lock {
|
|
struct mutex mutex_cmd;
|
|
struct mutex mutex_ipi;
|
|
struct mutex mutex_mgr;
|
|
spinlock_t lock_rx;
|
|
wait_queue_head_t wait_rx;
|
|
};
|
|
|
|
struct reviser_msg_mgr {
|
|
struct reviser_remote_lock lock;
|
|
struct reviser_remote_info info;
|
|
struct list_head list_rx;
|
|
uint32_t count;
|
|
uint32_t send_sn;
|
|
};
|
|
|
|
bool reviser_is_remote(void);
|
|
int reviser_remote_init(void);
|
|
void reviser_remote_exit(void);
|
|
int reviser_remote_send_cmd_sync(void *drvinfo, void *request, void *reply, uint32_t timeout);
|
|
int reviser_remote_rx_cb(void *data, int len);
|
|
int reviser_remote_sync_sn(void *drvinfo, uint32_t sn);
|
|
#endif
|