All of lore.kernel.org
 help / color / mirror / Atom feed
From: ylmao@marvell.com (Yilu Mao)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4] ARM: cache-l2x0.c: save aux ctrl for resume in case l2x0 is enabled before init
Date: Wed, 2 May 2012 09:17:45 +0800	[thread overview]
Message-ID: <4FA08B39.60300@marvell.com> (raw)
In-Reply-To: <CAHkRjk51pATYdhKhmBb9sWywN+0BgeQLpW9bMfTkRgf_09wydg@mail.gmail.com>

On 04/30/2012 09:34 PM, Catalin Marinas wrote:
> On 30 April 2012 14:16, Yilu Mao<ylmao@marvell.com>  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.
>> And in case some bits of aux ctrl register are reserved, re-read and
>> save it properly after set it if l2x0 is disabled before init.
>>
>> Change-Id: I54f3002274ffe9cdc667dba81e36e08f2e121467
>> Signed-off-by: Yilu Mao<ylmao@marvell.com>
>> ---
>>   arch/arm/mm/cache-l2x0.c |    9 +++++++++
>>   1 files changed, 9 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
>> index a53fd2a..9893e58 100644
>> --- a/arch/arm/mm/cache-l2x0.c
>> +++ b/arch/arm/mm/cache-l2x0.c
>> @@ -320,6 +320,13 @@ 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.
>> +        */
>> +       l2x0_saved_regs.aux_ctrl = aux;
>
> Why not move this
>
>> +
>>         aux&= aux_mask;
>>         aux |= aux_val;
>>
>> @@ -364,6 +371,8 @@ void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
>>                 /* l2x0 controller is disabled */
>>                 writel_relaxed(aux, l2x0_base + L2X0_AUX_CTRL);
>>
>> +               /* Re-read it in case some bits are reserved. */
>> +               aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL);
>
> and this
>
>>                 l2x0_saved_regs.aux_ctrl = aux;
>>
>>                 l2x0_inv_all();
>
> somewhere after the if block and we only read the aux once. The
> comment may no longer make sense though.
>
Hi Catalin,

I want to make it clear before I provide a new patch. :)
We can't only read once because we must read it before handle the 
aux_val and aux_mask arguments.
Do you still want the "l2x0_saved_regs.aux_ctrl = aux;" operation only 
located after the "if"?
If so, I will provide a patch for it.

-- 
Thanks.

Best Wishes,
Yilu Mao

WARNING: multiple messages have this Message-ID (diff)
From: Yilu Mao <ylmao@marvell.com>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: Lu Mao <ylmao@marvell.com>,
	"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 v4] ARM: cache-l2x0.c: save aux ctrl for resume in case l2x0 is enabled before init
Date: Wed, 2 May 2012 09:17:45 +0800	[thread overview]
Message-ID: <4FA08B39.60300@marvell.com> (raw)
In-Reply-To: <CAHkRjk51pATYdhKhmBb9sWywN+0BgeQLpW9bMfTkRgf_09wydg@mail.gmail.com>

On 04/30/2012 09:34 PM, Catalin Marinas wrote:
> On 30 April 2012 14:16, Yilu Mao<ylmao@marvell.com>  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.
>> And in case some bits of aux ctrl register are reserved, re-read and
>> save it properly after set it if l2x0 is disabled before init.
>>
>> Change-Id: I54f3002274ffe9cdc667dba81e36e08f2e121467
>> Signed-off-by: Yilu Mao<ylmao@marvell.com>
>> ---
>>   arch/arm/mm/cache-l2x0.c |    9 +++++++++
>>   1 files changed, 9 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
>> index a53fd2a..9893e58 100644
>> --- a/arch/arm/mm/cache-l2x0.c
>> +++ b/arch/arm/mm/cache-l2x0.c
>> @@ -320,6 +320,13 @@ 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.
>> +        */
>> +       l2x0_saved_regs.aux_ctrl = aux;
>
> Why not move this
>
>> +
>>         aux&= aux_mask;
>>         aux |= aux_val;
>>
>> @@ -364,6 +371,8 @@ void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
>>                 /* l2x0 controller is disabled */
>>                 writel_relaxed(aux, l2x0_base + L2X0_AUX_CTRL);
>>
>> +               /* Re-read it in case some bits are reserved. */
>> +               aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL);
>
> and this
>
>>                 l2x0_saved_regs.aux_ctrl = aux;
>>
>>                 l2x0_inv_all();
>
> somewhere after the if block and we only read the aux once. The
> comment may no longer make sense though.
>
Hi Catalin,

I want to make it clear before I provide a new patch. :)
We can't only read once because we must read it before handle the 
aux_val and aux_mask arguments.
Do you still want the "l2x0_saved_regs.aux_ctrl = aux;" operation only 
located after the "if"?
If so, I will provide a patch for it.

-- 
Thanks.

Best Wishes,
Yilu Mao

  reply	other threads:[~2012-05-02  1:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-30 13:16 [PATCH v4] ARM: cache-l2x0.c: save aux ctrl for resume in case l2x0 is enabled before init Yilu Mao
2012-04-30 13:16 ` Yilu Mao
2012-04-30 13:34 ` Catalin Marinas
2012-04-30 13:34   ` Catalin Marinas
2012-05-02  1:17   ` Yilu Mao [this message]
2012-05-02  1:17     ` Yilu Mao
2012-05-02 10:05     ` Catalin Marinas
2012-05-02 10:05       ` Catalin Marinas

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=4FA08B39.60300@marvell.com \
    --to=ylmao@marvell.com \
    --cc=linux-arm-kernel@lists.infradead.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 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.