All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Yilu Mao <ylmao@marvell.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
	"Baohua.Song@csr.com" <Baohua.Song@csr.com>,
	"santosh.shilimkar@ti.com" <santosh.shilimkar@ti.com>,
	"robherring2@gmail.com" <robherring2@gmail.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] ARM: cache-l2x0.c: save aux ctrl for resume in case that l2x0 is enabled before init
Date: Tue, 24 Apr 2012 09:28:10 +0100	[thread overview]
Message-ID: <20120424082810.GA9367@arm.com> (raw)
In-Reply-To: <1335235280-25148-1-git-send-email-ylmao@marvell.com>

On Tue, Apr 24, 2012 at 03:41:20AM +0100, Yilu Mao wrote:
> If l2x0 controller has been enabled when calling l2x0_init, the aux ctrl
> register will not be saved in l2x0_saved_regs. Therefore we can not use
> l2x0_saved_regs.aux_ctrl for resume later. This patch fixed the problem
> by saving aux ctrl in l2x0_saved_regs just after it's being read from
> the register.
> 
> Signed-off-by: Yilu Mao <ylmao@marvell.com>
> ---
>  arch/arm/mm/cache-l2x0.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
> index a53fd2a..3034b06 100644
> --- a/arch/arm/mm/cache-l2x0.c
> +++ b/arch/arm/mm/cache-l2x0.c
> @@ -320,6 +320,12 @@ void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
>  	cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID);
>  	aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL);
>  
> +	/* In case l2x controller is enabled, the aux ctrl register
> +	 * can't be set. So the original value should be stored in
> +	 * the l2x0_saved_regs for restoring when resume.
> +	 */

Even better like this ;)

+	/*
+	 * In case l2x controller is enabled, the aux ctrl register
+	 * can't be set. So the original value should be stored in
+	 * the l2x0_saved_regs for restoring when resume.
+	 */


> +	l2x0_saved_regs.aux_ctrl = aux;
> +
>  	aux &= aux_mask;
>  	aux |= aux_val;

I think that's the wrong place to save it, it should be after the
masking was done.

Anyway, if we cannot write this register in l2x0_init() because the L2
was enabled, do we expect the L2 to be disabled during resume?

-- 
Catalin

WARNING: multiple messages have this Message-ID (diff)
From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: cache-l2x0.c: save aux ctrl for resume in case that l2x0 is enabled before init
Date: Tue, 24 Apr 2012 09:28:10 +0100	[thread overview]
Message-ID: <20120424082810.GA9367@arm.com> (raw)
In-Reply-To: <1335235280-25148-1-git-send-email-ylmao@marvell.com>

On Tue, Apr 24, 2012 at 03:41:20AM +0100, Yilu Mao wrote:
> If l2x0 controller has been enabled when calling l2x0_init, the aux ctrl
> register will not be saved in l2x0_saved_regs. Therefore we can not use
> l2x0_saved_regs.aux_ctrl for resume later. This patch fixed the problem
> by saving aux ctrl in l2x0_saved_regs just after it's being read from
> the register.
> 
> Signed-off-by: Yilu Mao <ylmao@marvell.com>
> ---
>  arch/arm/mm/cache-l2x0.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
> index a53fd2a..3034b06 100644
> --- a/arch/arm/mm/cache-l2x0.c
> +++ b/arch/arm/mm/cache-l2x0.c
> @@ -320,6 +320,12 @@ void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
>  	cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID);
>  	aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL);
>  
> +	/* In case l2x controller is enabled, the aux ctrl register
> +	 * can't be set. So the original value should be stored in
> +	 * the l2x0_saved_regs for restoring when resume.
> +	 */

Even better like this ;)

+	/*
+	 * In case l2x controller is enabled, the aux ctrl register
+	 * can't be set. So the original value should be stored in
+	 * the l2x0_saved_regs for restoring when resume.
+	 */


> +	l2x0_saved_regs.aux_ctrl = aux;
> +
>  	aux &= aux_mask;
>  	aux |= aux_val;

I think that's the wrong place to save it, it should be after the
masking was done.

Anyway, if we cannot write this register in l2x0_init() because the L2
was enabled, do we expect the L2 to be disabled during resume?

-- 
Catalin

  reply	other threads:[~2012-04-24  8:28 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-24  2:41 [PATCH] ARM: cache-l2x0.c: save aux ctrl for resume in case that l2x0 is enabled before init Yilu Mao
2012-04-24  2:41 ` Yilu Mao
2012-04-24  8:28 ` Catalin Marinas [this message]
2012-04-24  8:28   ` Catalin Marinas
2012-04-26  5:00   ` Yilu Mao
2012-04-26  5:00     ` Yilu Mao
2012-04-26  8:35     ` Catalin Marinas
2012-04-26  8:35       ` Catalin Marinas
2012-04-26  9:25       ` Yilu Mao
2012-04-26  9:25         ` Yilu Mao
2012-04-26  9:44         ` Catalin Marinas
2012-04-26  9:44           ` Catalin Marinas
2012-04-26 10:09           ` Yilu Mao
2012-04-26 10:09             ` Yilu Mao
2012-04-26 10:28             ` Catalin Marinas
2012-04-26 10:28               ` Catalin Marinas
2012-04-26 10:35               ` Yilu Mao
2012-04-26 10:35                 ` Yilu Mao
2012-04-26 10:38                 ` Catalin Marinas
2012-04-26 10:38                   ` Catalin Marinas
2012-04-26 10:48                   ` Yilu Mao
2012-04-26 10:48                     ` Yilu Mao
2012-04-26 10:56                     ` Catalin Marinas
2012-04-26 10:56                       ` Catalin Marinas
2012-04-26 11:03                       ` Yilu Mao
2012-04-26 11:03                         ` Yilu Mao
2012-04-28  6:24                         ` Yilu Mao
2012-04-28  6:24                           ` Yilu Mao
2012-04-30 12:11                           ` Catalin Marinas
2012-04-30 12:11                             ` Catalin Marinas
2012-04-30 13:22                             ` Yilu Mao
2012-04-30 13:22                               ` Yilu Mao
2012-04-26  5:09   ` Yilu Mao
2012-04-26  5:09     ` Yilu Mao
  -- strict thread matches above, loose matches on Subject: below --
2012-04-23  7:43 Yilu Mao
2012-04-23  7:43 ` Yilu Mao
2012-04-23 11:19 ` Sergei Shtylyov
2012-04-23 11:19   ` Sergei Shtylyov

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=20120424082810.GA9367@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=Baohua.Song@csr.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=robherring2@gmail.com \
    --cc=santosh.shilimkar@ti.com \
    --cc=ylmao@marvell.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.