am_set_regmap(&cmreg_enhancement);
else
am_set_regmap(&cmreg_optimize);
-
- if (!is_dolby_vision_enable()) {
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
+ if (!is_dolby_vision_enable())
+#endif
+ {
if (!(READ_VPP_REG(VPP_MISC) & (0x1 << 28)))
WRITE_VPP_REG_BITS(VPP_MISC, 1, 28, 1);
WRITE_VPP_REG(VPP_CHROMA_ADDR_PORT, 0x208);
{
int result = 0;
- if ((probe_ok == 0) || for_dolby_vision_certification())
+ if (probe_ok == 0)
+ return 0;
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
+ if (for_dolby_vision_certification())
return 0;
+#endif
if (flags & CSC_FLAG_CHECK_OUTPUT) {
/* to test if output will change */
return amvecm_matrix_process(
return;
if (vf != NULL) {
vpp_get_vframe_hist_info(vf);
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (!for_dolby_vision_certification())
+#endif
ve_on_vs(vf);
vpp_backup_histgram(vf);
}
{
if (enable) {
vecm_latch_flag |= FLAG_VE_DNLP_EN;
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (!is_dolby_vision_enable())
+#endif
amcm_enable();
-
WRITE_VPP_REG_BITS(SRSHARP0_PK_NR_ENABLE, 1, 1, 1);
WRITE_VPP_REG_BITS(SRSHARP1_PK_NR_ENABLE, 1, 1, 1);
/* init module status */
amvecm_wb_init(wb_en);
amvecm_gamma_init(gamma_en);
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (!is_dolby_vision_enable())
+#endif
WRITE_VPP_REG_BITS(VPP_MISC, 1, 28, 1);
if (cm_en) {
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (!is_dolby_vision_enable())
+#endif
amcm_enable();
}
else
static int scaler_pos_changed;
#endif
+#ifndef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
+bool is_dolby_vision_enable(void)
+{
+ return 0;
+}
+bool is_dolby_vision_on(void)
+{
+ return 0;
+}
+bool is_dolby_vision_stb_mode(void)
+{
+ return 0;
+}
+#endif
+
static struct amvideocap_req *capture_frame_req;
static struct video_prot_s video_prot;
static u32 video_angle;
if (vfp && vf && atomic_dec_and_test(&vf->use_cnt)) {
vf_put(vf, RECEIVER_NAME);
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_dolby_vision_enable())
dolby_vision_vf_put(vf);
+#endif
video_notify_flag |= VIDEO_NOTIFY_PROVIDER_PUT;
}
}
/* TODO: afbc setting only cover 420 for now */
#ifdef TV_REVERSE
if (reverse) {
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_meson_txlx_package_962X()
&& !is_dolby_vision_stb_mode()
&& is_dolby_vision_on())
(0x8 << VFORMATTER_PHASE_BIT) |
VFORMATTER_EN);
else
+#endif
VSYNC_WR_MPEG_REG(AFBC_VD_CFMT_CTRL,
HFORMATTER_REPEAT |
(0xc << VFORMATTER_INIPHASE_BIT) |
} else
#endif
{
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_meson_txlx_package_962X()
&& !is_dolby_vision_stb_mode()
&& is_dolby_vision_on())
(0x8 << VFORMATTER_PHASE_BIT) |
VFORMATTER_EN);
else
+#endif
VSYNC_WR_MPEG_REG(AFBC_VD_CFMT_CTRL,
HFORMATTER_REPEAT |
(0xc << VFORMATTER_INIPHASE_BIT) |
(((type & VIDTYPE_VIU_422) ? 0x10 : 0x08)
<< VFORMATTER_PHASE_BIT) | VFORMATTER_EN);
}
-
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if ((is_meson_txlx_cpu()
|| is_meson_g12a())
&& is_dolby_vision_on()
VSYNC_WR_MPEG_REG_BITS(
VIU_VD1_FMT_CTRL + cur_dev->viu_off,
1, 29, 1);
-
+#endif
/* LOOP/SKIP pattern */
pat = vpat[frame_par->vscale_skip_count];
/* TODO: afbc setting only cover 420 for now */
#ifdef TV_REVERSE
if (reverse) {
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_meson_txlx_package_962X()
&& !is_dolby_vision_stb_mode()
&& is_dolby_vision_on()) {
(0x8 << VFORMATTER_PHASE_BIT) |
VFORMATTER_EN);
} else
+#endif
VSYNC_WR_MPEG_REG(VD2_AFBC_VD_CFMT_CTRL,
(is_dolby_vision_on() ?
HFORMATTER_REPEAT :
VFORMATTER_EN);
} else {
#endif
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_meson_txlx_package_962X()
&& !is_dolby_vision_stb_mode()
&& is_dolby_vision_on()) {
(0x8 << VFORMATTER_PHASE_BIT) |
VFORMATTER_EN);
} else
+#endif
VSYNC_WR_MPEG_REG(VD2_AFBC_VD_CFMT_CTRL,
(is_dolby_vision_on() ?
HFORMATTER_REPEAT :
/*is_dolby_vision_on()*/0);
}
}
-
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if ((is_meson_txlx_cpu()
|| is_meson_g12a())
&& is_dolby_vision_on()
VSYNC_WR_MPEG_REG_BITS(
VIU_VD2_FMT_CTRL + cur_dev->viu_off,
1, 29, 1);
+#endif
/* LOOP/SKIP pattern */
pat = vpat[frame_par->vscale_skip_count];
return true;
}
-
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
struct vframe_s *dolby_vision_toggle_frame(struct vframe_s *vf)
{
struct vframe_s *toggle_vf = NULL;
return 1;
return 0;
}
+#endif
/* patch for 4k2k bandwidth issue, skiw mali and vpu mif */
static void dmc_adjust_for_mali_vpu(unsigned int width,
unsigned int height, bool force_adjust)
enable_rdma_log_count--;
}
#endif
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
/* check video frame before VECM process */
if (is_dolby_vision_enable() && vf)
dolby_vision_check_hdr10(vf);
-
+#endif
#ifdef CONFIG_TVIN_VDIN
/* patch for m8 4k2k wifidisplay bandwidth bottleneck */
if (get_cpu_type() == MESON_CPU_MAJOR_ID_M8) {
0) == 1)
break;
#endif
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_dolby_vision_enable()
&& dolby_vision_need_wait())
break;
+#endif
/*
*two special case:
*case1:4k display case,input buffer not enough &
}
vsync_toggle_frame(vf);
toggle_frame = vf;
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_dolby_vision_enable()) {
toggle_vf = dolby_vision_toggle_frame(vf);
video_pause_global = 0;
- } else {
+ } else
+#endif
+ {
cur_dispbuf2 = NULL;
video_pause_global = 2;
pause_vf = NULL;
vf = video_vf_peek();
if (!vf)
next_peek_underflow++;
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (for_dolby_vision_certification()
&& toggle_vf)
break;
+#endif
if (debug_flag & DEBUG_FLAG_TOGGLE_FRAME_PER_VSYNC)
break;
video_get_vf_cnt++;
"sys.time = 0x%x, video time = 0x%x\n",
timestamp_pcrscr_get(),
timestamp_vpts_get());
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_dolby_vision_enable()
&& dolby_vision_need_wait())
break;
+#endif
#if defined(CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_VECM)
refresh_on_vs(vf);
if (amvecm_on_vs(
break;
vsync_toggle_frame(vf);
toggle_frame = vf;
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_dolby_vision_enable())
toggle_vf =
dolby_vision_toggle_frame(vf);
else
+#endif
cur_dispbuf2 = NULL;
frame_repeat_count = 0;
cur_frame_par = next_frame_par;
frame_par_di_set = 1;
}
-
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (is_dolby_vision_enable()) {
u32 frame_size = 0, h_size, v_size;
/* force toggle when keeping frame after playing */
dolby_vision_process(toggle_vf, frame_size);
dolby_vision_update_setting();
}
+#endif
if ((platform_type == 1) || (platform_type == 0)) {
if (mode_3d_changed) {
mode_3d_changed = 0;
/* vpp filters */
/* SET_MPEG_REG_MASK(VPP_SC_MISC + cur_dev->vpp_off, */
/* VPP_SC_TOP_EN | VPP_SC_VERT_EN | VPP_SC_HORZ_EN); */
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (for_dolby_vision_certification()) {
/* turn off PPS for Dolby Vision certification */
VSYNC_WR_MPEG_REG_BITS(VPP_SC_MISC + cur_dev->vpp_off,
0, VPP_SC_TOP_EN_BIT, VPP_SC_TOP_EN_WID);
- } else {
+ } else
+#endif
+ {
VSYNC_WR_MPEG_REG(VPP_SC_MISC + cur_dev->vpp_off,
READ_VCBUS_REG(VPP_SC_MISC +
cur_dev->vpp_off) |
unsigned int r;
#if DEBUG_TMP
- if (vpu_delay_work_flag & VPU_UPDATE_DOLBY_VISION) {
- vpu_delay_work_flag &= ~VPU_UPDATE_DOLBY_VISION;
- dolby_vision_update_setting();
- if (!vpu_delay_work_flag)
- return;
- }
if (vpu_delay_work_flag & VPU_VIDEO_LAYER1_CHANGED) {
vpu_delay_work_flag &= ~VPU_VIDEO_LAYER1_CHANGED;
break;
}
}
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if ((devp->dv.dolby_input & (1 << devp->index)) ||
(devp->dv.dv_flag && is_dolby_vision_enable()))
format_convert = VDIN_FORMAT_CONVERT_YUV_YUV444;
+#endif
devp->format_convert = format_convert;
}
devp->prop.color_fmt_range,
devp->prop.vdin_hdr_Flag,
devp->color_range_mode);
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if ((devp->dv.dolby_input & (1 << devp->index)) ||
(devp->dv.dv_flag && is_dolby_vision_enable()))
wr_bits(offset, VDIN_MATRIX_CTRL, 0,
VDIN_MATRIX_EN_BIT, VDIN_MATRIX_EN_WID);
+#endif
} else {
format_convert_matrix0 = vdin_get_format_convert_matrix0(devp);
format_convert_matrix1 = vdin_get_format_convert_matrix1(devp);
devp->vfp->size = devp->canvas_max_num;
vf_pool_init(devp->vfp, devp->vfp->size);
vdin_vf_init(devp);
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if ((devp->dv.dolby_input & (1 << devp->index)) ||
(devp->dv.dv_flag && is_dolby_vision_enable())) {
/* config dolby mem base */
if (vdin_dbg_en)
pr_info("vdin start dec dv input config\n");
}
-
+#endif
devp->abnormal_cnt = 0;
devp->last_wr_vfe = NULL;
irq_max_count = 0;
if (devp->rdma_enable && devp->rdma_handle > 0)
devp->flags |= VDIN_FLAG_RDMA_ENABLE;
#endif
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
/*only for vdin0;vdin1 used for debug*/
if ((devp->dv.dolby_input & (1 << 0)) ||
(devp->dv.dv_flag && is_dolby_vision_enable()))
vf_reg_provider(&devp->dv.vprov_dv);
else
+#endif
vf_reg_provider(&devp->vprov);
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if ((devp->dv.dolby_input & (1 << devp->index)) ||
(devp->dv.dv_flag && is_dolby_vision_enable()))
vf_notify_receiver("dv_vdin",
VFRAME_EVENT_PROVIDER_START, NULL);
else
+#endif
vf_notify_receiver(devp->name,
VFRAME_EVENT_PROVIDER_START, NULL);
if ((devp->parm.port != TVIN_PORT_VIU1) ||
/* reset default canvas */
vdin_set_def_wr_canvas(devp);
-#if 1/*def CONFIG_AM_HDMIIN_DV*/
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (((devp->dv.dolby_input & (1 << devp->index)) ||
is_dolby_vision_enable()) &&
(devp->dv.dv_config == true))
vdin_vf_disp_mode_update(devp->last_wr_vfe, devp->vfp);
devp->last_wr_vfe = NULL;
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (((devp->dv.dolby_input & (1 << devp->index)) ||
(devp->dv.dv_flag && is_dolby_vision_enable())) &&
(devp->dv.dv_config == true))
vf_notify_receiver("dv_vdin",
VFRAME_EVENT_PROVIDER_VFRAME_READY, NULL);
else
+#endif
vf_notify_receiver(devp->name,
VFRAME_EVENT_PROVIDER_VFRAME_READY, NULL);
}
vdin_drop_cnt++;
goto irq_handled;
}
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (((devp->dv.dolby_input & (1 << devp->index)) ||
(devp->dv.dv_flag && is_dolby_vision_enable())) &&
(devp->dv.dv_config == true))
vdin2nr = vf_notify_receiver("dv_vdin",
VFRAME_EVENT_PROVIDER_QUREY_VDIN2NR, NULL);
else
+#endif
vdin2nr = vf_notify_receiver(devp->name,
VFRAME_EVENT_PROVIDER_QUREY_VDIN2NR, NULL);
/*if vdin-nr,di must get
next_wr_vfe->vf.ready_jiffies64 = jiffies_64;
if (!(devp->flags&VDIN_FLAG_RDMA_ENABLE) || (devp->game_mode == true)) {
+#ifdef CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION
if (((devp->dv.dolby_input & (1 << devp->index)) ||
(devp->dv.dv_flag && is_dolby_vision_enable())) &&
(devp->dv.dv_config == true))
vf_notify_receiver("dv_vdin",
VFRAME_EVENT_PROVIDER_VFRAME_READY, NULL);
else
+#endif
vf_notify_receiver(devp->name,
VFRAME_EVENT_PROVIDER_VFRAME_READY, NULL);
}