DT: rockchip: Fix stability issues with the 'performance' governor on rock960

Message ID 1539698431-12616-1-git-send-email-daniel.lezcano@linaro.org
State New
Headers show
Series
  • DT: rockchip: Fix stability issues with the 'performance' governor on rock960
Related show

Commit Message

Daniel Lezcano Oct. 16, 2018, 2 p.m.
When the performance governor is set as default, the rock960 hangs
around one minute after booting, whatever the activity is (idle, key
pressed, loaded, ...).

Based on the commit log found at https://patchwork.kernel.org/patch/10092377/

"vdd_log has no consumer and therefore will not be set to a specific
voltage. Still the PWM output pin gets configured and thence the vdd_log
output voltage will changed from it's default. Depending on the idle
state of the PWM this will slightly over or undervoltage the logic supply
of the RK3399 and cause instability with GbE (undervoltage) and PCIe
(overvoltage). Since the default value set by a voltage divider is the
correct supply voltage and we don't need to change it during runtime we
remove the rail from the devicetree completely so the PWM pin will not
be configured."

After removing the vdd-log from the rock960's specific DT, the board
does no longer hang and shows a stable behavior.

Apply the same change for the rock960 by removing the vdd-log from the
DT.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>

---
 arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi | 12 ------------
 1 file changed, 12 deletions(-)

-- 
2.7.4

Comments

Manivannan Sadhasivam Oct. 16, 2018, 2:21 p.m. | #1
On Tue, Oct 16, 2018 at 04:00:20PM +0200, Daniel Lezcano wrote:
> When the performance governor is set as default, the rock960 hangs

> around one minute after booting, whatever the activity is (idle, key

> pressed, loaded, ...).

> 

> Based on the commit log found at https://patchwork.kernel.org/patch/10092377/

> 

> "vdd_log has no consumer and therefore will not be set to a specific

> voltage. Still the PWM output pin gets configured and thence the vdd_log

> output voltage will changed from it's default. Depending on the idle

> state of the PWM this will slightly over or undervoltage the logic supply

> of the RK3399 and cause instability with GbE (undervoltage) and PCIe

> (overvoltage). Since the default value set by a voltage divider is the

> correct supply voltage and we don't need to change it during runtime we

> remove the rail from the devicetree completely so the PWM pin will not

> be configured."

> 

> After removing the vdd-log from the rock960's specific DT, the board

> does no longer hang and shows a stable behavior.

> 

> Apply the same change for the rock960 by removing the vdd-log from the

> DT.

> 

> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>


Tested on Rock960 v1.2 board, hence

Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>


Thanks a ton!

Regards,
Mani

> ---

>  arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi | 12 ------------

>  1 file changed, 12 deletions(-)

> 

> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi

> index 6c8c4ab..56abbb0 100644

> --- a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi

> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi

> @@ -57,18 +57,6 @@

>  		regulator-always-on;

>  		vin-supply = <&vcc_sys>;

>  	};

> -

> -	vdd_log: vdd-log {

> -		compatible = "pwm-regulator";

> -		pwms = <&pwm2 0 25000 0>;

> -		regulator-name = "vdd_log";

> -		regulator-min-microvolt = <800000>;

> -		regulator-max-microvolt = <1400000>;

> -		regulator-always-on;

> -		regulator-boot-on;

> -		vin-supply = <&vcc_sys>;

> -	};

> -

>  };

>  

>  &cpu_l0 {

> -- 

> 2.7.4

>

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi
index 6c8c4ab..56abbb0 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi
@@ -57,18 +57,6 @@ 
 		regulator-always-on;
 		vin-supply = <&vcc_sys>;
 	};
-
-	vdd_log: vdd-log {
-		compatible = "pwm-regulator";
-		pwms = <&pwm2 0 25000 0>;
-		regulator-name = "vdd_log";
-		regulator-min-microvolt = <800000>;
-		regulator-max-microvolt = <1400000>;
-		regulator-always-on;
-		regulator-boot-on;
-		vin-supply = <&vcc_sys>;
-	};
-
 };
 
 &cpu_l0 {