unplugged-kernel/drivers/gpu/mediatek/gpu_rgx/m1.13ED5776728/include/mtk_pp.h

82 lines
1.6 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#ifndef __MTK_PP_H__
#define __MTK_PP_H__
#include <linux/mutex.h>
#if defined(MTK_DEBUG_PROC_PRINT)
#if defined(__GNUC__)
#define MTK_PP_FORMAT_PRINTF(x, y) __printf(x, y)
#else
#define MTK_PP_FORMAT_PRINTF(x, y)
#endif
enum MTKPP_ID {
MTKPP_ID_FW,
MTKPP_ID_SYNC,
MTKPP_ID_SHOT_FW,
MTKPP_ID_SIZE
};
extern int g_use_id;
enum MTKPP_BUFFERTYPE {
MTKPP_QUEUEBUFFER,
MTKPP_RINGBUFFER
};
struct MTK_PROC_PRINT_DATA {
enum MTKPP_BUFFERTYPE type;
char *data;
char **line;
int data_array_size;
int line_array_size;
int current_data;
int current_line;
spinlock_t lock;
unsigned long irqflags;
void (*pfn_print)(struct MTK_PROC_PRINT_DATA *data,
const char *fmt, ...) MTK_PP_FORMAT_PRINTF(2, 3);
};
void MTKPP_Init(void);
void MTKPP_Deinit(void);
struct MTK_PROC_PRINT_DATA *MTKPP_GetData(enum MTKPP_ID id);
#define MTKPP_LOG(id, ...) \
do { \
struct MTK_PROC_PRINT_DATA *mtkpp_data = MTKPP_GetData(id); \
if (mtkpp_data != NULL) \
mtkpp_data->pfn_print(mtkpp_data, __VA_ARGS__); \
} while (0)
/* print log into both kerne log and gpulog for time sync */
void MTKPP_LOGTIME(enum MTKPP_ID id, const char *);
/* trigger AEE to generate a DB */
void MTKPP_TriggerAEE(int bug_on);
#else
#define MTKPP_LOG(...)
#define MTKPP_LOGTIME(...)
#define MTKPP_TriggerAEE(...)
#endif
#endif /* __MTK_PP_H__ */
/******************************************************************************
* End of file (mtk_pp.h)
*****************************************************************************/