From: Tejun Heo <tj@kernel.org>
To: Richard Zhu <richard.zhuhongxing@gmail.com>
Cc: shawn.guo@linaro.org, linux-arm-kernel@lists.infradead.org,
jgarzik@pobox.com, linux-ide@vger.kernel.org,
Richard Zhu <r65037@freescale.com>
Subject: Re: [v1] ahci: imx: setup power saving methods
Date: Fri, 27 Sep 2013 09:14:41 -0400 [thread overview]
Message-ID: <20130927131441.GA3205@htj.dyndns.org> (raw)
In-Reply-To: <1380269265-10821-2-git-send-email-Hong-Xing.Zhu@freescale.com>
Hello,
On Fri, Sep 27, 2013 at 04:07:45PM +0800, Richard Zhu wrote:
> +config AHCI_IMX_PHY_POWER_DOWN_MODE
> + bool "Power saving mode when there is no SATA DEV detected on the port"
> + depends on AHCI_IMX
> + help
> + This option enable the power down mode of the imx ahci when there is
> + no sata device detected on the port, the sata port wouldn't be
> + functional anymore except one system power down, and power up again.
The last part of the sentence is a bit difficult to understand. Also,
I'm not sure whether making this a build option is a good idea.
Please read on.
> @@ -105,6 +110,36 @@ static int imx6q_sata_init(struct device *dev, void __iomem *mmio)
> reg_val = clk_get_rate(imxpriv->ahb_clk) / 1000;
> writel(reg_val, mmio + HOST_TIMER1MS);
>
> + if (IS_ENABLED(CONFIG_AHCI_IMX_PHY_POWER_DOWN_MODE)) {
> + /*
> + * In order to save power consumption, enter PDDQ mode
> + * when there is no device detected on the port
> + */
> + do {
> + sstatus = readl(mmio + 0x100 + PORT_SCR_STAT);
> + if ((sstatus & 0xF) == 0)
> + usleep_range(1000, 2000);
> + else
> + break;
> +
> + if (iterations == 0) {
> + pr_info("No sata disk.\n");
> + reg_val = readl(mmio + PORT_PHY_CTL);
> + writel(reg_val | PORT_PHY_CTL_PDDQ_LOC,
> + mmio + PORT_PHY_CTL);
> + regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13,
> + IMX6Q_GPR13_SATA_MPLL_CLK_EN,
> + !IMX6Q_GPR13_SATA_MPLL_CLK_EN);
> + clk_disable_unprepare(imxpriv->sata_ref_clk);
> + imxpriv->no_device = 1;
> +
> + return 0;
> + }
> + } while (iterations-- > 0);
> + } else {
> + imxpriv->no_device = 0;
> + }
This looks like it really should be part of lpm framework. Allow the
ahci_platform driver to override set_lpm() and turning off PHY if
MIN_POWER && !dev should work, right?
Thanks.
--
tejun
next prev parent reply other threads:[~2013-09-27 13:14 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-27 8:07 [PATCH v1 0/1] ahci: imx: setup power saving methods Richard Zhu
2013-09-27 8:07 ` [v1] " Richard Zhu
2013-09-27 13:14 ` Tejun Heo [this message]
2013-09-29 7:35 ` Shawn Guo
[not found] ` <1vugbd691bjfibh5crdihlrh.1380440262216@email.android.com>
2013-09-29 7:48 ` 回复:Re: " Shawn Guo
2013-09-29 12:51 ` Tejun Heo
2013-10-08 7:02 ` Zhu Richard-R65037
2013-09-29 7:33 ` Shawn Guo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130927131441.GA3205@htj.dyndns.org \
--to=tj@kernel.org \
--cc=jgarzik@pobox.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-ide@vger.kernel.org \
--cc=r65037@freescale.com \
--cc=richard.zhuhongxing@gmail.com \
--cc=shawn.guo@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).