From ef96d0c3ea7e615e20deb58963060a41377e85fd Mon Sep 17 00:00:00 2001 From: Xiangyu Cai Date: Fri, 29 Mar 2024 11:37:32 +0000 Subject: [PATCH] framelock: notify lfc off when vrr disable [1/1] PD#SWPL-162447 Problem: atv frame rate not correct Solution: vrr lfc off wneh vrr disable Verify: t3x Change-Id: Ic2547c0be307d4e1b03751de638e0bc00a868f5a Signed-off-by: Xiangyu Cai --- arch/arm64/boot/dts/amlogic/t3x_t968d4_bc302.dts | 2 +- arch/arm64/boot/dts/amlogic/t3x_t968d4_bc303.dts | 2 +- arch/arm64/boot/dts/amlogic/t3x_t968d4_bc309.dts | 2 +- drivers/media/enhancement/amvecm/frame_lock_policy.c | 7 +++++++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc302.dts b/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc302.dts index 96f6365df..492ccde0d 100644 --- a/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc302.dts +++ b/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc302.dts @@ -2179,7 +2179,7 @@ wb_sel = <0>;/*1:mtx ;0:gainoff*/ vlock_en = <1>;/*1:enable;0:disable*/ vlock_mode = <0x8>; - vrr_priority = <1>;/*1:game mode vrr always on;0:vrr on depend on vrr signal*/ + vrr_priority = <0>;/*1:game mode vrr always on;0:vrr on depend on vrr signal*/ /*vlock work mode: *bit0:auto ENC *bit1:auto PLL diff --git a/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc303.dts b/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc303.dts index 9cfc17886..02dfe7808 100644 --- a/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc303.dts +++ b/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc303.dts @@ -2157,7 +2157,7 @@ wb_sel = <0>;/*1:mtx ;0:gainoff*/ vlock_en = <1>;/*1:enable;0:disable*/ vlock_mode = <0x8>; - vrr_priority = <1>;/*1:game mode vrr always on;0:vrr on depend on vrr signal*/ + vrr_priority = <0>;/*1:game mode vrr always on;0:vrr on depend on vrr signal*/ /*vlock work mode: *bit0:auto ENC *bit1:auto PLL diff --git a/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc309.dts b/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc309.dts index 60c8a4f13..3c6ccad1f 100644 --- a/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc309.dts +++ b/arch/arm64/boot/dts/amlogic/t3x_t968d4_bc309.dts @@ -2198,7 +2198,7 @@ wb_sel = <0>;/*1:mtx ;0:gainoff*/ vlock_en = <1>;/*1:enable;0:disable*/ vlock_mode = <0x8>; - vrr_priority = <1>;/*1:game mode vrr always on;0:vrr on depend on vrr signal*/ + vrr_priority = <0>;/*1:game mode vrr always on;0:vrr on depend on vrr signal*/ /*vlock work mode: *bit0:auto ENC *bit1:auto PLL diff --git a/drivers/media/enhancement/amvecm/frame_lock_policy.c b/drivers/media/enhancement/amvecm/frame_lock_policy.c index bb76c6980..2e9689897 100644 --- a/drivers/media/enhancement/amvecm/frame_lock_policy.c +++ b/drivers/media/enhancement/amvecm/frame_lock_policy.c @@ -546,6 +546,13 @@ void frame_lock_disable_vrr(bool en) vdata.line_dly = 500; + if (frame_sts.vrr_lfc_mode) { + aml_vrr_atomic_notifier_call_chain(VRR_EVENT_LFC_OFF, &vdata); + if (frame_lock_debug & VRR_POLICY_LOCK_STATUS_DEBUG_FLAG) + framelock_pr_info("%s lfc:%d\n", __func__, frame_sts.vrr_lfc_mode); + frame_sts.vrr_lfc_mode = false; + } + aml_vrr_atomic_notifier_call_chain(FRAME_LOCK_EVENT_VRR_OFF_MODE, &vdata); vlock_set_sts_by_frame_lock(true); }