mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
hdr: fix sdr2hdr effect expose
PD#172383: hdr: fix sdr2hdr effect expose 1. change sdr2hdr ootf lut 2. disable cgain when sdr2hdr Change-Id: I308c0d8071b932164363603cc6af81c6343b4ec0 Signed-off-by: MingLiang Dong <mingliang.dong@amlogic.com>
This commit is contained in:
committed by
Jianxin Pan
parent
a2bd42c980
commit
f6ec78b7a0
@@ -264,7 +264,7 @@ struct hdr_osd_reg_s hdr_osd_reg = {
|
||||
-1 /* shadow mode */
|
||||
};
|
||||
|
||||
#define HDR_VERSION "----gxl_20180516---g12a_20180814-----\n"
|
||||
#define HDR_VERSION "----gxl_20180830---g12a_20180917-----\n"
|
||||
|
||||
static struct vframe_s *dbg_vf;
|
||||
static struct master_display_info_s dbg_hdr_send;
|
||||
|
||||
@@ -219,21 +219,21 @@ int oo_y_lut_hlg_hdr[149] = {
|
||||
392, 395, 398, 401, 404, 407, 409
|
||||
};
|
||||
|
||||
static int num_sdr_hdr_lut = 149;
|
||||
int oo_y_lut_sdr_hdr[149] = {
|
||||
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
|
||||
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
|
||||
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
|
||||
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
|
||||
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
|
||||
127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 130,
|
||||
130, 131, 131, 131, 132, 132, 133, 133, 134, 135, 136, 136,
|
||||
137, 138, 139, 140, 141, 143, 145, 147, 148, 150, 152, 154,
|
||||
157, 161, 164, 168, 172, 175, 179, 183, 190, 197, 205, 213,
|
||||
220, 228, 235, 243, 258, 273, 288, 303, 318, 332, 346, 360,
|
||||
374, 387, 400, 412, 423, 434, 444, 452, 461, 468, 475, 481,
|
||||
488, 495, 502, 510
|
||||
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 38, 38, 38
|
||||
};
|
||||
module_param_array(oo_y_lut_sdr_hdr, int, &num_sdr_hdr_lut, 0664);
|
||||
MODULE_PARM_DESC(oo_y_lut_sdr_hdr, "\n num_sdr_hdr_lut\n");
|
||||
|
||||
int oo_y_lut_hlg_sdr[149] = {
|
||||
245, 269, 275, 282, 288, 295, 302, 309, 316, 318, 320, 322, 323,
|
||||
@@ -1129,8 +1129,8 @@ void set_hdr_matrix(
|
||||
adpscl_alpha[i] =
|
||||
(1 << adp_scal_shift);
|
||||
else if (hdr_mtx_param->p_sel & SDR_HDR)
|
||||
adpscl_alpha[i] = in_luma *
|
||||
(1 << adp_scal_shift) / out_luma;
|
||||
adpscl_alpha[i] =
|
||||
(1 << adp_scal_shift);
|
||||
else if (hdr_mtx_param->p_sel & HDR_BYPASS)
|
||||
adpscl_alpha[i] = out_luma *
|
||||
(1 << adp_scal_shift) / in_luma;
|
||||
@@ -1444,10 +1444,10 @@ void set_c_gain(
|
||||
|
||||
/*cgain mode: 0->y domin*/
|
||||
/*cgain mode: 1->rgb domin, use r/g/b max*/
|
||||
VSYNC_WR_MPEG_REG_BITS(hdr_ctrl, hdr_lut_param->lut_on, 12, 1);
|
||||
VSYNC_WR_MPEG_REG_BITS(hdr_ctrl, hdr_lut_param->lut_on, 0, 1);
|
||||
VSYNC_WR_MPEG_REG_BITS(hdr_ctrl, hdr_lut_param->cgain_en, 12, 1);
|
||||
VSYNC_WR_MPEG_REG_BITS(hdr_ctrl, hdr_lut_param->cgain_en, 0, 1);
|
||||
|
||||
if (!hdr_lut_param->lut_on)
|
||||
if (!hdr_lut_param->cgain_en)
|
||||
return;
|
||||
|
||||
VSYNC_WR_MPEG_REG(cgain_lut_addr_port, 0x0);
|
||||
@@ -1520,6 +1520,7 @@ void hdr_func(enum hdr_module_sel module_sel,
|
||||
}
|
||||
hdr_lut_param.lut_on = LUT_OFF;
|
||||
hdr_lut_param.bitdepth = bit_depth;
|
||||
hdr_lut_param.cgain_en = LUT_OFF;
|
||||
} else if (hdr_process_select & HDR_SDR) {
|
||||
for (i = 0; i < HDR2_OETF_LUT_SIZE; i++) {
|
||||
hdr_lut_param.oetf_lut[i] = oe_y_lut_sdr[i];
|
||||
@@ -1531,6 +1532,7 @@ void hdr_func(enum hdr_module_sel module_sel,
|
||||
}
|
||||
hdr_lut_param.lut_on = LUT_ON;
|
||||
hdr_lut_param.bitdepth = bit_depth;
|
||||
hdr_lut_param.cgain_en = LUT_ON;
|
||||
} else if (hdr_process_select & SDR_HDR) {
|
||||
for (i = 0; i < HDR2_OETF_LUT_SIZE; i++) {
|
||||
hdr_lut_param.oetf_lut[i] = oe_y_lut_hdr[i];
|
||||
@@ -1542,6 +1544,7 @@ void hdr_func(enum hdr_module_sel module_sel,
|
||||
}
|
||||
hdr_lut_param.lut_on = LUT_ON;
|
||||
hdr_lut_param.bitdepth = bit_depth;
|
||||
hdr_lut_param.cgain_en = LUT_OFF;
|
||||
} else if (hdr_process_select & HLG_BYPASS) {
|
||||
for (i = 0; i < HDR2_OETF_LUT_SIZE; i++) {
|
||||
hdr_lut_param.oetf_lut[i] = oe_y_lut_sdr[i];
|
||||
@@ -1553,6 +1556,7 @@ void hdr_func(enum hdr_module_sel module_sel,
|
||||
}
|
||||
hdr_lut_param.lut_on = LUT_OFF;
|
||||
hdr_lut_param.bitdepth = bit_depth;
|
||||
hdr_lut_param.cgain_en = LUT_OFF;
|
||||
} else if (hdr_process_select & HLG_SDR) {
|
||||
for (i = 0; i < HDR2_OETF_LUT_SIZE; i++) {
|
||||
hdr_lut_param.oetf_lut[i] = oe_y_lut_sdr[i];
|
||||
@@ -1564,6 +1568,7 @@ void hdr_func(enum hdr_module_sel module_sel,
|
||||
}
|
||||
hdr_lut_param.lut_on = LUT_ON;
|
||||
hdr_lut_param.bitdepth = bit_depth;
|
||||
hdr_lut_param.cgain_en = LUT_ON;
|
||||
} else if (hdr_process_select & HLG_HDR) {
|
||||
for (i = 0; i < HDR2_OETF_LUT_SIZE; i++) {
|
||||
hdr_lut_param.oetf_lut[i] = oe_y_lut_hdr[i];
|
||||
@@ -1575,6 +1580,7 @@ void hdr_func(enum hdr_module_sel module_sel,
|
||||
}
|
||||
hdr_lut_param.lut_on = LUT_ON;
|
||||
hdr_lut_param.bitdepth = bit_depth;
|
||||
hdr_lut_param.cgain_en = LUT_ON;
|
||||
} else if (hdr_process_select & SDR_HLG) {
|
||||
for (i = 0; i < HDR2_OETF_LUT_SIZE; i++) {
|
||||
hdr_lut_param.oetf_lut[i] = oe_y_lut_hlg[i];
|
||||
@@ -1586,6 +1592,7 @@ void hdr_func(enum hdr_module_sel module_sel,
|
||||
}
|
||||
hdr_lut_param.lut_on = LUT_ON;
|
||||
hdr_lut_param.bitdepth = bit_depth;
|
||||
hdr_lut_param.cgain_en = LUT_OFF;
|
||||
} else
|
||||
return;
|
||||
#endif
|
||||
|
||||
@@ -102,6 +102,7 @@ struct hdr_proc_lut_param_s {
|
||||
int64_t cgain_lut[65];
|
||||
unsigned int lut_on;
|
||||
unsigned int bitdepth;
|
||||
unsigned int cgain_en;
|
||||
};
|
||||
|
||||
typedef int64_t(*MenuFun)(int64_t);
|
||||
|
||||
Reference in New Issue
Block a user