552 lines
13 KiB
C
Executable file
552 lines
13 KiB
C
Executable file
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) Samsung Electronics Co., Ltd.
|
|
* Gwanghui Lee <gwanghui.lee@samsung.com>
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
#ifndef __MDNIE_H__
|
|
#define __MDNIE_H__
|
|
|
|
#include "panel.h"
|
|
#include "dpui.h"
|
|
|
|
typedef u8 mdnie_t;
|
|
|
|
#define MDNIE_DEV_NAME ("mdnie")
|
|
#define MAX_MDNIE_DEV_NAME_SIZE (32)
|
|
#define MDNIE_SYSFS_PREFIX "/sdcard/mdnie/"
|
|
|
|
#define IS_MDNIE_ENABLED(_mdnie_) (!!(_mdnie_)->props.enable)
|
|
#define IS_DMB(idx) (idx == DMB_NORMAL_MODE)
|
|
#define IS_SCENARIO(idx) (idx < SCENARIO_MAX && !(idx > VIDEO_NORMAL_MODE && idx < CAMERA_MODE))
|
|
#define IS_ACCESSIBILITY(idx) (idx && idx < ACCESSIBILITY_MAX)
|
|
#define IS_HBM(idx) (idx && idx < HBM_MAX)
|
|
#define IS_HMD(idx) (idx && idx < HMD_MDNIE_MAX)
|
|
|
|
#define SCENARIO_IS_VALID(idx) (IS_DMB(idx) || IS_SCENARIO(idx))
|
|
#define IS_NIGHT_MODE_ON(idx) (idx == NIGHT_MODE_ON)
|
|
#define IS_COLOR_LENS_ON(idx) (idx == COLOR_LENS_ON)
|
|
#define IS_HDR(idx) (idx >= HDR_ON && idx < HDR_MAX)
|
|
#define IS_LIGHT_NOTIFICATION(idx) (idx >= LIGHT_NOTIFICATION_ON && idx < LIGHT_NOTIFICATION_MAX)
|
|
|
|
#define COLOR_OFFSET_FUNC(x, y, num, den, con) \
|
|
(((s64)y * 1024LL) + ((((s64)x * 1024LL) * ((s64)num)) / ((s64)den)) + ((s64)con * 1024LL))
|
|
#define RECOGNIZE_REGION(compV, compH) \
|
|
((((compV) > 0) ? (0 + (((compH) > 0) ? 0 : 1)) : (2 + (((compH) < 0) ? 0 : 1))))
|
|
|
|
#define MAPTBL_IDX_SCENARIO(_idx_) (MDNIE_SCENARIO_MAPTBL_START + (_idx_))
|
|
#define MAPTBL_IDX_ACCESSIBILITY(_idx_) (MDNIE_ACCESSIBILITY_MAPTBL_START + (_idx_) - 1)
|
|
|
|
#define IS_BYPASS_MODE(_mdnie_) (((_mdnie_)->props.bypass >= BYPASS_ON) && ((_mdnie_)->props.bypass < BYPASS_MAX))
|
|
#define IS_ACCESSIBILITY_MODE(_mdnie_) (((_mdnie_)->props.accessibility > ACCESSIBILITY_OFF) && ((_mdnie_)->props.accessibility < ACCESSIBILITY_MAX))
|
|
#define IS_LIGHT_NOTIFICATION_MODE(_mdnie_) (((_mdnie_)->props.light_notification >= LIGHT_NOTIFICATION_ON) && ((_mdnie_)->props.light_notification < LIGHT_NOTIFICATION_MAX))
|
|
#define IS_HDR_MODE(_mdnie_) (((_mdnie_)->props.hdr >= HDR_ON) && ((_mdnie_)->props.hdr < HDR_MAX))
|
|
#define IS_HMD_MODE(_mdnie_) (((_mdnie_)->props.hmd >= HMD_MDNIE_ON) && ((_mdnie_)->props.hmd < HMD_MDNIE_MAX))
|
|
#define IS_NIGHT_MODE(_mdnie_) (((_mdnie_)->props.night >= NIGHT_MODE_ON) && ((_mdnie_)->props.night < NIGHT_MODE_MAX))
|
|
#define IS_COLOR_LENS_MODE(_mdnie_) (((_mdnie_)->props.color_lens >= COLOR_LENS_ON) && ((_mdnie_)->props.color_lens < COLOR_LENS_MAX))
|
|
#define IS_HBM_MODE(_mdnie_) (((_mdnie_)->props.hbm >= HBM_ON) && ((_mdnie_)->props.hbm < HBM_MAX))
|
|
#define IS_DMB_MODE(_mdnie_) ((_mdnie_)->props.scenario == DMB_NORMAL_MODE)
|
|
#define IS_SCENARIO_MODE(_mdnie_) (((_mdnie_)->props.scenario >= UI_MODE && (_mdnie_)->props.scenario <= VIDEO_NORMAL_MODE) || \
|
|
((_mdnie_)->props.scenario >= CAMERA_MODE && (_mdnie_)->props.scenario < SCENARIO_MAX))
|
|
#define IS_LDU_MODE(_mdnie_) (((_mdnie_)->props.ldu > LDU_MODE_OFF) && ((_mdnie_)->props.ldu < MAX_LDU_MODE))
|
|
|
|
#define MAX_MDNIE_SCR_LEN (24)
|
|
#define MAX_COLOR (3)
|
|
|
|
#define GET_MSB_8BIT(x) ((x >> 8) & (BIT(8) - 1))
|
|
#define GET_LSB_8BIT(x) ((x >> 0) & (BIT(8) - 1))
|
|
|
|
#define MIN_WRGB_OFS (-40)
|
|
#define MAX_WRGB_OFS (0)
|
|
#define IS_VALID_WRGB_OFS(_ofs_) (((int)(_ofs_) <= MAX_WRGB_OFS) && ((int)(_ofs_) >= (MIN_WRGB_OFS)))
|
|
|
|
#define MIN_WCRD_X (2930)
|
|
#define MAX_WCRD_X (3060)
|
|
#define MIN_WCRD_Y (3050)
|
|
#define MAX_WCRD_Y (3260)
|
|
|
|
#ifdef CONFIG_SUPPORT_AFC
|
|
#define MAX_AFC_ROI_LEN (12)
|
|
#endif
|
|
|
|
enum {
|
|
MDNIE_OFF_MODE,
|
|
MDNIE_BYPASS_MODE,
|
|
MDNIE_ACCESSIBILITY_MODE,
|
|
MDNIE_LIGHT_NOTIFICATION_MODE,
|
|
MDNIE_COLOR_LENS_MODE,
|
|
MDNIE_HDR_MODE,
|
|
MDNIE_HMD_MODE,
|
|
MDNIE_NIGHT_MODE,
|
|
MDNIE_HBM_MODE,
|
|
MDNIE_DMB_MODE,
|
|
MDNIE_SCENARIO_MODE,
|
|
MAX_MDNIE_MODE,
|
|
};
|
|
|
|
enum SCENARIO_MODE {
|
|
DYNAMIC,
|
|
STANDARD,
|
|
NATURAL,
|
|
MOVIE,
|
|
AUTO,
|
|
MODE_MAX
|
|
};
|
|
|
|
enum SCENARIO {
|
|
UI_MODE,
|
|
VIDEO_NORMAL_MODE,
|
|
CAMERA_MODE = 4,
|
|
NAVI_MODE,
|
|
GALLERY_MODE,
|
|
VT_MODE,
|
|
BROWSER_MODE,
|
|
EBOOK_MODE,
|
|
EMAIL_MODE,
|
|
GAME_LOW_MODE,
|
|
GAME_MID_MODE,
|
|
GAME_HIGH_MODE,
|
|
VIDEO_ENHANCER,
|
|
VIDEO_ENHANCER_THIRD,
|
|
HMD_8_MODE,
|
|
HMD_16_MODE,
|
|
SCENARIO_MAX,
|
|
DMB_NORMAL_MODE = 20,
|
|
DMB_MODE_MAX
|
|
};
|
|
|
|
enum BYPASS {
|
|
BYPASS_OFF = 0,
|
|
BYPASS_ON,
|
|
BYPASS_MAX
|
|
};
|
|
|
|
enum ACCESSIBILITY {
|
|
ACCESSIBILITY_OFF,
|
|
NEGATIVE,
|
|
COLOR_BLIND,
|
|
SCREEN_CURTAIN,
|
|
GRAYSCALE,
|
|
GRAYSCALE_NEGATIVE,
|
|
COLOR_BLIND_HBM,
|
|
ACCESSIBILITY_MAX
|
|
};
|
|
|
|
enum HBM {
|
|
HBM_OFF,
|
|
HBM_ON,
|
|
HBM_MAX
|
|
};
|
|
|
|
enum HMD_MODE {
|
|
HMD_MDNIE_OFF,
|
|
HMD_MDNIE_ON,
|
|
HMD_3000K = HMD_MDNIE_ON,
|
|
HMD_4000K,
|
|
HMD_5000K,
|
|
HMD_6500K,
|
|
HMD_7500K,
|
|
HMD_MDNIE_MAX
|
|
};
|
|
|
|
enum NIGHT_MODE {
|
|
NIGHT_MODE_OFF,
|
|
NIGHT_MODE_ON,
|
|
NIGHT_MODE_MAX
|
|
};
|
|
|
|
enum NIGHT_LEVEL {
|
|
NIGHT_LEVEL_6500K,
|
|
NIGHT_LEVEL_6100K,
|
|
NIGHT_LEVEL_5700K,
|
|
NIGHT_LEVEL_5300K,
|
|
NIGHT_LEVEL_4900K,
|
|
NIGHT_LEVEL_4500K,
|
|
NIGHT_LEVEL_4100K,
|
|
NIGHT_LEVEL_3700K,
|
|
NIGHT_LEVEL_3300K,
|
|
NIGHT_LEVEL_2900K,
|
|
NIGHT_LEVEL_2500K,
|
|
NIGHT_LEVEL_7000K,
|
|
MAX_NIGHT_LEVEL,
|
|
};
|
|
|
|
enum COLOR_LENS {
|
|
COLOR_LENS_OFF,
|
|
COLOR_LENS_ON,
|
|
COLOR_LENS_MAX
|
|
};
|
|
|
|
enum COLOR_LENS_COLOR {
|
|
COLOR_LENS_COLOR_BLUE,
|
|
COLOR_LENS_COLOR_AZURE,
|
|
COLOR_LENS_COLOR_CYAN,
|
|
COLOR_LENS_COLOR_SPRING_GREEN,
|
|
COLOR_LENS_COLOR_GREEN,
|
|
COLOR_LENS_COLOR_CHARTREUSE_GREEN,
|
|
COLOR_LENS_COLOR_YELLOW,
|
|
COLOR_LENS_COLOR_ORANGE,
|
|
COLOR_LENS_COLOR_RED,
|
|
COLOR_LENS_COLOR_ROSE,
|
|
COLOR_LENS_COLOR_MAGENTA,
|
|
COLOR_LENS_COLOR_VIOLET,
|
|
COLOR_LENS_COLOR_MAX
|
|
};
|
|
|
|
enum COLOR_LENS_LEVEL {
|
|
COLOR_LENS_LEVEL_20P,
|
|
COLOR_LENS_LEVEL_25P,
|
|
COLOR_LENS_LEVEL_30P,
|
|
COLOR_LENS_LEVEL_35P,
|
|
COLOR_LENS_LEVEL_40P,
|
|
COLOR_LENS_LEVEL_45P,
|
|
COLOR_LENS_LEVEL_50P,
|
|
COLOR_LENS_LEVEL_55P,
|
|
COLOR_LENS_LEVEL_60P,
|
|
COLOR_LENS_LEVEL_MAX,
|
|
};
|
|
|
|
enum HDR {
|
|
HDR_OFF,
|
|
HDR_ON,
|
|
HDR_1 = HDR_ON,
|
|
HDR_2,
|
|
HDR_3,
|
|
HDR_MAX
|
|
};
|
|
|
|
enum LIGHT_NOTIFICATION {
|
|
LIGHT_NOTIFICATION_OFF = 0,
|
|
LIGHT_NOTIFICATION_ON,
|
|
LIGHT_NOTIFICATION_MAX
|
|
};
|
|
|
|
enum {
|
|
CCRD_PT_NONE,
|
|
CCRD_PT_1,
|
|
CCRD_PT_2,
|
|
CCRD_PT_3,
|
|
CCRD_PT_4,
|
|
CCRD_PT_5,
|
|
CCRD_PT_6,
|
|
CCRD_PT_7,
|
|
CCRD_PT_8,
|
|
CCRD_PT_9,
|
|
MAX_CCRD_PT,
|
|
};
|
|
|
|
enum LDU_MODE {
|
|
LDU_MODE_OFF,
|
|
LDU_MODE_1,
|
|
LDU_MODE_2,
|
|
LDU_MODE_3,
|
|
LDU_MODE_4,
|
|
LDU_MODE_5,
|
|
MAX_LDU_MODE,
|
|
};
|
|
|
|
enum SCR_WHITE_MODE {
|
|
SCR_WHITE_MODE_NONE,
|
|
SCR_WHITE_MODE_COLOR_COORDINATE,
|
|
SCR_WHITE_MODE_ADJUST_LDU,
|
|
SCR_WHITE_MODE_SENSOR_RGB,
|
|
MAX_SCR_WHITE_MODE,
|
|
};
|
|
|
|
enum TRANS_MODE {
|
|
TRANS_OFF,
|
|
TRANS_ON,
|
|
MAX_TRANS_MODE,
|
|
};
|
|
|
|
enum MDNIE_MAPTBL {
|
|
/* SCENARIO */
|
|
MDNIE_SCENARIO_MAPTBL_START,
|
|
MDNIE_UI_MAPTBL = MDNIE_SCENARIO_MAPTBL_START,
|
|
MDNIE_VIDEO_MAPTBL,
|
|
MDNIE_CAMERA_MAPTBL = 4,
|
|
MDNIE_NAVI_MAPTBL,
|
|
MDNIE_GALLERY_MAPTBL,
|
|
MDNIE_VT_MAPTBL,
|
|
MDNIE_BROWSER_MAPTBL,
|
|
MDNIE_EBOOK_MAPTBL,
|
|
MDNIE_EMAIL_MAPTBL,
|
|
MDNIE_GAME_LOW_MAPTBL,
|
|
MDNIE_GAME_MID_MAPTBL,
|
|
MDNIE_GAME_HIGH_MAPTBL,
|
|
MDNIE_VIDEO_ENHANCER_MAPTBL,
|
|
MDNIE_VIDEO_ENHANCER_THIRD_MAPTBL,
|
|
MDNIE_HMD_8_MAPTBL,
|
|
MDNIE_HMD_16_MAPTBL,
|
|
#if defined(CONFIG_TDMB)
|
|
MDNIE_DMB_MAPTBL,
|
|
MDNIE_SCENARIO_MAPTBL_END = MDNIE_DMB_MAPTBL,
|
|
#else
|
|
MDNIE_SCENARIO_MAPTBL_END = MDNIE_HMD_16_MAPTBL,
|
|
#endif
|
|
/* ACCESSIBILITY */
|
|
MDNIE_ACCESSIBILITY_MAPTBL_START,
|
|
MDNIE_NEGATIVE_MAPTBL = MDNIE_ACCESSIBILITY_MAPTBL_START,
|
|
MDNIE_COLOR_BLIND_MAPTBL,
|
|
MDNIE_SCREEN_CURTAIN_MAPTBL,
|
|
MDNIE_GRAYSCALE_MAPTBL,
|
|
MDNIE_GRAYSCALE_NEGATIVE_MAPTBL,
|
|
MDNIE_COLOR_BLIND_HBM_MAPTBL,
|
|
MDNIE_ACCESSIBILITY_MAPTBL_END = MDNIE_COLOR_BLIND_HBM_MAPTBL,
|
|
/* BYPASS */
|
|
MDNIE_BYPASS_MAPTBL,
|
|
/* HBM */
|
|
MDNIE_HBM_MAPTBL,
|
|
/* HMD */
|
|
MDNIE_HMD_MAPTBL,
|
|
/* HDR */
|
|
MDNIE_HDR_MAPTBL,
|
|
/* NIGHT */
|
|
MDNIE_NIGHT_MAPTBL,
|
|
/* LIGHT_NOTIFICATION */
|
|
MDNIE_LIGHT_NOTIFICATION_MAPTBL,
|
|
/* COLOR LENS */
|
|
MDNIE_COLOR_LENS_MAPTBL,
|
|
MAX_MDNIE_MAPTBL,
|
|
};
|
|
|
|
#ifdef CONFIG_SUPPORT_AFC
|
|
enum AFC_MAPTBL {
|
|
AFC_ON_MAPTBL,
|
|
MAX_AFC_MAPTBL,
|
|
};
|
|
#endif
|
|
|
|
enum MDNIE_SEQ {
|
|
MDNIE_SET_SEQ,
|
|
#ifdef CONFIG_SUPPORT_AFC
|
|
MDNIE_AFC_OFF_SEQ,
|
|
MDNIE_AFC_ON_SEQ,
|
|
#endif
|
|
/* if necessary, add new seq */
|
|
MAX_MDNIE_SEQ,
|
|
};
|
|
|
|
enum {
|
|
MDNIE_SCR_WHITE_NONE_MAPTBL,
|
|
MDNIE_COLOR_COORDINATE_MAPTBL,
|
|
MDNIE_ADJUST_LDU_MAPTBL,
|
|
MDNIE_SENSOR_RGB_MAPTBL,
|
|
MAX_SCR_WHITE_MAPTBL,
|
|
};
|
|
|
|
enum {
|
|
MDNIE_ETC_NONE_MAPTBL,
|
|
MDNIE_ETC_TRANS_MAPTBL,
|
|
MDNIE_ETC_NIGHT_MAPTBL,
|
|
MDNIE_ETC_COLOR_LENS_MAPTBL,
|
|
MAX_MDNIE_ETC_MAPTBL,
|
|
};
|
|
|
|
enum {
|
|
WCRD_TYPE_ADAPTIVE,
|
|
WCRD_TYPE_D65,
|
|
MAX_WCRD_TYPE,
|
|
};
|
|
|
|
enum {
|
|
H_LINE,
|
|
V_LINE,
|
|
MAX_CAL_LINE,
|
|
};
|
|
|
|
enum {
|
|
RGB_00,
|
|
RGB_01,
|
|
RGB_10,
|
|
RGB_11,
|
|
MAX_RGB_PT,
|
|
};
|
|
|
|
enum {
|
|
QUAD_1,
|
|
QUAD_2,
|
|
QUAD_3,
|
|
QUAD_4,
|
|
MAX_QUAD,
|
|
};
|
|
|
|
struct cal_center {
|
|
int x;
|
|
int y;
|
|
int thres;
|
|
};
|
|
|
|
struct cal_line {
|
|
int num;
|
|
int den;
|
|
int con;
|
|
};
|
|
|
|
struct cal_coef {
|
|
int a, b, c, d;
|
|
int e, f, g, h;
|
|
};
|
|
|
|
struct mdnie_tune {
|
|
struct seqinfo *seqtbl;
|
|
u32 nr_seqtbl;
|
|
struct maptbl *maptbl;
|
|
u32 nr_maptbl;
|
|
struct maptbl *scr_white_maptbl;
|
|
u32 nr_scr_white_maptbl;
|
|
struct maptbl *etc_maptbl;
|
|
u32 nr_etc_maptbl;
|
|
#ifdef CONFIG_SUPPORT_AFC
|
|
struct maptbl *afc_maptbl;
|
|
u32 nr_afc_maptbl;
|
|
#endif
|
|
struct cal_center center;
|
|
struct cal_line line[MAX_CAL_LINE];
|
|
struct cal_coef coef[MAX_QUAD];
|
|
u32 cal_x_center;
|
|
u32 cal_y_center;
|
|
u32 cal_boundary_center;
|
|
u8 vtx[MAX_WCRD_TYPE][MAX_CCRD_PT][MAX_COLOR];
|
|
u32 num_ldu_mode;
|
|
u32 num_night_level;
|
|
u32 num_color_lens_color;
|
|
u32 num_color_lens_level;
|
|
u32 hbm_ce_lux;
|
|
};
|
|
|
|
struct mdnie_properties {
|
|
u32 enable;
|
|
enum SCENARIO scenario;
|
|
enum SCENARIO_MODE mode;
|
|
enum BYPASS bypass;
|
|
enum HBM hbm;
|
|
enum HMD_MODE hmd;
|
|
enum NIGHT_MODE night;
|
|
enum COLOR_LENS color_lens;
|
|
enum COLOR_LENS_COLOR color_lens_color;
|
|
enum COLOR_LENS_LEVEL color_lens_level;
|
|
enum HDR hdr;
|
|
enum LIGHT_NOTIFICATION light_notification;
|
|
enum ACCESSIBILITY accessibility;
|
|
enum LDU_MODE ldu;
|
|
enum SCR_WHITE_MODE scr_white_mode;
|
|
enum TRANS_MODE trans_mode;
|
|
int night_level;
|
|
|
|
/* for color adjustment */
|
|
u8 scr[MAX_MDNIE_SCR_LEN];
|
|
u32 sz_scr;
|
|
|
|
int wcrd_x, wcrd_y;
|
|
|
|
/* default whiteRGB : color coordinated wrgb */
|
|
u8 coord_wrgb[MAX_WCRD_TYPE][MAX_COLOR];
|
|
/* sensor whiteRGB */
|
|
u8 ssr_wrgb[MAX_COLOR];
|
|
/* current whiteRGB */
|
|
u8 cur_wrgb[MAX_COLOR];
|
|
/* default whiteRGB : color coordinated wrgb */
|
|
u8 def_wrgb[MAX_COLOR];
|
|
s8 def_wrgb_ofs[MAX_COLOR];
|
|
#ifdef CONFIG_SUPPORT_AFC
|
|
u8 afc_roi[MAX_AFC_ROI_LEN];
|
|
bool afc_on;
|
|
#endif
|
|
|
|
u32 num_ldu_mode;
|
|
u32 num_night_level;
|
|
u32 num_color_lens_color;
|
|
u32 num_color_lens_level;
|
|
struct cal_line line[MAX_CAL_LINE];
|
|
struct cal_coef coef[MAX_QUAD];
|
|
u32 cal_x_center;
|
|
u32 cal_y_center;
|
|
u32 cal_boundary_center;
|
|
u8 vtx[MAX_WCRD_TYPE][MAX_CCRD_PT][MAX_COLOR];
|
|
|
|
u32 hbm_ce_lux;
|
|
|
|
/* support */
|
|
unsigned support_ldu:1;
|
|
unsigned support_trans:1;
|
|
|
|
/* dirty flag */
|
|
unsigned tuning:1; /* tuning file loaded */
|
|
unsigned update_color_adj:1; /* color adjustement updated */
|
|
unsigned update_scenario:1; /* scenario updated */
|
|
unsigned update_color_coord:1; /* color coordinate updated */
|
|
unsigned update_ldu:1; /* adjust ldu updated */
|
|
unsigned update_sensorRGB:1; /* sensorRGB scr white updated */
|
|
|
|
/* mdnie tuning */
|
|
#ifdef CONFIG_EXYNOS_DECON_LCD_TUNING
|
|
char tfilepath[128]; /* tuning file path */
|
|
#endif
|
|
};
|
|
|
|
struct mdnie_info {
|
|
struct device *dev;
|
|
struct class *class;
|
|
char name[MAX_MDNIE_DEV_NAME_SIZE];
|
|
struct mutex lock;
|
|
struct mdnie_properties props;
|
|
struct notifier_block fb_notif;
|
|
#ifdef CONFIG_DISPLAY_USE_INFO
|
|
struct notifier_block dpui_notif;
|
|
#endif
|
|
struct maptbl *maptbl;
|
|
u32 nr_maptbl;
|
|
struct maptbl *scr_white_maptbl;
|
|
u32 nr_scr_white_maptbl;
|
|
struct maptbl *etc_maptbl;
|
|
u32 nr_etc_maptbl;
|
|
#ifdef CONFIG_SUPPORT_AFC
|
|
struct maptbl *afc_maptbl;
|
|
u32 nr_afc_maptbl;
|
|
#endif
|
|
struct seqinfo *seqtbl;
|
|
u32 nr_seqtbl;
|
|
u32 nr_reg;
|
|
};
|
|
|
|
#ifdef CONFIG_EXYNOS_DECON_MDNIE_LITE
|
|
extern int mdnie_init(struct mdnie_info *mdnie);
|
|
extern int mdnie_exit(struct mdnie_info *mdnie);
|
|
extern int mdnie_probe(struct mdnie_info *mdnie, struct mdnie_tune *mdnie_tune);
|
|
extern int mdnie_remove(struct mdnie_info *mdnie);
|
|
extern int mdnie_enable(struct mdnie_info *mdnie);
|
|
extern int mdnie_disable(struct mdnie_info *mdnie);
|
|
extern int mdnie_set_def_wrgb(struct mdnie_info *mdnie,
|
|
unsigned char r, unsigned char g, unsigned char b);
|
|
extern int mdnie_set_cur_wrgb(struct mdnie_info *mdnie,
|
|
unsigned char r, unsigned char g, unsigned char b);
|
|
extern int mdnie_cur_wrgb_to_byte_array(struct mdnie_info *mdnie,
|
|
unsigned char *dst, unsigned int stride);
|
|
extern int panel_mdnie_update(struct panel_device *panel);
|
|
extern int mdnie_update_wrgb(struct mdnie_info *mdnie,
|
|
unsigned char r, unsigned char g, unsigned char b);
|
|
#else
|
|
static inline int mdnie_init(struct mdnie_info *mdnie) { return 0; }
|
|
static inline int mdnie_probe(struct mdnie_info *mdnie, struct mdnie_tune *mdnie_tune) { return 0; }
|
|
static inline int mdnie_remove(struct mdnie_info *mdnie) { return 0; }
|
|
static inline int mdnie_enable(struct mdnie_info *mdnie) { return 0; }
|
|
static inline int mdnie_disable(struct mdnie_info *mdnie) { return 0; }
|
|
static inline int panel_mdnie_update(struct panel_device *panel) { return 0; }
|
|
static inline int mdnie_set_def_wrgb(struct mdnie_info *mdnie,
|
|
unsigned char r, unsigned char g, unsigned char b) { return 0; }
|
|
static inline int mdnie_set_cur_wrgb(struct mdnie_info *mdnie,
|
|
unsigned char r, unsigned char g, unsigned char b) { return 0; }
|
|
static inline int mdnie_cur_wrgb_to_byte_array(struct mdnie_info *mdnie,
|
|
unsigned char *dst, unsigned int stride) { return 0; }
|
|
static inline int mdnie_update_wrgb(struct mdnie_info *mdnie,
|
|
unsigned char r, unsigned char g, unsigned char b) { return 0; }
|
|
#endif
|
|
extern struct maptbl *mdnie_find_maptbl(struct mdnie_info *);
|
|
extern struct maptbl *mdnie_find_etc_maptbl(struct mdnie_info *mdnie, int index);
|
|
extern int mdnie_get_maptbl_index(struct mdnie_info *mdnie);
|
|
#endif /* __MDNIE_H__ */
|