[PATCH] PCI: rockchip: control vpcie0v9 for system PM

Bjorn Helgaas helgaas at kernel.org
Tue May 23 12:30:32 PDT 2017


On Tue, May 02, 2017 at 03:31:23PM +0800, Shawn Lin wrote:
> vpcie0v9 is used for PHY, so we could disable it as
> we don't need PHY to work then in S3 if folks assign it
> DT. But we should note that there is a side effect that
> we could not support beacon wakeup if we disable vpcie0v9
> for aggressive power-saving.
> 
> Cc: Brian Norris <briannorris at chromium.org>
> Cc: Jeffy Chen <jeffy.chen at rock-chips.com>
> Signed-off-by: Shawn Lin <shawn.lin at rock-chips.com>

Applied to pci/host-rockchip for v4.13, thanks!

> ---
> 
>  drivers/pci/host/pcie-rockchip.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c
> index 0e020b6..c8ca796 100644
> --- a/drivers/pci/host/pcie-rockchip.c
> +++ b/drivers/pci/host/pcie-rockchip.c
> @@ -1251,6 +1251,9 @@ static int __maybe_unused rockchip_pcie_suspend_noirq(struct device *dev)
>  	clk_disable_unprepare(rockchip->aclk_perf_pcie);
>  	clk_disable_unprepare(rockchip->aclk_pcie);
>  
> +	if (!IS_ERR(rockchip->vpcie0v9))
> +		regulator_disable(rockchip->vpcie0v9);
> +
>  	return ret;
>  }
>  
> @@ -1259,6 +1262,14 @@ static int __maybe_unused rockchip_pcie_resume_noirq(struct device *dev)
>  	struct rockchip_pcie *rockchip = dev_get_drvdata(dev);
>  	int err;
>  
> +	if (!IS_ERR(rockchip->vpcie0v9)) {
> +		err = regulator_enable(rockchip->vpcie0v9);
> +		if (err) {
> +			dev_err(dev, "fail to enable vpcie0v9 regulator\n");
> +			return err;
> +		}
> +	}
> +
>  	clk_prepare_enable(rockchip->clk_pcie_pm);
>  	clk_prepare_enable(rockchip->hclk_pcie);
>  	clk_prepare_enable(rockchip->aclk_perf_pcie);
> -- 
> 1.9.1
> 
> 



More information about the Linux-rockchip mailing list