Welcome to mirror list, hosted at ThFree Co, Russian Federation.

iep_drc.h « lowlevel_sun8iw5 « de « disp « sunxi « video « drivers - github.com/ClusterM/sun-nontendocm-kernel.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5b55cb08efda1d934ada3202649500035d341f6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#ifndef __IEP_DRC_H__
#define __IEP_DRC_H__
#include "ebios_de.h"
#include "iep_drc_ebios.h"

#define CLK_DRC0_AHB_ON     0x00000001
#define CLK_DRC0_MOD_ON   0x00000002
#define CLK_DRC0_DRAM_ON    0x00000004
#define CLK_DRC1_AHB_ON     0x00010000
#define CLK_DRC1_MOD_ON   0x00020000
#define CLK_DRC1_DRAM_ON    0x00040000

#define CLK_DRC0_AHB_OFF  (~(CLK_DRC0_AHB_ON      ))
#define CLK_DRC0_MOD_OFF  (~(CLK_DRC0_MOD_ON      ))
#define CLK_DRC0_DRAM_OFF   (~(CLK_DRC0_DRAM_ON     ))
#define CLK_DRC1_AHB_OFF  (~(CLK_DRC1_AHB_ON      ))
#define CLK_DRC1_MOD_OFF  (~(CLK_DRC1_MOD_ON      ))
#define CLK_DRC1_DRAM_OFF   (~(CLK_DRC1_DRAM_ON     ))

#define DE_FLICKER_USED         0x01000000
#define DE_FLICKER_USED_MASK      (~(DE_FLICKER_USED))
#define DE_FLICKER_REQUIRED       0x02000000
#define DE_FLICKER_REQUIRED_MASK    (~(DE_FLICKER_REQUIRED))
#define DRC_USED            0x04000000
#define DRC_USED_MASK           (~(DRC_USED))
#define DRC_REQUIRED          0x08000000
#define DRC_REQUIRED_MASK         (~(DRC_REQUIRED))
#define DE_FLICKER_NEED_CLOSED      0x10000000
#define DE_FLICKER_NEED_CLOSED_MASK   (~(DE_FLICKER_NEED_CLOSED))
#define DRC_NEED_CLOSED         0x20000000
#define DRC_NEED_CLOSED_MASK      (~(DRC_NEED_CLOSED))

#define SLIM_GAMMA_TABLE 1

//for power saving mode alg0
#define IEP_LH_PWRSV_NUM 24
#define IEP_LGC_TAB_SIZE 92160  //(256(GAMMA/LEVEL)*180(LEVEL)*2(BYTE))
typedef struct
{
  u32       mod;

	//drc
	//u32           drc_en;
	u32       drc_win_en;
	disp_window   drc_win;
	u32           drc_win_dirty;
	u32           adjust_en;
	u32           lgc_autoload_dis;
	u32           waitframe;
	u32           runframe;
	u32           scn_width;
	u32           scn_height;
	u32           video_mode_en;
	u32           backlight;
	u32           backlight_dimming;

	//lh
	u32           lgc_base_add;
	//u8            lh_thres_val[IEP_LH_THRES_NUM];
	u8            lh_thres_val[7];

	//de-flicker
	//u32           deflicker_en;
	u32           deflicker_win_en;
	disp_window   deflicker_win;
}__drc_t;

typedef struct
{
	u8      min_adj_index_hist[IEP_LH_PWRSV_NUM];
	u32           user_bl;
}__drc_pwrsv_t;


s32 drc_clk_init(u32 sel);
s32 drc_clk_exit(u32 sel);
s32 drc_clk_open(u32 sel, u32 type);
s32 drc_clk_close(u32 sel, u32 type);
s32 drc_enable(u32 sel, u32 en);
s32 drc_init(u32 sel);
s32 drc_proc(u32 sel);
s32 drc_close_proc(u32 sel);

s32 IEP_Drc_Init(u32 sel);
s32 IEP_Drc_Exit(u32 sel);
s32 IEP_Drc_Enable(u32 sel, u32 en);
s32 IEP_Drc_Operation_In_Vblanking(u32 sel);
s32 IEP_Drc_Tasklet(u32 sel);
s32 IEP_Drc_Set_Reg_Base(u32 sel, u32 base);
s32 IEP_Drc_Get_Reg_Base(u32 sel);
s32 IEP_Drc_Set_Winodw(u32 sel, disp_window window);//full screen for default
s32 IEP_Drc_Set_Mode(u32 sel, __iep_drc_mode_t mode);
s32 iep_drc_early_suspend(u32 sel);//close clk
s32 iep_drc_suspend(u32 sel);//save register
s32 iep_drc_resume (u32 sel);//restore register
s32 iep_drc_late_resume(u32 sel);//open clk
s32 IEP_Drc_Set_Imgsize(u32 sel, u32 width, u32 height);
s32 IEP_Drc_Get_Cur_Backlight(u32 sel);
s32 IEP_Drc_Update_Backlight(u32 sel, u32 backlight);
s32 IEP_Drc_Get_Backlight_Dimming(u32 sel);
s32 IEP_Drc_Set_Backlight_Dimming(u32 sel, u32 backlight_dimming);


#endif