All of lore.kernel.org
 help / color / mirror / Atom feed
From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: "Bedia, Vaibhav" <vaibhav.bedia@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"paul@pwsan.com" <paul@pwsan.com>,
	"Cousson, Benoit" <b-cousson@ti.com>,
	"tony@atomide.com" <tony@atomide.com>
Subject: Re: [PATCH 15/15] ARM: OMAP2+: AM33XX: Basic suspend resume support
Date: Tue, 6 Nov 2012 06:38:36 -0600	[thread overview]
Message-ID: <509904CC.8050708@ti.com> (raw)
In-Reply-To: <B5906170F1614E41A8A28DE3B8D121433EC04FBA@DBDE01.ent.ti.com>

On Tuesday 06 November 2012 06:29 AM, Bedia, Vaibhav wrote:
> Hi Santosh, Kevin
>
> On Tue, Nov 06, 2012 at 03:22:16, Shilimkar, Santosh wrote:
> [...]
>
>>>> +
>>>> +/*
>>>> + * This a subset of registers defined in drivers/memory/emif.h
>>>> + * Move that to include/linux/?
>>>> + */
>>>
>>> I'd probably suggest just moving the register definitions you
>>> need into <plat/emif_plat.h> so they can be shared with the driver.
>>>
>>> Also, the EMIF stuff would benefit greatly from using symbolic defines
>>> for the values being written.  Probably having those in
>>> <plat/emif_plat.h> would also help out here.
>>>
>>> Or, maybe the EMIF driver can provide some self-contained stubs that can
>>> be copied to OCP RAM for the functionality needed here?
>>>
>>> Santosh, what do you think of that?
>>>
>> Thats what I mentioned in my comment. I also don't know why such a bad
>> hardware choice was made when we have perfectly working EMIF IP across
>> low power states. Even the self refresh control is managed inside
>> hardware upon idle.  My guess is DDR self-refresh might be the reason
>> to use OCMC RAM.
>>
>> In either case, Keeping EMIF changes separate as part of EMIF
>> driver/platform code is right way to go about it. May be the
>> disable_selfrefresh() might need to kept in assembly files since it
>> needs to be running from SRAM but rest need not be part of
>> PM code.
>>
>
>
> In the suspend path we do lot of I/O manipulations to lower final power
> number which must be done after the external memory has gone into
> self-refresh. So, these steps will have to be done from code in OCMC RAM.
>
Only the DDR IO needs to be done after memory enters into self refresh.
Rest of the IOs can be handled and moved to low power modes before DDR
being in self refresh, No ?

> Other than saving the EMIF configuration the other thing that we do during
> suspend from assembly is to put the PLLs in bypass. We could possibly move
> the DISP PLL bypass to C code. MPU PLL is another candidate but this might
> add in more delays in the suspend and abort sequence (I don't have any
> delay numbers to justify this right now)
>
So DPLLS doesn't support low power bypass mode which should take
care of itself on clock gating ? Are the DPLL IPs different than
what they are on OMAP ?

> The resume path undoes the I/O manipulations and then restores the EMIF
> configuration all of which I think is necessary before we can jump back to
> external memory.
>
As I memtioned above, you should limit these IOs to only DDR IOs.

> So, I think we'll have just the EMIF context save and possibly the PLL
> bypass for DISP PLL during suspend that we can move out of assembly.
>
EMIF context save also can be done in advance. Restore is what you need
to take care in early resume before bringing out DDR out of self
refresh.

> Coming to point of sharing the EMIF register definitions, with the recent
> changes to move around the header files out of plat-omap, is it ok to
> add in the required offsets and related bit-field definitions from
> the EMIF driver to plat-omap?
>
We can have that in linux/include/* as well if the register
defines can be shared.

Regards
Santosh

WARNING: multiple messages have this Message-ID (diff)
From: santosh.shilimkar@ti.com (Santosh Shilimkar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 15/15] ARM: OMAP2+: AM33XX: Basic suspend resume support
Date: Tue, 6 Nov 2012 06:38:36 -0600	[thread overview]
Message-ID: <509904CC.8050708@ti.com> (raw)
In-Reply-To: <B5906170F1614E41A8A28DE3B8D121433EC04FBA@DBDE01.ent.ti.com>

On Tuesday 06 November 2012 06:29 AM, Bedia, Vaibhav wrote:
> Hi Santosh, Kevin
>
> On Tue, Nov 06, 2012 at 03:22:16, Shilimkar, Santosh wrote:
> [...]
>
>>>> +
>>>> +/*
>>>> + * This a subset of registers defined in drivers/memory/emif.h
>>>> + * Move that to include/linux/?
>>>> + */
>>>
>>> I'd probably suggest just moving the register definitions you
>>> need into <plat/emif_plat.h> so they can be shared with the driver.
>>>
>>> Also, the EMIF stuff would benefit greatly from using symbolic defines
>>> for the values being written.  Probably having those in
>>> <plat/emif_plat.h> would also help out here.
>>>
>>> Or, maybe the EMIF driver can provide some self-contained stubs that can
>>> be copied to OCP RAM for the functionality needed here?
>>>
>>> Santosh, what do you think of that?
>>>
>> Thats what I mentioned in my comment. I also don't know why such a bad
>> hardware choice was made when we have perfectly working EMIF IP across
>> low power states. Even the self refresh control is managed inside
>> hardware upon idle.  My guess is DDR self-refresh might be the reason
>> to use OCMC RAM.
>>
>> In either case, Keeping EMIF changes separate as part of EMIF
>> driver/platform code is right way to go about it. May be the
>> disable_selfrefresh() might need to kept in assembly files since it
>> needs to be running from SRAM but rest need not be part of
>> PM code.
>>
>
>
> In the suspend path we do lot of I/O manipulations to lower final power
> number which must be done after the external memory has gone into
> self-refresh. So, these steps will have to be done from code in OCMC RAM.
>
Only the DDR IO needs to be done after memory enters into self refresh.
Rest of the IOs can be handled and moved to low power modes before DDR
being in self refresh, No ?

> Other than saving the EMIF configuration the other thing that we do during
> suspend from assembly is to put the PLLs in bypass. We could possibly move
> the DISP PLL bypass to C code. MPU PLL is another candidate but this might
> add in more delays in the suspend and abort sequence (I don't have any
> delay numbers to justify this right now)
>
So DPLLS doesn't support low power bypass mode which should take
care of itself on clock gating ? Are the DPLL IPs different than
what they are on OMAP ?

> The resume path undoes the I/O manipulations and then restores the EMIF
> configuration all of which I think is necessary before we can jump back to
> external memory.
>
As I memtioned above, you should limit these IOs to only DDR IOs.

> So, I think we'll have just the EMIF context save and possibly the PLL
> bypass for DISP PLL during suspend that we can move out of assembly.
>
EMIF context save also can be done in advance. Restore is what you need
to take care in early resume before bringing out DDR out of self
refresh.

> Coming to point of sharing the EMIF register definitions, with the recent
> changes to move around the header files out of plat-omap, is it ok to
> add in the required offsets and related bit-field definitions from
> the EMIF driver to plat-omap?
>
We can have that in linux/include/* as well if the register
defines can be shared.

Regards
Santosh

  reply	other threads:[~2012-11-06 12:38 UTC|newest]

Thread overview: 218+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-02 12:32 [RFC 00/15] Add basic suspend-resume support for AM33XX Vaibhav Bedia
2012-11-02 12:32 ` Vaibhav Bedia
2012-11-02 12:32 ` [PATCH 01/15] ARM: OMAP2+: mailbox: Add an API for flushing the FIFO Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-02 19:00   ` Tony Lindgren
2012-11-02 19:00     ` Tony Lindgren
2012-11-03  8:24     ` Bedia, Vaibhav
2012-11-03  8:24       ` Bedia, Vaibhav
2012-11-03 16:03   ` Santosh Shilimkar
2012-11-03 16:03     ` Santosh Shilimkar
2012-11-04 15:26     ` Bedia, Vaibhav
2012-11-04 15:26       ` Bedia, Vaibhav
2012-11-05 14:59       ` Santosh Shilimkar
2012-11-05 14:59         ` Santosh Shilimkar
2012-11-02 12:32 ` [PATCH 02/15] ARM: OMAP2+: mailbox: Add support for AM33XX Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03  0:14   ` Russ Dill
2012-11-03  0:14     ` Russ Dill
2012-11-03  8:39     ` Bedia, Vaibhav
2012-11-03  8:39       ` Bedia, Vaibhav
2012-11-03 13:48     ` Bedia, Vaibhav
2012-11-03 13:48       ` Bedia, Vaibhav
2012-11-03 16:10   ` Santosh Shilimkar
2012-11-03 16:10     ` Santosh Shilimkar
2012-11-04 15:26     ` Bedia, Vaibhav
2012-11-04 15:26       ` Bedia, Vaibhav
2012-11-05 15:00       ` Santosh Shilimkar
2012-11-05 15:00         ` Santosh Shilimkar
2012-11-02 12:32 ` [PATCH 03/15] ARM: OMAP: mailbox: Convert to device_initcall Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03 16:12   ` Santosh Shilimkar
2012-11-03 16:12     ` Santosh Shilimkar
2012-11-02 12:32 ` [PATCH 04/15] ARM: OMAP2+: hwmod: Update the reset API for AM33XX Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-05  6:58   ` Vaibhav Hiremath
2012-11-05  6:58     ` Vaibhav Hiremath
2012-11-05 17:57     ` Bedia, Vaibhav
2012-11-05 17:57       ` Bedia, Vaibhav
2012-11-06  6:06       ` Hiremath, Vaibhav
2012-11-06  6:06         ` Hiremath, Vaibhav
2012-11-06  7:19         ` Bedia, Vaibhav
2012-11-06  7:19           ` Bedia, Vaibhav
2012-11-02 12:32 ` [PATCH 05/15] ARM: OMAP2+: AM33XX: Update WKUP_M3 hwmod entry for reset status Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03 16:15   ` Santosh Shilimkar
2012-11-03 16:15     ` Santosh Shilimkar
2012-11-04 15:26     ` Bedia, Vaibhav
2012-11-04 15:26       ` Bedia, Vaibhav
2012-11-05  6:59   ` Vaibhav Hiremath
2012-11-05  6:59     ` Vaibhav Hiremath
2012-11-02 12:32 ` [PATCH 06/15] ARM: OMAP2+: hwmod: Enable OCMCRAM registration in AM33XX Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03 16:16   ` Santosh Shilimkar
2012-11-03 16:16     ` Santosh Shilimkar
2012-11-04 15:26     ` Bedia, Vaibhav
2012-11-04 15:26       ` Bedia, Vaibhav
2012-11-05  7:23   ` Vaibhav Hiremath
2012-11-05  7:23     ` Vaibhav Hiremath
2012-11-05 17:57     ` Bedia, Vaibhav
2012-11-05 17:57       ` Bedia, Vaibhav
2012-11-06  6:07       ` Hiremath, Vaibhav
2012-11-06  6:07         ` Hiremath, Vaibhav
2012-11-02 12:32 ` [PATCH 07/15] ARM: OMAP2+: hwmod: Update the hwmod data for TPTCs " Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-05  7:19   ` Vaibhav Hiremath
2012-11-05  7:19     ` Vaibhav Hiremath
2012-11-02 12:32 ` [PATCH 08/15] ARM: OMAP2+: hwmod: Fix the omap_hwmod_addr_space for CPGMAC0 Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03 16:18   ` Santosh Shilimkar
2012-11-03 16:18     ` Santosh Shilimkar
2012-11-04 15:26     ` Bedia, Vaibhav
2012-11-04 15:26       ` Bedia, Vaibhav
2012-11-05  9:10     ` Bedia, Vaibhav
2012-11-05  9:10       ` Bedia, Vaibhav
2012-11-06  9:29       ` Vaibhav Hiremath
2012-11-06  9:29         ` Vaibhav Hiremath
2012-11-06 10:09         ` Bedia, Vaibhav
2012-11-06 10:09           ` Bedia, Vaibhav
2012-11-06 13:08           ` Hiremath, Vaibhav
2012-11-06 13:08             ` Hiremath, Vaibhav
2012-11-06 13:46             ` Bedia, Vaibhav
2012-11-06 13:46               ` Bedia, Vaibhav
2012-11-06 13:50               ` Benoit Cousson
2012-11-06 13:50                 ` Benoit Cousson
2012-11-06 13:56                 ` Bedia, Vaibhav
2012-11-06 13:56                   ` Bedia, Vaibhav
2012-11-02 12:32 ` [PATCH 09/15] ARM: OMAP: AM33XX: Remove unnecessary include and use __ASSEMBLER__ macros Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03 16:29   ` Santosh Shilimkar
2012-11-03 16:29     ` Santosh Shilimkar
2012-11-04 15:26     ` Bedia, Vaibhav
2012-11-04 15:26       ` Bedia, Vaibhav
2012-11-02 12:32 ` [PATCH 10/15] ARM: OMAP2+: control: Add some AM33XX Control module registers Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-02 12:32 ` [PATCH 11/15] ARM: OMAP: timer: Interchange clksrc and clkevt for AM33XX Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03 11:43   ` Kevin Hilman
2012-11-03 11:43     ` Kevin Hilman
2012-11-03 12:47     ` Bedia, Vaibhav
2012-11-03 12:47       ` Bedia, Vaibhav
2012-11-03 13:04       ` Kevin Hilman
2012-11-03 13:04         ` Kevin Hilman
2012-11-03 13:48         ` Bedia, Vaibhav
2012-11-03 13:48           ` Bedia, Vaibhav
2012-11-05 18:03           ` Kevin Hilman
2012-11-05 18:03             ` Kevin Hilman
2012-11-05 21:59             ` Santosh Shilimkar
2012-11-05 21:59               ` Santosh Shilimkar
2012-11-06 14:38               ` Bedia, Vaibhav
2012-11-06 14:38                 ` Bedia, Vaibhav
2012-11-08 13:15               ` Bedia, Vaibhav
2012-11-08 13:15                 ` Bedia, Vaibhav
2012-11-06 14:33             ` Bedia, Vaibhav
2012-11-06 14:33               ` Bedia, Vaibhav
2012-11-03 16:22   ` Kevin Hilman
2012-11-03 16:22     ` Kevin Hilman
2012-11-05  4:40     ` Bedia, Vaibhav
2012-11-05  4:40       ` Bedia, Vaibhav
2012-11-03 16:31   ` Santosh Shilimkar
2012-11-03 16:31     ` Santosh Shilimkar
2012-11-04 15:26     ` Bedia, Vaibhav
2012-11-04 15:26       ` Bedia, Vaibhav
2012-11-08 20:41   ` Jon Hunter
2012-11-08 20:41     ` Jon Hunter
2012-11-12 22:54     ` Tony Lindgren
2012-11-12 22:54       ` Tony Lindgren
2012-11-02 12:32 ` [PATCH 12/15] ARM: OMAP: timer: Add suspend-resume callbacks for clockevent device Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03 12:15   ` Kevin Hilman
2012-11-03 12:15     ` Kevin Hilman
2012-11-03 13:17     ` Bedia, Vaibhav
2012-11-03 13:17       ` Bedia, Vaibhav
2012-11-03 13:41       ` Kevin Hilman
2012-11-03 13:41         ` Kevin Hilman
2012-11-03 14:03         ` Bedia, Vaibhav
2012-11-03 14:03           ` Bedia, Vaibhav
2012-11-05 21:20       ` Jon Hunter
2012-11-05 21:20         ` Jon Hunter
2012-11-06  9:38         ` Bedia, Vaibhav
2012-11-06  9:38           ` Bedia, Vaibhav
2012-11-06 16:02           ` Jon Hunter
2012-11-06 16:02             ` Jon Hunter
2012-11-03 15:52   ` Santosh Shilimkar
2012-11-03 15:52     ` Santosh Shilimkar
2012-11-04 15:25     ` Bedia, Vaibhav
2012-11-04 15:25       ` Bedia, Vaibhav
2012-11-05 14:55       ` Santosh Shilimkar
2012-11-05 14:55         ` Santosh Shilimkar
2012-11-05 21:04   ` Jon Hunter
2012-11-05 21:04     ` Jon Hunter
2012-11-06  7:32     ` Bedia, Vaibhav
2012-11-06  7:32       ` Bedia, Vaibhav
2012-11-06 16:00       ` Jon Hunter
2012-11-06 16:00         ` Jon Hunter
2012-11-02 12:32 ` [PATCH 13/15] ARM: DTS: AM33XX: Add nodes for OCMCRAM and Mailbox Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03 12:16   ` Kevin Hilman
2012-11-03 12:16     ` Kevin Hilman
2012-11-03 13:17     ` Bedia, Vaibhav
2012-11-03 13:17       ` Bedia, Vaibhav
2012-11-03 15:54   ` Santosh Shilimkar
2012-11-03 15:54     ` Santosh Shilimkar
2012-11-04 15:26     ` Bedia, Vaibhav
2012-11-04 15:26       ` Bedia, Vaibhav
2012-11-05 14:53       ` Santosh Shilimkar
2012-11-05 14:53         ` Santosh Shilimkar
2012-11-05 17:57         ` Bedia, Vaibhav
2012-11-05 17:57           ` Bedia, Vaibhav
2012-11-05 19:29           ` Kevin Hilman
2012-11-05 19:29             ` Kevin Hilman
2012-11-05 21:19             ` Santosh Shilimkar
2012-11-05 21:19               ` Santosh Shilimkar
2012-11-05 21:45               ` Santosh Shilimkar
2012-11-05 21:45                 ` Santosh Shilimkar
2012-11-06  5:08                 ` Bedia, Vaibhav
2012-11-06  5:08                   ` Bedia, Vaibhav
2012-11-05 14:58       ` Santosh Shilimkar
2012-11-05 14:58         ` Santosh Shilimkar
2012-11-02 12:32 ` [PATCH 14/15] ARM: OMAP2+: omap2plus_defconfig: Enable Mailbox Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-03 12:20   ` Kevin Hilman
2012-11-03 12:20     ` Kevin Hilman
2012-11-03 13:17     ` Bedia, Vaibhav
2012-11-03 13:17       ` Bedia, Vaibhav
2012-11-03 13:43       ` Kevin Hilman
2012-11-03 13:43         ` Kevin Hilman
2012-11-02 12:32 ` [PATCH 15/15] ARM: OMAP2+: AM33XX: Basic suspend resume support Vaibhav Bedia
2012-11-02 12:32   ` Vaibhav Bedia
2012-11-02 13:11   ` Bedia, Vaibhav
2012-11-02 13:11     ` Bedia, Vaibhav
2012-11-03 16:57   ` Santosh Shilimkar
2012-11-03 16:57     ` Santosh Shilimkar
2012-11-04 15:26     ` Bedia, Vaibhav
2012-11-04 15:26       ` Bedia, Vaibhav
2012-11-05 17:40   ` Kevin Hilman
2012-11-05 17:40     ` Kevin Hilman
2012-11-05 21:52     ` Santosh Shilimkar
2012-11-05 21:52       ` Santosh Shilimkar
2012-11-06 12:29       ` Bedia, Vaibhav
2012-11-06 12:29         ` Bedia, Vaibhav
2012-11-06 12:38         ` Santosh Shilimkar [this message]
2012-11-06 12:38           ` Santosh Shilimkar
2012-11-06 13:00           ` Bedia, Vaibhav
2012-11-06 13:00             ` Bedia, Vaibhav
2012-11-06 10:40     ` Bedia, Vaibhav
2012-11-06 10:40       ` Bedia, Vaibhav
2012-11-07  1:06       ` Kevin Hilman
2012-11-07  1:06         ` Kevin Hilman
2012-11-07 13:25         ` Bedia, Vaibhav
2012-11-07 13:25           ` Bedia, Vaibhav
2012-11-07 17:15           ` Kevin Hilman
2012-11-07 17:15             ` Kevin Hilman
2012-11-08 13:05             ` Bedia, Vaibhav
2012-11-08 13:05               ` Bedia, Vaibhav
2012-11-02 22:16 ` [RFC 00/15] Add basic suspend-resume support for AM33XX Daniel Mack
2012-11-02 22:16   ` Daniel Mack
2012-11-03  8:39   ` Bedia, Vaibhav
2012-11-03  8:39     ` Bedia, Vaibhav

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=509904CC.8050708@ti.com \
    --to=santosh.shilimkar@ti.com \
    --cc=b-cousson@ti.com \
    --cc=khilman@deeprootsystems.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=paul@pwsan.com \
    --cc=tony@atomide.com \
    --cc=vaibhav.bedia@ti.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.