diff --git a/patch/kernel/rockchip-dev/2001-Enabling-the-Mali-GPU-nodes-in-the-MiQi-and-Tinkerbo.patch b/patch/kernel/rockchip-dev/2001-Enabling-the-Mali-GPU-nodes-in-the-MiQi-and-Tinkerbo.patch new file mode 100644 index 0000000000..3414cf352a --- /dev/null +++ b/patch/kernel/rockchip-dev/2001-Enabling-the-Mali-GPU-nodes-in-the-MiQi-and-Tinkerbo.patch @@ -0,0 +1,34 @@ +From 4b91f1b6cdd50bec47507704c127bbc913aeefe4 Mon Sep 17 00:00:00 2001 +From: Myy +Date: Tue, 18 Jul 2017 02:25:27 +0000 +Subject: [PATCH] Enabling the Mali GPU nodes in the MiQi and Tinkerboard DTS + files + +These will be enabled in upcoming arm-soc patches. Meanwhile, they're +enabled through this patch. + +Signed-off-by: Myy +--- + arch/arm/boot/dts/rk3288-miqi.dts | 5 +++++ + arch/arm/boot/dts/rk3288-tinker.dts | 5 +++++ + 2 files changed, 10 insertions(+) + +diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts +index c165eec..29b94a0 100644 +--- a/arch/arm/boot/dts/rk3288-miqi.dts ++++ b/arch/arm/boot/dts/rk3288-miqi.dts +@@ -150,6 +150,11 @@ + status = "ok"; + }; + ++&gpu { ++ mali-supply = <&vdd_gpu>; ++ status = "okay"; ++}; ++ + &hdmi { + ddc-i2c-bus = <&i2c5>; + status = "okay"; +-- +2.10.2 + diff --git a/patch/kernel/rockchip-dev/2002-ARM-dts-rockchip-fix-the-regulator-s-voltage-range-o.patch b/patch/kernel/rockchip-dev/2002-ARM-dts-rockchip-fix-the-regulator-s-voltage-range-o.patch new file mode 100644 index 0000000000..825fac4475 --- /dev/null +++ b/patch/kernel/rockchip-dev/2002-ARM-dts-rockchip-fix-the-regulator-s-voltage-range-o.patch @@ -0,0 +1,45 @@ +From 69515aeb405daf9b9767209d63a38f68a6e2521d Mon Sep 17 00:00:00 2001 +From: Willy Tarreau +Date: Tue, 2 Aug 2016 08:31:00 +0200 +Subject: [PATCH 05/12] ARM: dts: rockchip: fix the regulator's voltage range + on MiQi board + +The board declared too narrow a voltage range for the CPU and GPU +regulators, preventing it from using the full CPU frequency range. +The regulators support 712500 to 1500000 microvolts. + +Signed-off-by: Willy Tarreau +(cherry picked from commit 95330e63a9295a2632cee8cce5db80677f01857a) +--- + arch/arm/boot/dts/rk3288-miqi.dts | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts +index cc42be5..43728c9 100644 +--- a/arch/arm/boot/dts/rk3288-miqi.dts ++++ b/arch/arm/boot/dts/rk3288-miqi.dts +@@ -166,8 +166,8 @@ + fcs,suspend-voltage-selector = <1>; + reg = <0x40>; + regulator-name = "vdd_cpu"; +- regulator-min-microvolt = <850000>; +- regulator-max-microvolt = <1350000>; ++ regulator-min-microvolt = <712500>; ++ regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + regulator-enable-ramp-delay = <300>; +@@ -180,8 +180,8 @@ + fcs,suspend-voltage-selector = <1>; + reg = <0x41>; + regulator-name = "vdd_gpu"; +- regulator-min-microvolt = <850000>; +- regulator-max-microvolt = <1350000>; ++ regulator-min-microvolt = <712500>; ++ regulator-max-microvolt = <1500000>; + regulator-always-on; + vin-supply = <&vcc_sys>; + }; +-- +2.10.2 + diff --git a/patch/kernel/rockchip-dev/2003-Adaptation-ARM-dts-rockchip-add-the-MiQi-board-s-fan.patch b/patch/kernel/rockchip-dev/2003-Adaptation-ARM-dts-rockchip-add-the-MiQi-board-s-fan.patch new file mode 100644 index 0000000000..ddc02b68e6 --- /dev/null +++ b/patch/kernel/rockchip-dev/2003-Adaptation-ARM-dts-rockchip-add-the-MiQi-board-s-fan.patch @@ -0,0 +1,47 @@ +From 112ef8de95b8b4287de14f7e5c9853cbbf3e69b0 Mon Sep 17 00:00:00 2001 +From: Myy +Date: Sun, 12 Mar 2017 19:43:15 +0000 +Subject: [PATCH 07/12] [Adaptation] ARM: dts: rockchip: add the MiQi board's + fan definition + +The MiQi board is sold with an enclosure in which a fan is connected +to the second LED output, and configured by default in "heartbeat" +mode so that it rotates slowly and increases when the CPU load +increases, ensuring appropriate cooling by default. This LED output +is called "Fan" in the original kernel and connected to GPIO18 +(gpiochip 0, pin 18). Here we called it "miqi:green:fan" to stay +consistent with the kernel's naming conventions. + +It's worth noting that without this patch the fan doesn't work at +all, risking to make the board overheat. + +Fixes: 162718c (v4.7) +Cc: Heiko Stuebner +Signed-off-by: Willy Tarreau + +Signed-off-by: Myy +--- + arch/arm/boot/dts/rk3288-miqi.dts | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts +index 7a42069..3132829 100644 +--- a/arch/arm/boot/dts/rk3288-miqi.dts ++++ b/arch/arm/boot/dts/rk3288-miqi.dts +@@ -67,6 +67,13 @@ + leds { + compatible = "gpio-leds"; + ++ fan { ++ gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>; ++ label = "miqi:green:fan"; ++ linux,default-trigger = "heartbeat"; ++ }; ++ ++ + work { + gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>; + label = "miqi:green:user"; +-- +2.10.2 + diff --git a/patch/kernel/rockchip-dev/2004-ARM-dts-rockchip-add-support-for-1800-MHz-operation-.patch b/patch/kernel/rockchip-dev/2004-ARM-dts-rockchip-add-support-for-1800-MHz-operation-.patch new file mode 100644 index 0000000000..d3c758add7 --- /dev/null +++ b/patch/kernel/rockchip-dev/2004-ARM-dts-rockchip-add-support-for-1800-MHz-operation-.patch @@ -0,0 +1,41 @@ +From 266b439288e86b26e4cc524b92f1e0683ae913f0 Mon Sep 17 00:00:00 2001 +From: Willy Tarreau +Date: Tue, 2 Aug 2016 08:20:53 +0200 +Subject: [PATCH 08/12] ARM: dts: rockchip: add support for 1800 MHz operation + on MiQi board + +This board happily supports 1800 MHz operations (and even more), so +let's enable it. + +Signed-off-by: Willy Tarreau +(cherry picked from commit a0b82a29e7873a81f49ac5f50be3df1c7d312a14) +--- + arch/arm/boot/dts/rk3288-miqi.dts | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts +index 3132829..db5fcd4 100644 +--- a/arch/arm/boot/dts/rk3288-miqi.dts ++++ b/arch/arm/boot/dts/rk3288-miqi.dts +@@ -126,6 +126,18 @@ + + &cpu0 { + cpu0-supply = <&vdd_cpu>; ++ operating-points = < ++ /* KHz uV */ ++ 1800000 1400000 ++ 1704000 1350000 ++ 1608000 1300000 ++ 1512000 1250000 ++ 1416000 1200000 ++ 1200000 1100000 ++ 1008000 1050000 ++ 816000 1000000 ++ 600000 900000 ++ >; + }; + + &emmc { +-- +2.10.2 + diff --git a/patch/kernel/rockchip-dev/2005-Readapt-ARM-dts-rockchip-miqi-add-turbo-mode-operati.patch b/patch/kernel/rockchip-dev/2005-Readapt-ARM-dts-rockchip-miqi-add-turbo-mode-operati.patch new file mode 100644 index 0000000000..7f54a72a45 --- /dev/null +++ b/patch/kernel/rockchip-dev/2005-Readapt-ARM-dts-rockchip-miqi-add-turbo-mode-operati.patch @@ -0,0 +1,170 @@ +From 7dfb0c2748133e40ae11d6f800550d3b00a8a22d Mon Sep 17 00:00:00 2001 +From: Myy +Date: Mon, 16 Jan 2017 12:44:56 +0000 +Subject: [PATCH 10/12] Readapt: ARM: dts: rockchip: miqi: add turbo-mode + operating points + +Readaptation of Willy Tarreau patch. + +Here's the original commit message: + +By switching to opp-v2 we can declare "turbo-mode" operating points +which are only enabled when /sys/devices/system/cpu/cpufreq/boost is +set. It is convenient because it allows to boot, set a safe powersave +governor, enable boost, limit scaling_max_freq to a safe value, then +change the governor to performance or ondemand, and the frequency can +then be manually adjusted by only touching scaling_max_freq. + +New values are 1896, 1920, 1992, 2016, 2040 MHz, 2064, 2088, 2112, +2136, 2160, 2184, 2208. MiQi boards work fine up to 2112 with a very +good power supply (5.2V/3A real) and a strong heatsink. Higher +frequencies may randomly work. At least 1992 is rock solid for hours +using "openssl speed -multi 4". The other ones have only been tested +for a few minutes. Frequencies of 1896 and 1920 MHz use 1.425V. +1992 MHz uses 1.45V. 2016, 2040 and 2064 use 1.475V. 2088 and above +use 1.500V. 2160, 2184 and 2208 cause the lowest frequency to be +picked. It's obvious that it's a sign issue somewhere in the kernel +but this one was not found yet. + +Signed-off-by: Myy +--- + arch/arm/boot/dts/rk3288-miqi.dts | 120 +++++++++++++++++++++++++++++++++----- + 1 file changed, 107 insertions(+), 13 deletions(-) + +diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts +index db5fcd4..bd27f91 100644 +--- a/arch/arm/boot/dts/rk3288-miqi.dts ++++ b/arch/arm/boot/dts/rk3288-miqi.dts +@@ -122,22 +122,116 @@ + regulator-always-on; + regulator-boot-on; + }; +-}; + ++ ++ cpu0_opp_table: opp_table0 { ++ compatible = "operating-points-v2"; ++ opp-shared; ++ ++ opp@600000000 { ++ opp-hz = /bits/ 64 <600000000>; ++ opp-microvolt = <900000>; ++ }; ++ opp@816000000 { ++ opp-hz = /bits/ 64 <816000000>; ++ opp-microvolt = <1000000>; ++ }; ++ opp@1008000000 { ++ opp-hz = /bits/ 64 <1008000000>; ++ opp-microvolt = <1050000>; ++ }; ++ opp@1200000000 { ++ opp-hz = /bits/ 64 <1200000000>; ++ opp-microvolt = <1100000>; ++ }; ++ opp@1416000000 { ++ opp-hz = /bits/ 64 <1416000000>; ++ opp-microvolt = <1200000>; ++ }; ++ opp@1512000000 { ++ opp-hz = /bits/ 64 <1512000000>; ++ opp-microvolt = <1250000>; ++ }; ++ opp@1608000000 { ++ opp-hz = /bits/ 64 <1608000000>; ++ opp-microvolt = <1300000>; ++ }; ++ opp@1704000000 { ++ opp-hz = /bits/ 64 <1704000000>; ++ opp-microvolt = <1350000>; ++ }; ++ opp@1800000000 { ++ opp-hz = /bits/ 64 <1800000000>; ++ opp-microvolt = <1400000>; ++ }; ++ /* boot-only frequencies below */ ++ opp@1896000000 { ++ opp-hz = /bits/ 64 <1896000000>; ++ opp-microvolt = <1425000>; ++ turbo-mode; ++ }; ++ opp@1920000000 { ++ opp-hz = /bits/ 64 <1920000000>; ++ opp-microvolt = <1425000>; ++ turbo-mode; ++ }; ++ opp@1992000000 { ++ opp-hz = /bits/ 64 <1992000000>; ++ opp-microvolt = <1450000>; ++ turbo-mode; ++ }; ++ opp@2016000000 { ++ opp-hz = /bits/ 64 <2016000000>; ++ opp-microvolt = <1475000>; ++ turbo-mode; ++ }; ++ opp@2040000000 { ++ opp-hz = /bits/ 64 <2040000000>; ++ opp-microvolt = <1475000>; ++ turbo-mode; ++ }; ++ opp@2064000000 { ++ opp-hz = /bits/ 64 <2064000000>; ++ opp-microvolt = <1475000>; ++ turbo-mode; ++ }; ++ opp@2088000000 { ++ opp-hz = /bits/ 64 <2088000000>; ++ opp-microvolt = <1500000>; ++ turbo-mode; ++ }; ++ opp@2112000000 { ++ opp-hz = /bits/ 64 <2112000000>; ++ opp-microvolt = <1500000>; ++ turbo-mode; ++ }; ++ opp@2136000000 { ++ opp-hz = /bits/ 64 <2136000000>; ++ opp-microvolt = <1500000>; ++ turbo-mode; ++ }; ++ opp@2160000000 { ++ opp-hz = /bits/ 64 <2160000000>; ++ opp-microvolt = <1500000>; ++ turbo-mode; ++ }; ++ opp@2184000000 { ++ opp-hz = /bits/ 64 <2184000000>; ++ opp-microvolt = <1500000>; ++ turbo-mode; ++ }; ++ opp@2208000000 { ++ opp-hz = /bits/ 64 <2208000000>; ++ opp-microvolt = <1500000>; ++ turbo-mode; ++ }; ++ }; ++}; ++ + &cpu0 { + cpu0-supply = <&vdd_cpu>; +- operating-points = < +- /* KHz uV */ +- 1800000 1400000 +- 1704000 1350000 +- 1608000 1300000 +- 1512000 1250000 +- 1416000 1200000 +- 1200000 1100000 +- 1008000 1050000 +- 816000 1000000 +- 600000 900000 +- >; ++ ++ operating-points-v2 = <&cpu0_opp_table>; + }; + + &emmc { +-- +2.10.2 + diff --git a/patch/kernel/rockchip-dev/2009-Define-VPU-services-in-the-Rockchip-3288-DTS-files.patch b/patch/kernel/rockchip-dev/2009-Define-VPU-services-in-the-Rockchip-3288-DTS-files.patch new file mode 100644 index 0000000000..49f57fe89e --- /dev/null +++ b/patch/kernel/rockchip-dev/2009-Define-VPU-services-in-the-Rockchip-3288-DTS-files.patch @@ -0,0 +1,69 @@ +From 59b6f52c5290521ce2bd6209759e0d055c4bdc09 Mon Sep 17 00:00:00 2001 +From: Myy +Date: Tue, 18 Jul 2017 02:21:44 +0000 +Subject: [PATCH] Define VPU services in the Rockchip 3288 DTS files + +And use them in the MiQi, Tinkerboard and Firefly board. + +These will be used by the external Vcodec driver. + +Signed-off-by: Myy +--- + arch/arm/boot/dts/rk3288-firefly.dtsi | 8 +++ + arch/arm/boot/dts/rk3288-miqi.dts | 8 +++ + arch/arm/boot/dts/rk3288-tinker.dts | 9 ++++ + arch/arm/boot/dts/rk3288.dtsi | 97 +++++++++++++++++++++++++++++++++++ + 4 files changed, 122 insertions(+) + +diff --git a/arch/arm/boot/dts/rk3288-firefly.dtsi b/arch/arm/boot/dts/rk3288-firefly.dtsi +index 32dabae..13c8b42 100644 +--- a/arch/arm/boot/dts/rk3288-firefly.dtsi ++++ b/arch/arm/boot/dts/rk3288-firefly.dtsi +@@ -612,3 +612,11 @@ + &wdt { + status = "okay"; + }; ++ ++&hevc_service { ++ status = "okay"; ++}; ++ ++&vpu_service { ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts +index 30e93f6..c165eec 100644 +--- a/arch/arm/boot/dts/rk3288-miqi.dts ++++ b/arch/arm/boot/dts/rk3288-miqi.dts +@@ -462,3 +462,11 @@ + &wdt { + status = "okay"; + }; ++ ++&hevc_service { ++ status = "okay"; ++}; ++ ++&vpu_service { ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts +index f601c78..6bbc8a3 100644 +--- a/arch/arm/boot/dts/rk3288-tinker.dts ++++ b/arch/arm/boot/dts/rk3288-tinker.dts +@@ -534,3 +534,12 @@ + &wdt { + status = "okay"; + }; ++ ++&hevc_service { ++ status = "okay"; ++}; ++ ++&vpu_service { ++ status = "okay"; ++}; ++ +-- +2.10.2 +