Files
threeeye bc1d038eac REVVL 6 Pro kernel bring-up: full working tree snapshot (2026-09-12)
Squashed backup commit (no shallow-clone history issues) of
xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream
commit 9eece662e) plus all fixes applied to get everpal_defconfig building
clean against a modern (GCC 15.2.0) toolchain -- see the previous commit
message on the lineage-23.2 branch (also in this repo history is not
available here since this is a squashed snapshot; full incremental history
lives in the local DL380 checkout and the upstream GitHub remote).

Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
2026-09-12 13:36:46 +00:00

236 lines
6.7 KiB
C

/*
* Copyright (C) 2015 MediaTek Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __MMPROFILE_H__
#define __MMPROFILE_H__
#include "mmprofile_static_event.h"
#ifdef __cplusplus
extern "C" {
#endif
#define MMPROFILE_EVENT_NAME_MAX_LEN 31
#define MMP_Event mmp_event
#define mmp_event unsigned int
enum mmp_log_type {
MMPROFILE_FLAG_START = 1,
MMPROFILE_FLAG_END = 2,
MMPROFILE_FLAG_PULSE = 4,
MMPROFILE_FLAG_EVENT_SEPARATOR = 8,
MMPROFILE_FLAG_SYSTRACE = 0x80000000,
MMPROFILE_FLAG_MAX = 0xFFFFFFFF
};
enum mmp_metadata_type {
MMPROFILE_META_STRING_MBS = 1,
MMPROFILE_META_STRING_WCS,
MMPROFILE_META_STRUCTURE,
MMPROFILE_META_BITMAP,
MMPROFILE_META_RAW,
MMPROFILE_META_USER = 0x10000000,
MMPROFILE_META_USER_M4U_REG,
MMPROFILE_META_MAX = 0xFFFFFFFF
};
enum mmp_pixel_format {
MMPROFILE_BITMAP_RGB565 = 1,
MMPROFILE_BITMAP_RGB888,
MMPROFILE_BITMAP_RGBA8888,
MMPROFILE_BITMAP_BGR888,
MMPROFILE_BITMAP_BGRA8888,
MMPROFILE_BITMAP_UYVY,
MMPROFILE_BITMAP_VYUY,
MMPROFILE_BITMAP_YUYV,
MMPROFILE_BITMAP_YVYU,
MMPROFILE_BITMAP_MAX = 0xFFFFFFFF
};
struct mmp_metadata_t {
unsigned int data1; /* data1 (user defined) */
unsigned int data2; /* data2 (user defined) */
enum mmp_metadata_type data_type; /* meta data type */
unsigned int size; /* meta data size */
void *p_data; /* meta data pointer */
};
#ifdef CONFIG_COMPAT
struct compat_mmp_metadata_t {
unsigned int data1; /* data1 (user defined) */
unsigned int data2; /* data2 (user defined) */
enum mmp_metadata_type data_type; /* meta data type */
unsigned int size; /* meta data size */
unsigned int p_data; /* meta data pointer */
};
#endif
struct mmp_metadata_structure_t {
unsigned int data1; /* data1 (user defined) */
unsigned int data2; /* data2 (user defined) */
unsigned int struct_size; /* structure size (bytes) */
void *p_data; /* structure pointer */
char struct_name[32]; /* structure name */
};
struct mmp_metadata_bitmap_t {
unsigned int data1; /* data1 (user defined) */
unsigned int data2; /* data2 (user defined) */
unsigned int width; /* image width */
unsigned int height; /* image height */
enum mmp_pixel_format format; /* image pixel format */
/* start offset of image data (base on p_data) */
unsigned int start_pos;
unsigned int bpp; /* bits per pixel */
int pitch; /* image pitch (bytes per line) */
unsigned int data_size; /* image data size (bytes) */
unsigned int down_sample_x; /* horizontal down sample rate (>=1) */
unsigned int down_sample_y; /* vertical down sample rate (>=1) */
void *p_data; /* image buffer address */
};
#ifdef CONFIG_MMPROFILE
mmp_event mmprofile_register_event(mmp_event parent, const char *name);
mmp_event mmprofile_find_event(mmp_event parent, const char *name);
void mmprofile_enable_event(mmp_event event, long enable);
void mmprofile_enable_ftrace_event(mmp_event event, long enable, long ftrace);
void mmprofile_enable_event_recursive(mmp_event event, long enable);
void mmprofile_enable_ftrace_event_recursive(mmp_event event, long enable,
long ftrace);
long mmprofile_query_enable(mmp_event event);
void mmprofile_log(mmp_event event, enum mmp_log_type type);
void mmprofile_log_ex(mmp_event event, enum mmp_log_type type,
unsigned long data1, unsigned long data2);
long mmprofile_log_meta(mmp_event event, enum mmp_log_type type,
struct mmp_metadata_t *p_meta_data);
long mmprofile_log_meta_string(mmp_event event, enum mmp_log_type type,
const char *str);
long mmprofile_log_meta_string_ex(mmp_event event, enum mmp_log_type type,
unsigned long data1, unsigned long data2, const char *str);
long mmprofile_log_meta_structure(mmp_event event, enum mmp_log_type type,
struct mmp_metadata_structure_t *p_meta_data);
long mmprofile_log_meta_bitmap(mmp_event event, enum mmp_log_type type,
struct mmp_metadata_bitmap_t *p_meta_data);
long mmprofile_log_meta_yuv_bitmap(mmp_event event, enum mmp_log_type type,
struct mmp_metadata_bitmap_t *p_meta_data);
void mmprofile_start(int start);
void mmprofile_enable(int enable);
unsigned int mmprofile_get_dump_size(void);
void mmprofile_get_dump_buffer(unsigned int start, unsigned long *p_addr,
unsigned int *p_size);
#endif
/*
* if in kernel config CONFIG_MMPROFILE is not set,
* and the kernel makefile had define
* obj-$(CONFIG_MMPROFILE) += mmp/
* , the mmp/ driver is compiled but not built-in.
* Put dummy API implementation here.
*/
#ifndef CONFIG_MMPROFILE
static inline mmp_event mmprofile_register_event(mmp_event parent,
const char *name)
{
return 0;
}
static inline mmp_event mmprofile_find_event(mmp_event parent, const char *name)
{
return 0;
}
static inline void mmprofile_enable_event(mmp_event event, long enable)
{
}
static inline void mmprofile_enable_event_recursive(mmp_event event,
long enable)
{
}
static inline void mmprofile_enable_ftrace_event(mmp_event event, long enable,
long ftrace)
{
}
static inline void mmprofile_enable_ftrace_event_recursive(mmp_event event,
long enable, long ftrace)
{
}
static inline long mmprofile_query_enable(mmp_event event)
{
return 0;
}
static inline void mmprofile_log_ex(mmp_event event, enum mmp_log_type type,
unsigned long data1, unsigned long data2)
{
}
static inline void mmprofile_log(mmp_event event, enum mmp_log_type type)
{
}
static inline long mmprofile_log_meta(mmp_event event, enum mmp_log_type type,
struct mmp_metadata_t *p_meta_data)
{
return 0;
}
static inline long mmprofile_log_meta_structure(mmp_event event,
enum mmp_log_type type, struct mmp_metadata_structure_t *p_meta_data)
{
return 0;
}
static inline long mmprofile_log_meta_string_ex(mmp_event event,
enum mmp_log_type type, unsigned long data1, unsigned long data2,
const char *str)
{
return 0;
}
static inline long mmprofile_log_meta_string(mmp_event event,
enum mmp_log_type type, const char *str)
{
return 0;
}
static inline long mmprofile_log_meta_bitmap(mmp_event event,
enum mmp_log_type type, struct mmp_metadata_bitmap_t *p_meta_data)
{
return 0;
}
static inline long mmprofile_log_meta_yuv_bitmap(mmp_event event,
enum mmp_log_type type, struct mmp_metadata_bitmap_t *p_meta_data)
{
return 0;
}
static inline void mmprofile_start(int start)
{
}
static inline void mmprofile_enable(int enable)
{
}
#endif
#ifdef __cplusplus
}
#endif
#endif