All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@codeaurora.org>
To: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>,
	Nicolas Ferre <nicolas.ferre@microchip.com>,
	linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/2] clk: at91: Add sama5d2 suspend/resume
Date: Thu, 1 Jun 2017 00:46:44 -0700	[thread overview]
Message-ID: <20170601074644.GW20170@codeaurora.org> (raw)
In-Reply-To: <20170512142531.11274-2-alexandre.belloni@free-electrons.com>

On 05/12, Alexandre Belloni wrote:
> On sama5d2, VDD core maybe be cut while in suspend. This means registers
> will be lost. Ensure they are saved and restored properly.
> 
> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
> Changes in v4:
>  - only save and restore PCR for used ids
> 
>  drivers/clk/at91/clk-generated.c  |   3 +
>  drivers/clk/at91/clk-peripheral.c |   4 +-
>  drivers/clk/at91/pmc.c            | 129 ++++++++++++++++++++++++++++++++++++++
>  drivers/clk/at91/pmc.h            |   2 +
>  4 files changed, 137 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/at91/clk-generated.c b/drivers/clk/at91/clk-generated.c
> index 70474bd97a10..f0b7ae904ce2 100644
> --- a/drivers/clk/at91/clk-generated.c
> +++ b/drivers/clk/at91/clk-generated.c
> @@ -266,6 +266,9 @@ at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock,
>  	if (ret) {
>  		kfree(gck);
>  		hw = ERR_PTR(ret);
> +	} else {
> +		pmc_register_id(id);
> +	}
>  
>  	return hw;
>  }
> diff --git a/drivers/clk/at91/clk-peripheral.c b/drivers/clk/at91/clk-peripheral.c
> index dc29fd979d3f..770118369230 100644
> --- a/drivers/clk/at91/clk-peripheral.c
> +++ b/drivers/clk/at91/clk-peripheral.c
> @@ -367,8 +367,10 @@ at91_clk_register_sam9x5_peripheral(struct regmap *regmap, spinlock_t *lock,
>  	if (ret) {
>  		kfree(periph);
>  		hw = ERR_PTR(ret);
> -	} else
> +	} else {
>  		clk_sam9x5_peripheral_autodiv(periph);
> +		pmc_register_id(id);
> +	}
>  
>  	return hw;
>  }
> diff --git a/drivers/clk/at91/pmc.c b/drivers/clk/at91/pmc.c
> index 526df5ba042d..a4cd9f35160e 100644
> --- a/drivers/clk/at91/pmc.c
> +++ b/drivers/clk/at91/pmc.c
> @@ -13,12 +13,16 @@
>  #include <linux/clk/at91_pmc.h>
>  #include <linux/of.h>
>  #include <linux/mfd/syscon.h>
> +#include <linux/platform_device.h>
>  #include <linux/regmap.h>
> +#include <linux/syscore_ops.h>
>  
>  #include <asm/proc-fns.h>
>  
>  #include "pmc.h"
>  
> +#define PMC_MAX_IDS 128
> +
>  int of_at91_get_clk_range(struct device_node *np, const char *propname,
>  			  struct clk_range *range)
>  {
> @@ -41,3 +45,128 @@ int of_at91_get_clk_range(struct device_node *np, const char *propname,
>  	return 0;
>  }
>  EXPORT_SYMBOL_GPL(of_at91_get_clk_range);
> +
> +static u8 registered_ids[PMC_MAX_IDS];
> +
> +void pmc_register_id(u8 id)
> +{

Shouldn't this also be inside CONFIG_PM? And then
pmc_register_id() is a nop function when CONFIG_PM=n?

> +	int i;
> +
> +	for (i = 0; i < PMC_MAX_IDS; i++) {
> +		if (registered_ids[i] == 0) {
> +			registered_ids[i] = id;
> +			break;
> +		}
> +		if (registered_ids[i] == id)
> +			break;
> +	}
> +}

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

  reply	other threads:[~2017-06-01  7:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-12 14:25 [PATCH v4 1/2] clk: at91: fix clk-generated parenting Alexandre Belloni
2017-05-12 14:25 ` [PATCH v4 2/2] clk: at91: Add sama5d2 suspend/resume Alexandre Belloni
2017-06-01  7:46   ` Stephen Boyd [this message]
2017-06-05 14:25     ` Alexandre Belloni
2017-05-19  1:33 ` [PATCH v4 1/2] clk: at91: fix clk-generated parenting Stephen Boyd
2017-05-30  9:50   ` Alexandre Belloni
2017-06-01  7:47     ` Stephen Boyd

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=20170601074644.GW20170@codeaurora.org \
    --to=sboyd@codeaurora.org \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=boris.brezillon@free-electrons.com \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nicolas.ferre@microchip.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.