diff mbox

[3/3] arm64: dts: rockchip: remove always-on and boot-on from vcc_sd

Message ID 1474516939-22001-3-git-send-email-shawn.lin@rock-chips.com (mailing list archive)
State New, archived
Headers show

Commit Message

Shawn Lin Sept. 22, 2016, 4:02 a.m. UTC
Please don't add these for vcc_sd, and mmc-core/driver will control
it. Otherwise, it will waste energy even without sdmmc in slot.

Moreover, it will causes a bug:
If we insert/remove sd card, we could see
[9.337271] mmc0: new ultra high speed SDR25 SDHC card at address 0007
[9.345144] mmcblk0: mmc0:0007 SD32G 29.3 GiB

This is okay for normal sd insert/remove test, but when I debug some
issues for sdmmc, I did unbind/bind test. And there is a interesting
phenomenon when we bind the driver again:
[58.314069] mmc0: new high speed SDHC card at address 0007
[58.320282] mmcblk0: mmc0:0007 SD32G 29.3 GiB

So the sd card could just support high speed without power cycle
since the vcc_sd is always on, which makes the sd card fail to
reinit its internal ocr mask.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

 arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts        | 2 --
 arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts | 2 --
 arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts        | 2 --
 3 files changed, 6 deletions(-)

Comments

Shawn Lin Oct. 9, 2016, 1:42 p.m. UTC | #1
Hi Heiko,

Ping... :)

在 2016/9/22 12:02, Shawn Lin 写道:
> Please don't add these for vcc_sd, and mmc-core/driver will control
> it. Otherwise, it will waste energy even without sdmmc in slot.
>
> Moreover, it will causes a bug:
> If we insert/remove sd card, we could see
> [9.337271] mmc0: new ultra high speed SDR25 SDHC card at address 0007
> [9.345144] mmcblk0: mmc0:0007 SD32G 29.3 GiB
>
> This is okay for normal sd insert/remove test, but when I debug some
> issues for sdmmc, I did unbind/bind test. And there is a interesting
> phenomenon when we bind the driver again:
> [58.314069] mmc0: new high speed SDHC card at address 0007
> [58.320282] mmcblk0: mmc0:0007 SD32G 29.3 GiB
>
> So the sd card could just support high speed without power cycle
> since the vcc_sd is always on, which makes the sd card fail to
> reinit its internal ocr mask.
>
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
>
>  arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts        | 2 --
>  arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts | 2 --
>  arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts        | 2 --
>  3 files changed, 6 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts b/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
> index 46cdddf..353314c 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
> @@ -258,8 +258,6 @@
>  			};
>
>  			vcc_sd: SWITCH_REG1 {
> -				regulator-always-on;
> -				regulator-boot-on;
>  				regulator-name = "vcc_sd";
>  			};
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts b/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
> index 5797933..13b7f1ed 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
> @@ -152,8 +152,6 @@
>  		gpio = <&gpio3 11 GPIO_ACTIVE_LOW>;
>  		regulator-min-microvolt = <1800000>;
>  		regulator-max-microvolt = <3300000>;
> -		regulator-always-on;
> -		regulator-boot-on;
>  		vin-supply = <&vcc_io>;
>  	};
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts b/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts
> index f59049b..8c47b01 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts
> @@ -236,8 +236,6 @@
>  			};
>
>  			vcc_sd: SWITCH_REG1 {
> -				regulator-always-on;
> -				regulator-boot-on;
>  				regulator-name = "vcc_sd";
>  			};
>
>
Heiko Stuebner Oct. 14, 2016, 5:18 p.m. UTC | #2
Hi Shawn,

Am Donnerstag, 22. September 2016, 12:02:19 CEST schrieb Shawn Lin:
> Please don't add these for vcc_sd, and mmc-core/driver will control
> it. Otherwise, it will waste energy even without sdmmc in slot.
> 
> Moreover, it will causes a bug:
> If we insert/remove sd card, we could see
> [9.337271] mmc0: new ultra high speed SDR25 SDHC card at address 0007
> [9.345144] mmcblk0: mmc0:0007 SD32G 29.3 GiB
> 
> This is okay for normal sd insert/remove test, but when I debug some
> issues for sdmmc, I did unbind/bind test. And there is a interesting
> phenomenon when we bind the driver again:
> [58.314069] mmc0: new high speed SDHC card at address 0007
> [58.320282] mmcblk0: mmc0:0007 SD32G 29.3 GiB
> 
> So the sd card could just support high speed without power cycle
> since the vcc_sd is always on, which makes the sd card fail to
> reinit its internal ocr mask.
> 
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>

>  arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts        | 2 --
>  arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts | 2 --

I've applied the geekbox + r68 parts of the patch as fix for 4.9 ...

>  arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts        | 2 --

and merged the px5-evb-part with the core patch adding the px5-evb,
so that we don't introduce known regressions unecessarily.


Thanks for fixing this
Heiko
diff mbox

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts b/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
index 46cdddf..353314c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
@@ -258,8 +258,6 @@ 
 			};
 
 			vcc_sd: SWITCH_REG1 {
-				regulator-always-on;
-				regulator-boot-on;
 				regulator-name = "vcc_sd";
 			};
 
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts b/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
index 5797933..13b7f1ed 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
@@ -152,8 +152,6 @@ 
 		gpio = <&gpio3 11 GPIO_ACTIVE_LOW>;
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <3300000>;
-		regulator-always-on;
-		regulator-boot-on;
 		vin-supply = <&vcc_io>;
 	};
 
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts b/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts
index f59049b..8c47b01 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts
@@ -236,8 +236,6 @@ 
 			};
 
 			vcc_sd: SWITCH_REG1 {
-				regulator-always-on;
-				regulator-boot-on;
 				regulator-name = "vcc_sd";
 			};