Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1452251 > unrolled thread

[PATCH 0/5] Add power domain support for dw_mmc/sdhci-of-arasan

Started byShawn Lin <shawn.lin@rock-chips.com>
First post2016-07-29 06:20 +0200
Last post2016-08-01 05:30 +0200
Articles 6 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/5] Add power domain support for dw_mmc/sdhci-of-arasan Shawn Lin <shawn.lin@rock-chips.com> - 2016-07-29 06:20 +0200
    [PATCH 2/5] Documentation: mmc: sdhci-of-arasan: add power domain description Shawn Lin <shawn.lin@rock-chips.com> - 2016-07-29 06:20 +0200
      Re: [PATCH 2/5] Documentation: mmc: sdhci-of-arasan: add power  domain description Rob Herring <robh@kernel.org> - 2016-07-29 23:50 +0200
    [PATCH 5/5] mmc: sdhci-of-arasan: add power domain support Shawn Lin <shawn.lin@rock-chips.com> - 2016-07-29 06:30 +0200
    Re: [PATCH 0/5] Add power domain support for dw_mmc/sdhci-of-arasan Ulf Hansson <ulf.hansson@linaro.org> - 2016-07-29 11:30 +0200
      Re: [PATCH 0/5] Add power domain support for dw_mmc/sdhci-of-arasan Shawn Lin <shawn.lin@rock-chips.com> - 2016-08-01 05:30 +0200

#1452251 — [PATCH 0/5] Add power domain support for dw_mmc/sdhci-of-arasan

FromShawn Lin <shawn.lin@rock-chips.com>
Date2016-07-29 06:20 +0200
Subject[PATCH 0/5] Add power domain support for dw_mmc/sdhci-of-arasan
Message-ID<s07rb-83j-7@gated-at.bofh.it>
We need to enable the power domain manually while probing as the
power policy will turn off the pd which is not referenced. Otherwise
we may take risk of breaking kernel once Feng Xiao land the rockchip pd
relate stuff. So, let's do it in advance.

This pachset is based on the latest linux-next[1] which should contain
the next branch of linux-mmc and dt stuff. It's ideal to pack these all
into Ulf' tree with Heiko's ack for dts, Rob's ack for Doc and Jaehoon's
ack for dw_mmc. But it's okay to be merged seperately.

[1] git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

Thanks.



Shawn Lin (5):
  Documentation: mmc: synopsys-dw-mshc: add power domain description
  Documentation: mmc: sdhci-of-arasan: add power domain description
  arm64: dts: rockchip: Provide power-domains for sd/sdio/emmc
    controllers
  mmc: dw_mmc: add power domain support
  mmc: sdhci-of-arasan: add power domain support

 Documentation/devicetree/bindings/mmc/arasan,sdhci.txt     |  1 +
 Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt |  2 ++
 arch/arm64/boot/dts/rockchip/rk3399.dtsi                   |  3 +++
 drivers/mmc/host/dw_mmc.c                                  | 11 +++++++++++
 drivers/mmc/host/sdhci-of-arasan.c                         | 10 ++++++++++
 5 files changed, 27 insertions(+)

-- 
2.3.7

[toc] | [next] | [standalone]


#1452252 — [PATCH 2/5] Documentation: mmc: sdhci-of-arasan: add power domain description

FromShawn Lin <shawn.lin@rock-chips.com>
Date2016-07-29 06:20 +0200
Subject[PATCH 2/5] Documentation: mmc: sdhci-of-arasan: add power domain description
Message-ID<s07rc-83j-25@gated-at.bofh.it>
In reply to#1452251
This patch adds power domain as a optional property for sdhci-of-arasan.
We should handle the power domain if available as it's in off
state due to the policy of power-saving after booting up. Otherwise
controller can not be accessed.

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

 Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
index 3404afa..b5fb563 100644
--- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
+++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
@@ -36,6 +36,7 @@ Optional Properties:
   - #clock-cells: If specified this should be the value <0>.  With this property
     in place we will export a clock representing the Card Clock.  This clock
     is expected to be consumed by our PHY.  You must also specify
+  - power-domains: Must contain a reference to the PM domain, if available.
 
 Example:
 	sdhci@e0100000 {
-- 
2.3.7

[toc] | [prev] | [next] | [standalone]


#1452592 — Re: [PATCH 2/5] Documentation: mmc: sdhci-of-arasan: add power domain description

FromRob Herring <robh@kernel.org>
Date2016-07-29 23:50 +0200
SubjectRe: [PATCH 2/5] Documentation: mmc: sdhci-of-arasan: add power domain description
Message-ID<s0nPk-1RL-9@gated-at.bofh.it>
In reply to#1452252
On Fri, Jul 29, 2016 at 12:15:00PM +0800, Shawn Lin wrote:
> This patch adds power domain as a optional property for sdhci-of-arasan.
> We should handle the power domain if available as it's in off
> state due to the policy of power-saving after booting up. Otherwise
> controller can not be accessed.
> 
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
> 
>  Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 1 +
>  1 file changed, 1 insertion(+)

Acked-by: Rob Herring <robh@kernel.org>

[toc] | [prev] | [next] | [standalone]


#1452254 — [PATCH 5/5] mmc: sdhci-of-arasan: add power domain support

FromShawn Lin <shawn.lin@rock-chips.com>
Date2016-07-29 06:30 +0200
Subject[PATCH 5/5] mmc: sdhci-of-arasan: add power domain support
Message-ID<s07AR-89U-11@gated-at.bofh.it>
In reply to#1452251
We should enable power domain once provided. Otherwise
we take risk of bus err as it's maybe in off state before
probing.

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

 drivers/mmc/host/sdhci-of-arasan.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
index e0f193f..e507e94 100644
--- a/drivers/mmc/host/sdhci-of-arasan.c
+++ b/drivers/mmc/host/sdhci-of-arasan.c
@@ -25,6 +25,8 @@
 #include <linux/of_device.h>
 #include <linux/phy/phy.h>
 #include <linux/regmap.h>
+#include <linux/pm_runtime.h>
+#include <linux/pm_opp.h>
 #include "sdhci-pltfm.h"
 
 #define SDHCI_ARASAN_CLK_CTRL_OFFSET	0x2c
@@ -515,6 +517,9 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
 		goto clk_dis_ahb;
 	}
 
+	pm_runtime_enable(host->dev);
+	pm_runtime_get_sync(host->dev);
+
 	sdhci_get_of_property(pdev);
 	pltfm_host->clk = clk_xin;
 
@@ -577,6 +582,8 @@ clk_dis_ahb:
 	clk_disable_unprepare(sdhci_arasan->clk_ahb);
 err_pltfm_free:
 	sdhci_pltfm_free(pdev);
+	pm_runtime_put(host->dev);
+	pm_runtime_disable(host->dev);
 	return ret;
 }
 
@@ -599,6 +606,9 @@ static int sdhci_arasan_remove(struct platform_device *pdev)
 
 	clk_disable_unprepare(clk_ahb);
 
+	pm_runtime_put(host->dev);
+	pm_runtime_disable(host->dev);
+
 	return ret;
 }
 
-- 
2.3.7

[toc] | [prev] | [next] | [standalone]


#1452350

FromUlf Hansson <ulf.hansson@linaro.org>
Date2016-07-29 11:30 +0200
Message-ID<s0chb-2Lh-21@gated-at.bofh.it>
In reply to#1452251
On 29 July 2016 at 06:14, Shawn Lin <shawn.lin@rock-chips.com> wrote:
>
> We need to enable the power domain manually while probing as the
> power policy will turn off the pd which is not referenced. Otherwise

I assume you are going to use the generic PM domain (genpd)?
If so, this statement isn't entirely correct.

As a matter of fact, the PM domain will be "powered on" once you have
registered your PM domain with genpd and when the device (dw_mmc etc)
gets attached to the domain. The attach occurs when the platform bus'
->probe() function get invoked for the device.

Genpd monitors each device within the domain. To allow it to "power
off", all devices in same domain needs to be runtime PM enabled and
runtime PM suspended.

Due to this, you should be able to deploy genpd support+an updated
DTB, without first having to deploying runtime PM support in the
related drivers. In other words, you should be able to work on these
things almost independently of each other.

> we may take risk of breaking kernel once Feng Xiao land the rockchip pd
> relate stuff. So, let's do it in advance.
>
> This pachset is based on the latest linux-next[1] which should contain
> the next branch of linux-mmc and dt stuff. It's ideal to pack these all
> into Ulf' tree with Heiko's ack for dts, Rob's ack for Doc and Jaehoon's
> ack for dw_mmc. But it's okay to be merged seperately.
>
> [1] git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
>
> Thanks.
>
>
>
> Shawn Lin (5):
>   Documentation: mmc: synopsys-dw-mshc: add power domain description
>   Documentation: mmc: sdhci-of-arasan: add power domain description

To me this isn't necessary to describe for each device. I think
Documentation/devicetree/bindings/power/power_domain.txt describes all
that is needed.

>   arm64: dts: rockchip: Provide power-domains for sd/sdio/emmc
>     controllers
>   mmc: dw_mmc: add power domain support
>   mmc: sdhci-of-arasan: add power domain support

I would rephrase these commit message headers, to something like
"Deploy runtime PM support", as that is actually what you intend to
do.

>
>  Documentation/devicetree/bindings/mmc/arasan,sdhci.txt     |  1 +
>  Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt |  2 ++
>  arch/arm64/boot/dts/rockchip/rk3399.dtsi                   |  3 +++
>  drivers/mmc/host/dw_mmc.c                                  | 11 +++++++++++
>  drivers/mmc/host/sdhci-of-arasan.c                         | 10 ++++++++++
>  5 files changed, 27 insertions(+)
>
> --
> 2.3.7
>
>

Kind regards
Uffe

[toc] | [prev] | [next] | [standalone]


#1452951

FromShawn Lin <shawn.lin@rock-chips.com>
Date2016-08-01 05:30 +0200
Message-ID<s1c5s-N2-11@gated-at.bofh.it>
In reply to#1452350
在 2016/7/29 17:21, Ulf Hansson 写道:
> On 29 July 2016 at 06:14, Shawn Lin <shawn.lin@rock-chips.com> wrote:
>>
>> We need to enable the power domain manually while probing as the
>> power policy will turn off the pd which is not referenced. Otherwise
>
> I assume you are going to use the generic PM domain (genpd)?

yes.

> If so, this statement isn't entirely correct.
>
> As a matter of fact, the PM domain will be "powered on" once you have
> registered your PM domain with genpd and when the device (dw_mmc etc)
> gets attached to the domain. The attach occurs when the platform bus'
> ->probe() function get invoked for the device.
>
> Genpd monitors each device within the domain. To allow it to "power
> off", all devices in same domain needs to be runtime PM enabled and
> runtime PM suspended.

I will check this with my PM guys as I have limited knowledge about
PM stuff. Thanks for these great info.


So, if my real intention is to just enable genpd to make sure it will
be in "power on " stat, I just need to update my DTS/DTB. That would be
great.:)

>
> Due to this, you should be able to deploy genpd support+an updated
> DTB, without first having to deploying runtime PM support in the
> related drivers. In other words, you should be able to work on these
> things almost independently of each other.

sure.

>
>> we may take risk of breaking kernel once Feng Xiao land the rockchip pd
>> relate stuff. So, let's do it in advance.
>>
>> This pachset is based on the latest linux-next[1] which should contain
>> the next branch of linux-mmc and dt stuff. It's ideal to pack these all
>> into Ulf' tree with Heiko's ack for dts, Rob's ack for Doc and Jaehoon's
>> ack for dw_mmc. But it's okay to be merged seperately.
>>
>> [1] git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
>>
>> Thanks.
>>
>>
>>
>> Shawn Lin (5):
>>   Documentation: mmc: synopsys-dw-mshc: add power domain description
>>   Documentation: mmc: sdhci-of-arasan: add power domain description
>
> To me this isn't necessary to describe for each device. I think
> Documentation/devicetree/bindings/power/power_domain.txt describes all
> that is needed.
>
>>   arm64: dts: rockchip: Provide power-domains for sd/sdio/emmc
>>     controllers
>>   mmc: dw_mmc: add power domain support
>>   mmc: sdhci-of-arasan: add power domain support
>
> I would rephrase these commit message headers, to something like
> "Deploy runtime PM support", as that is actually what you intend to
> do.
>
>>
>>  Documentation/devicetree/bindings/mmc/arasan,sdhci.txt     |  1 +
>>  Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt |  2 ++
>>  arch/arm64/boot/dts/rockchip/rk3399.dtsi                   |  3 +++
>>  drivers/mmc/host/dw_mmc.c                                  | 11 +++++++++++
>>  drivers/mmc/host/sdhci-of-arasan.c                         | 10 ++++++++++
>>  5 files changed, 27 insertions(+)
>>
>> --
>> 2.3.7
>>
>>
>
> Kind regards
> Uffe
>
>
>


-- 
Best Regards
Shawn Lin

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web