From e7c5b28ea30568d3833ae42099874bb178ad25a6 Mon Sep 17 00:00:00 2001 From: "huijie.huang" Date: Wed, 28 Aug 2019 13:21:22 +0800 Subject: [PATCH] dts: add video11 and video12 for screencontrol [2/6] PD#SWPL-13022 Problem: mbox needs to support screencontrol Solution: add video11 and video12 node Verify: SM1-AC202 Change-Id: Idac331731c6c3b7666ba5335a5341b14b13b6f8f Signed-off-by: huijie.huang --- .../arm/boot/dts/amlogic/g12a_s905d2_u200.dts | 17 ++++++++++ .../boot/dts/amlogic/g12a_s905d2_u200_1g.dts | 17 ++++++++++ .../arm/boot/dts/amlogic/g12a_s905d2_u202.dts | 17 ++++++++++ .../boot/dts/amlogic/g12a_s905d2_u202_1g.dts | 16 +++++++++ .../arm/boot/dts/amlogic/g12a_s905x2_u212.dts | 17 ++++++++++ .../boot/dts/amlogic/g12a_s905x2_u212_1g.dts | 34 +++++++++++++++++++ arch/arm/boot/dts/amlogic/g12b_a311d_w400.dts | 16 +++++++++ .../boot/dts/amlogic/g12b_a311d_w400_a.dts | 16 +++++++++ arch/arm/boot/dts/amlogic/mesong12a.dtsi | 2 +- arch/arm/boot/dts/amlogic/mesong12b.dtsi | 2 +- arch/arm/boot/dts/amlogic/mesong12b_a.dtsi | 2 +- arch/arm/boot/dts/amlogic/mesonsm1.dtsi | 2 +- .../arm/boot/dts/amlogic/sm1_s905d3_ac200.dts | 17 ++++++++++ .../arm/boot/dts/amlogic/sm1_s905d3_ac202.dts | 15 ++++++++ .../boot/dts/amlogic/sm1_s905d3_ac202_1g.dts | 15 ++++++++ .../arm/boot/dts/amlogic/sm1_s905x3_ac213.dts | 17 ++++++++++ .../boot/dts/amlogic/g12a_s905d2_u200.dts | 17 ++++++++++ .../boot/dts/amlogic/g12a_s905d2_u200_1g.dts | 17 ++++++++++ .../boot/dts/amlogic/g12a_s905d2_u202.dts | 15 ++++++++ .../boot/dts/amlogic/g12a_s905d2_u202_1g.dts | 15 ++++++++ .../boot/dts/amlogic/g12a_s905x2_u212.dts | 17 ++++++++++ .../boot/dts/amlogic/g12a_s905x2_u212_1g.dts | 34 +++++++++++++++++++ .../boot/dts/amlogic/g12b_a311d_w400.dts | 16 +++++++++ .../boot/dts/amlogic/g12b_a311d_w400_a.dts | 16 +++++++++ arch/arm64/boot/dts/amlogic/mesong12a.dtsi | 2 +- arch/arm64/boot/dts/amlogic/mesong12b.dtsi | 2 +- arch/arm64/boot/dts/amlogic/mesong12b_a.dtsi | 2 +- arch/arm64/boot/dts/amlogic/mesonsm1.dtsi | 2 +- .../boot/dts/amlogic/sm1_s905d3_ac200.dts | 17 ++++++++++ .../boot/dts/amlogic/sm1_s905d3_ac202.dts | 15 ++++++++ .../boot/dts/amlogic/sm1_s905d3_ac202_1g.dts | 15 ++++++++ .../boot/dts/amlogic/sm1_s905x3_ac213.dts | 17 ++++++++++ .../video_processor/video_dev/amlvideo2.c | 18 +++++----- 33 files changed, 442 insertions(+), 17 deletions(-) diff --git a/arch/arm/boot/dts/amlogic/g12a_s905d2_u200.dts b/arch/arm/boot/dts/amlogic/g12a_s905d2_u200.dts index 27784b9e064e..772665613b8c 100644 --- a/arch/arm/boot/dts/amlogic/g12a_s905d2_u200.dts +++ b/arch/arm/boot/dts/amlogic/g12a_s905d2_u200.dts @@ -303,6 +303,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm/boot/dts/amlogic/g12a_s905d2_u200_1g.dts b/arch/arm/boot/dts/amlogic/g12a_s905d2_u200_1g.dts index decad3d7b22e..4949ac10fb2e 100644 --- a/arch/arm/boot/dts/amlogic/g12a_s905d2_u200_1g.dts +++ b/arch/arm/boot/dts/amlogic/g12a_s905d2_u200_1g.dts @@ -307,6 +307,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm/boot/dts/amlogic/g12a_s905d2_u202.dts b/arch/arm/boot/dts/amlogic/g12a_s905d2_u202.dts index 84f4bda1d9fd..f90e75848e30 100644 --- a/arch/arm/boot/dts/amlogic/g12a_s905d2_u202.dts +++ b/arch/arm/boot/dts/amlogic/g12a_s905d2_u202.dts @@ -303,6 +303,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm/boot/dts/amlogic/g12a_s905d2_u202_1g.dts b/arch/arm/boot/dts/amlogic/g12a_s905d2_u202_1g.dts index a6d3be3a6d51..d962f8a61087 100644 --- a/arch/arm/boot/dts/amlogic/g12a_s905d2_u202_1g.dts +++ b/arch/arm/boot/dts/amlogic/g12a_s905d2_u202_1g.dts @@ -307,6 +307,22 @@ dev_name = "ionvideo"; status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm/boot/dts/amlogic/g12a_s905x2_u212.dts b/arch/arm/boot/dts/amlogic/g12a_s905x2_u212.dts index 3acaaf7408af..c46aa9421e44 100644 --- a/arch/arm/boot/dts/amlogic/g12a_s905x2_u212.dts +++ b/arch/arm/boot/dts/amlogic/g12a_s905x2_u212.dts @@ -318,6 +318,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + /*dvb { * compatible = "amlogic, dvb"; * dev_name = "dvb"; diff --git a/arch/arm/boot/dts/amlogic/g12a_s905x2_u212_1g.dts b/arch/arm/boot/dts/amlogic/g12a_s905x2_u212_1g.dts index ad3d5cce0794..bc5bba493785 100644 --- a/arch/arm/boot/dts/amlogic/g12a_s905x2_u212_1g.dts +++ b/arch/arm/boot/dts/amlogic/g12a_s905x2_u212_1g.dts @@ -316,6 +316,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + /*dvb { * compatible = "amlogic, dvb"; * dev_name = "dvb"; @@ -353,6 +370,23 @@ * clock-names = "demux", "ahbarb0", "parser_top"; *}; */ + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + unifykey{ compatible = "amlogic, unifykey"; status = "ok"; diff --git a/arch/arm/boot/dts/amlogic/g12b_a311d_w400.dts b/arch/arm/boot/dts/amlogic/g12b_a311d_w400.dts index a85f84725113..d0da8f8e1ee4 100644 --- a/arch/arm/boot/dts/amlogic/g12b_a311d_w400.dts +++ b/arch/arm/boot/dts/amlogic/g12b_a311d_w400.dts @@ -317,6 +317,22 @@ status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + gpio_keypad { compatible = "amlogic, gpio_keypad"; status = "okay"; diff --git a/arch/arm/boot/dts/amlogic/g12b_a311d_w400_a.dts b/arch/arm/boot/dts/amlogic/g12b_a311d_w400_a.dts index 2d7652871d87..cf61f5f5e24c 100644 --- a/arch/arm/boot/dts/amlogic/g12b_a311d_w400_a.dts +++ b/arch/arm/boot/dts/amlogic/g12b_a311d_w400_a.dts @@ -317,6 +317,22 @@ status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + gpio_keypad { compatible = "amlogic, gpio_keypad"; status = "okay"; diff --git a/arch/arm/boot/dts/amlogic/mesong12a.dtsi b/arch/arm/boot/dts/amlogic/mesong12a.dtsi index 5a5334451071..a603596a028a 100644 --- a/arch/arm/boot/dts/amlogic/mesong12a.dtsi +++ b/arch/arm/boot/dts/amlogic/mesong12a.dtsi @@ -1189,7 +1189,7 @@ compatible = "amlogic, ge2d-g12a"; dev_name = "ge2d"; status = "okay"; - interrupts = <0 146 1>; + interrupts = <0 150 1>; interrupt-names = "ge2d"; clocks = <&clkc CLKID_VAPB_MUX>, <&clkc CLKID_G2D>, diff --git a/arch/arm/boot/dts/amlogic/mesong12b.dtsi b/arch/arm/boot/dts/amlogic/mesong12b.dtsi index 94ee647a35bc..ba57fadfbf50 100644 --- a/arch/arm/boot/dts/amlogic/mesong12b.dtsi +++ b/arch/arm/boot/dts/amlogic/mesong12b.dtsi @@ -1256,7 +1256,7 @@ compatible = "amlogic, ge2d-g12a"; dev_name = "ge2d"; status = "okay"; - interrupts = <0 146 1>; + interrupts = <0 150 1>; interrupt-names = "ge2d"; clocks = <&clkc CLKID_VAPB_MUX>, <&clkc CLKID_G2D>, diff --git a/arch/arm/boot/dts/amlogic/mesong12b_a.dtsi b/arch/arm/boot/dts/amlogic/mesong12b_a.dtsi index 54580c6c23ca..c5bde7f8bdc3 100644 --- a/arch/arm/boot/dts/amlogic/mesong12b_a.dtsi +++ b/arch/arm/boot/dts/amlogic/mesong12b_a.dtsi @@ -1251,7 +1251,7 @@ compatible = "amlogic, ge2d-g12a"; dev_name = "ge2d"; status = "okay"; - interrupts = <0 146 1>; + interrupts = <0 150 1>; interrupt-names = "ge2d"; clocks = <&clkc CLKID_VAPB_MUX>, <&clkc CLKID_G2D>, diff --git a/arch/arm/boot/dts/amlogic/mesonsm1.dtsi b/arch/arm/boot/dts/amlogic/mesonsm1.dtsi index 0259a77ab294..dc5329259caa 100644 --- a/arch/arm/boot/dts/amlogic/mesonsm1.dtsi +++ b/arch/arm/boot/dts/amlogic/mesonsm1.dtsi @@ -1215,7 +1215,7 @@ compatible = "amlogic, ge2d-sm1"; dev_name = "ge2d"; status = "okay"; - interrupts = <0 146 1>; + interrupts = <0 150 1>; interrupt-names = "ge2d"; clocks = <&clkc CLKID_VAPB_MUX>, <&clkc CLKID_G2D>, diff --git a/arch/arm/boot/dts/amlogic/sm1_s905d3_ac200.dts b/arch/arm/boot/dts/amlogic/sm1_s905d3_ac200.dts index 95b3c6ba38c3..b77d722a2c78 100644 --- a/arch/arm/boot/dts/amlogic/sm1_s905d3_ac200.dts +++ b/arch/arm/boot/dts/amlogic/sm1_s905d3_ac200.dts @@ -306,6 +306,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm/boot/dts/amlogic/sm1_s905d3_ac202.dts b/arch/arm/boot/dts/amlogic/sm1_s905d3_ac202.dts index 3eeed631178e..cc371a25ab2e 100644 --- a/arch/arm/boot/dts/amlogic/sm1_s905d3_ac202.dts +++ b/arch/arm/boot/dts/amlogic/sm1_s905d3_ac202.dts @@ -306,6 +306,21 @@ dev_name = "ionvideo"; status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts b/arch/arm/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts index 2e50bb4b0f26..84adb293f2b2 100644 --- a/arch/arm/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts +++ b/arch/arm/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts @@ -306,6 +306,21 @@ dev_name = "ionvideo"; status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm/boot/dts/amlogic/sm1_s905x3_ac213.dts b/arch/arm/boot/dts/amlogic/sm1_s905x3_ac213.dts index 965e2070cc25..9aa5993bbb67 100644 --- a/arch/arm/boot/dts/amlogic/sm1_s905x3_ac213.dts +++ b/arch/arm/boot/dts/amlogic/sm1_s905x3_ac213.dts @@ -332,6 +332,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + dvb { compatible = "amlogic, dvb"; dev_name = "dvb"; diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200.dts index 76b4d0f80b8b..c47d8c7f1d6a 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200.dts @@ -302,6 +302,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_1g.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_1g.dts index 21f3dd8a58c0..4fc9d9dfea33 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_1g.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_1g.dts @@ -301,6 +301,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u202.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u202.dts index 0b35d35ec5ff..ecff897bedc3 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u202.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u202.dts @@ -302,6 +302,21 @@ dev_name = "ionvideo"; status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u202_1g.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u202_1g.dts index dbd3110d8b94..d14f36a8f599 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u202_1g.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u202_1g.dts @@ -301,6 +301,21 @@ dev_name = "ionvideo"; status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u212.dts b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u212.dts index 44c6714a1127..12fc478470ef 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u212.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u212.dts @@ -318,6 +318,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + /*dvb { * compatible = "amlogic, dvb"; * dev_name = "dvb"; diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u212_1g.dts b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u212_1g.dts index f607a0036138..1ef307245d02 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u212_1g.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u212_1g.dts @@ -312,6 +312,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + /*dvb { * compatible = "amlogic, dvb"; * dev_name = "dvb"; @@ -349,6 +366,23 @@ * clock-names = "demux", "ahbarb0", "parser_top"; *}; */ + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + unifykey{ compatible = "amlogic, unifykey"; status = "ok"; diff --git a/arch/arm64/boot/dts/amlogic/g12b_a311d_w400.dts b/arch/arm64/boot/dts/amlogic/g12b_a311d_w400.dts index 96d2ff0059b3..f9a2a2dee207 100644 --- a/arch/arm64/boot/dts/amlogic/g12b_a311d_w400.dts +++ b/arch/arm64/boot/dts/amlogic/g12b_a311d_w400.dts @@ -318,6 +318,22 @@ status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + gpio_keypad { compatible = "amlogic, gpio_keypad"; status = "okay"; diff --git a/arch/arm64/boot/dts/amlogic/g12b_a311d_w400_a.dts b/arch/arm64/boot/dts/amlogic/g12b_a311d_w400_a.dts index 0751d3dd7dac..a5e16bf004dd 100644 --- a/arch/arm64/boot/dts/amlogic/g12b_a311d_w400_a.dts +++ b/arch/arm64/boot/dts/amlogic/g12b_a311d_w400_a.dts @@ -318,6 +318,22 @@ status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + gpio_keypad { compatible = "amlogic, gpio_keypad"; status = "okay"; diff --git a/arch/arm64/boot/dts/amlogic/mesong12a.dtsi b/arch/arm64/boot/dts/amlogic/mesong12a.dtsi index fc74cb1e75f4..b0f186db7fb1 100644 --- a/arch/arm64/boot/dts/amlogic/mesong12a.dtsi +++ b/arch/arm64/boot/dts/amlogic/mesong12a.dtsi @@ -1188,7 +1188,7 @@ compatible = "amlogic, ge2d-g12a"; dev_name = "ge2d"; status = "okay"; - interrupts = <0 146 1>; + interrupts = <0 150 1>; interrupt-names = "ge2d"; clocks = <&clkc CLKID_VAPB_MUX>, <&clkc CLKID_G2D>, diff --git a/arch/arm64/boot/dts/amlogic/mesong12b.dtsi b/arch/arm64/boot/dts/amlogic/mesong12b.dtsi index d5a2696d75af..6427022eafeb 100644 --- a/arch/arm64/boot/dts/amlogic/mesong12b.dtsi +++ b/arch/arm64/boot/dts/amlogic/mesong12b.dtsi @@ -1256,7 +1256,7 @@ compatible = "amlogic, ge2d-g12a"; dev_name = "ge2d"; status = "okay"; - interrupts = <0 146 1>; + interrupts = <0 150 1>; interrupt-names = "ge2d"; clocks = <&clkc CLKID_VAPB_MUX>, <&clkc CLKID_G2D>, diff --git a/arch/arm64/boot/dts/amlogic/mesong12b_a.dtsi b/arch/arm64/boot/dts/amlogic/mesong12b_a.dtsi index cb626e16cb48..ea184fff5531 100644 --- a/arch/arm64/boot/dts/amlogic/mesong12b_a.dtsi +++ b/arch/arm64/boot/dts/amlogic/mesong12b_a.dtsi @@ -1251,7 +1251,7 @@ compatible = "amlogic, ge2d-g12a"; dev_name = "ge2d"; status = "okay"; - interrupts = <0 146 1>; + interrupts = <0 150 1>; interrupt-names = "ge2d"; clocks = <&clkc CLKID_VAPB_MUX>, <&clkc CLKID_G2D>, diff --git a/arch/arm64/boot/dts/amlogic/mesonsm1.dtsi b/arch/arm64/boot/dts/amlogic/mesonsm1.dtsi index 89ca874cdee5..190d0abc9ed2 100644 --- a/arch/arm64/boot/dts/amlogic/mesonsm1.dtsi +++ b/arch/arm64/boot/dts/amlogic/mesonsm1.dtsi @@ -1214,7 +1214,7 @@ compatible = "amlogic, ge2d-sm1"; dev_name = "ge2d"; status = "okay"; - interrupts = <0 146 1>; + interrupts = <0 150 1>; interrupt-names = "ge2d"; clocks = <&clkc CLKID_VAPB_MUX>, <&clkc CLKID_G2D>, diff --git a/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac200.dts b/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac200.dts index e41f7e32c121..16d04a26ae51 100644 --- a/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac200.dts +++ b/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac200.dts @@ -304,6 +304,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202.dts b/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202.dts index 3e14297ea264..b6f5bf6b3735 100644 --- a/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202.dts +++ b/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202.dts @@ -304,6 +304,21 @@ dev_name = "ionvideo"; status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts b/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts index 892067e51d87..11595830faba 100644 --- a/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts +++ b/arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts @@ -304,6 +304,21 @@ dev_name = "ionvideo"; status = "okay"; }; + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/arch/arm64/boot/dts/amlogic/sm1_s905x3_ac213.dts b/arch/arm64/boot/dts/amlogic/sm1_s905x3_ac213.dts index 1bdc6e818a44..d8bd25952eea 100644 --- a/arch/arm64/boot/dts/amlogic/sm1_s905x3_ac213.dts +++ b/arch/arm64/boot/dts/amlogic/sm1_s905x3_ac213.dts @@ -366,6 +366,23 @@ dev_name = "ionvideo"; status = "okay"; }; + + amlvideo2_0 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <0>; + cma_mode = <1>; + }; + + amlvideo2_1 { + compatible = "amlogic, amlvideo2"; + dev_name = "amlvideo2"; + status = "okay"; + amlvideo2_id = <1>; + cma_mode = <1>; + }; + vm0 { compatible = "amlogic, vm"; memory-region = <&vm0_cma_reserved>; diff --git a/drivers/amlogic/media/video_processor/video_dev/amlvideo2.c b/drivers/amlogic/media/video_processor/video_dev/amlvideo2.c index 78a15aae4099..18b6ca28747a 100644 --- a/drivers/amlogic/media/video_processor/video_dev/amlvideo2.c +++ b/drivers/amlogic/media/video_processor/video_dev/amlvideo2.c @@ -77,7 +77,8 @@ /* #define USE_SEMA_QBUF */ /* #define USE_VDIN_PTS */ -/* #define MULTI_NODE */ +#define MULTI_NODE + #ifdef MULTI_NODE #define MAX_SUB_DEV_NODE 2 #else @@ -4647,8 +4648,8 @@ static int vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf) #ifdef PREVIOUS_VOUT_MODE static enum tvin_scan_mode_e vmode2scan_mode(enum vmode_e mode) { - enum tvin_scan_mode_e scan_mode = - TVIN_SCAN_MODE_NULL;/* 1: progressive 2:interlaced */ + enum tvin_scan_mode_e scan_mode = TVIN_SCAN_MODE_PROGRESSIVE; + //TVIN_SCAN_MODE_NULL;/* 1: progressive 2:interlaced */ switch (mode) { case VMODE_480I: @@ -4719,7 +4720,6 @@ static int amlvideo2_stop_tvin_service(struct amlvideo2_node *node) vops->stop_tvin_service(node->vdin_device_num); } - node->start_vdin_flag = 0; return ret; } @@ -4733,7 +4733,7 @@ static int amlvideo2_start_tvin_service(struct amlvideo2_node *node) vinfo = get_current_vinfo(); - if ((!node->start_vdin_flag) || (node->r_type != AML_RECEIVER_NONE)) + if (node->r_type != AML_RECEIVER_NONE) goto start; if (amlvideo2_dbg_en) @@ -4882,7 +4882,7 @@ int amlvideo2_notify_callback(struct notifier_block *block, unsigned long cmd, /* if local queue have vf , should give back to provider */ if (vfq_empty(&node->q_ready)) { - if (amlvideo2_dbg_en) + if (amlvideo2_dbg_en & 4) pr_info("q_ready is empty .\n"); } else { recycle_vf = vfq_pop(&node->q_ready); @@ -4890,12 +4890,12 @@ int amlvideo2_notify_callback(struct notifier_block *block, unsigned long cmd, vf_put(recycle_vf, node->recv.name); recycle_vf = vfq_pop(&node->q_ready); } - if (amlvideo2_dbg_en) + if (amlvideo2_dbg_en & 4) pr_info("already flush local vf .\n"); } /*debug provider vf state*/ - if (amlvideo2_dbg_en) { + if (amlvideo2_dbg_en & 4) { ret = vf_get_states(vfp, &states); if (ret == 0) { pr_info("vf_pool_size = %d, buf_free_num = %d .\n", @@ -4913,7 +4913,7 @@ int amlvideo2_notify_callback(struct notifier_block *block, unsigned long cmd, if (node->r_type == AML_RECEIVER_NONE) amlvideo2_start_thread(node->fh); - msleep(500); + ret = amlvideo2_start_tvin_service(node); if (ret < 0) {