diff --git a/drivers/amlogic/media_modules/common/media_clock/clk/clk.c b/drivers/amlogic/media_modules/common/media_clock/clk/clk.c index 4102184d0dce..4ffaf12bfb46 100644 --- a/drivers/amlogic/media_modules/common/media_clock/clk/clk.c +++ b/drivers/amlogic/media_modules/common/media_clock/clk/clk.c @@ -212,6 +212,12 @@ void hevc_back_clock_enable(void) } EXPORT_SYMBOL(hevc_back_clock_enable); +void hevc_back_clock_hi_enable(void) +{ + hevc_back_clock_set(2); +} +EXPORT_SYMBOL(hevc_back_clock_hi_enable); + int hevc_clock_init(void) { if (p_vdec_hevc() && p_vdec_hevc()->clock_init) diff --git a/drivers/amlogic/media_modules/common/media_clock/clk/clk.h b/drivers/amlogic/media_modules/common/media_clock/clk/clk.h index e1fa3f14929a..5fefcbc6c335 100644 --- a/drivers/amlogic/media_modules/common/media_clock/clk/clk.h +++ b/drivers/amlogic/media_modules/common/media_clock/clk/clk.h @@ -46,6 +46,8 @@ int hevc_back_clock_init(void); void hevc_back_clock_on(void); void hevc_back_clock_off(void); int hevc_back_clock_set(int clk); +void hevc_back_clock_enable(void); +void hevc_back_clock_hi_enable(void); int vdec_source_get(enum vdec_type_e core); int vdec_clk_get(enum vdec_type_e core); @@ -128,7 +130,8 @@ static int __init vdec_init_clk(void) #endif #ifdef VDEC_HAS_HEVC register_vdec_clk_mgr(cpus, VDEC_HEVC, &vdec_hevc_clk_mgr); - register_vdec_clk_mgr(cpus, VDEC_HEVCB, &vdec_hevc_back_clk_mgr); + if (get_cpu_type() >= MESON_CPU_MAJOR_ID_G12A) + register_vdec_clk_mgr(cpus, VDEC_HEVCB, &vdec_hevc_back_clk_mgr); #endif #ifdef VDEC_HAS_VDEC_HCODEC register_vdec_clk_mgr(cpus, VDEC_HCODEC, &vdec_hcodec_clk_mgr); diff --git a/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec.c b/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec.c index 615ae4ec4462..261686038264 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec.c @@ -2384,6 +2384,7 @@ void vdec_poweron(enum vdec_type_e core) WRITE_VREG(DOS_SW_RESET3, 0); /* enable hevc clock */ hevc_clock_hi_enable(); + hevc_back_clock_hi_enable(); /* power up hevc memories */ WRITE_VREG(DOS_MEM_PD_HEVC, 0); /* remove hevc isolation */