kernel_samsung_a53x/drivers/gpu/drm/samsung/sgpu/sgpu_dmsg.h

54 lines
1.3 KiB
C
Raw Normal View History

2024-06-15 16:02:09 -03:00
/*
* @file sgpu_dmsg.h
* @copyright 2021 Samsung Electronics
*/
#ifndef __SGPU_DMSG_H__
#define __SGPU_DMSG_H__
struct amdgpu_device;
#define SGPU_DMSG_ENTITY_LENGTH 4096
#define SGPU_DMSG_LOG_LENGTH 256
struct sgpu_dmsg {
char log[SGPU_DMSG_ENTITY_LENGTH][SGPU_DMSG_LOG_LENGTH];
};
enum sgpu_dmsg_func {
DMSG_DVFS = (1<<0),
DMSG_POWER = (1<<1),
DMSG_MEMORY = (1<<2),
DMSG_ETC = (1<<3),
DMSG_FUNCMASK = (1<<4) - 1,
};
enum sgpu_dmsg_level {
DMSG_LEVEL_MIN = 0,
DMSG_DEBUG = 0,
DMSG_INFO,
DMSG_WARNING,
DMSG_ERROR,
DMSG_LEVEL_MAX,
};
#define SGPU_LOG(adev, level, func, fmt, ...) \
do { \
if (adev && adev->sgpu_dmsg && \
(level >= adev->sgpu_dmsg_level) && \
(func & adev->sgpu_dmsg_funcmask)) { \
ktime_t time = ktime_get(); \
int index = atomic64_inc_return(&adev->sgpu_dmsg_index) % \
SGPU_DMSG_ENTITY_LENGTH; \
sgpu_dmsg_log(adev, __func__, func, time, index, fmt, ##__VA_ARGS__); \
} \
} while (0)
void sgpu_dmsg_log(struct amdgpu_device *adev, const char *caller, int func,
ktime_t time, int index, const char *fmt, ...);
int sgpu_debugfs_dmsg_init(struct amdgpu_device *adev);
void sgpu_debugfs_dmsg_fini(struct amdgpu_device *adev);
int sgpu_dmsg_init(struct amdgpu_device *adev);
void sgpu_dmsg_fini(struct amdgpu_device *adev);
#endif /*__SGPU_DMSG_H__ */