Linux Samsung SOC development
 help / color / mirror / Atom feed
From: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Chanwoo Choi <cw00.choi@samsung.com>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	linux-pm@lists.linux-foundation.org
Subject: Re: [PATCH 0/4] ARM: EXYNOS4: Support generic Power domain framework for EXYNOS4210
Date: Thu, 20 Oct 2011 20:30:57 +0200	[thread overview]
Message-ID: <4EA068E1.7040503@samsung.com> (raw)
In-Reply-To: <4E4360B2.2060508__44948.0910123841$1313038619$gmane$org@samsung.com>

Hello Rafael,

On 08/11/2011 06:55 AM, Chanwoo Choi wrote:
> The following patch set use the generic Power domain Framework instead of
> power domain code depend of Samsung SoC.
> 
> Chanwoo Choi (4):
>   ARM: EXYNOS4: Support for generic I/O power domains on EXYNOS4210
>   ARM: EXYNOS4: Support for generic Clock manipulation PM callbacks
>   ARM: EXYNOS4: Delete the power-domain code depend on Samsung SoC
>   ARM: EXYNOS4: Add power domain to use generic Power domain Framework
> 
>  arch/arm/mach-exynos4/Kconfig                      |   10 +-
>  arch/arm/mach-exynos4/Makefile                     |    4 +-
>  arch/arm/mach-exynos4/dev-pd.c                     |  139 --------------
>  arch/arm/mach-exynos4/include/mach/pm-exynos4210.h |   52 ++++++
>  arch/arm/mach-exynos4/include/mach/regs-clock.h    |    8 +
>  arch/arm/mach-exynos4/mach-nuri.c                  |   21 ++-
>  arch/arm/mach-exynos4/mach-smdkc210.c              |   26 ++-
>  arch/arm/mach-exynos4/mach-smdkv310.c              |   23 ++-
>  arch/arm/mach-exynos4/mach-universal_c210.c        |   21 ++-
>  arch/arm/mach-exynos4/pm-exynos4210.c              |  189 ++++++++++++++++++++
>  arch/arm/mach-exynos4/pm-runtime.c                 |   56 ++++++
>  arch/arm/plat-samsung/Kconfig                      |    8 -
>  arch/arm/plat-samsung/Makefile                     |    4 -
>  arch/arm/plat-samsung/include/plat/pd.h            |   30 ---
>  arch/arm/plat-samsung/pd.c                         |   95 ----------
>  15 files changed, 377 insertions(+), 309 deletions(-)
>  delete mode 100644 arch/arm/mach-exynos4/dev-pd.c
>  create mode 100644 arch/arm/mach-exynos4/include/mach/pm-exynos4210.h
>  create mode 100644 arch/arm/mach-exynos4/pm-exynos4210.c
>  create mode 100644 arch/arm/mach-exynos4/pm-runtime.c
>  delete mode 100644 arch/arm/plat-samsung/include/plat/pd.h
>  delete mode 100644 arch/arm/plat-samsung/pd.c

I'm having some trouble after applying these patches, with s5p_device_fimc0..3
devices added to exynos4210_pd_cam power domain.

When pm_runtime_get_sync() is called in s5p_device_fimc0 device driver probe()
the driver's runtime_resume helper isn't called.
In __pm_genpd_restore_device() dle->need_restore is 0 and thus the function
exits, not calling drv->pm->runtime_resume().

I would expect the driver's runtime_resume helper to be invoked since the device 
is initially in suspended state.

In rpm_resume() if dev->pm_domain is not null its ops.runtime_resume will
get called, and nothing else.

I observed that after fimc0 device is probed, it gets suspended and then all other
devices are attempted to be suspended as well, through __pm_genpd_save_device().
But at that time only fimc0 device has non null dev->driver, and its driver
runtime_suspend helper is called (without prior runtime_resume call).
Remaining devices in the power domain (fimc1..3) only get 'need_restore' 
set to 1.

So at the time the fimc1 device probe() is invoked, its corresponding need_restore
is set to 1, and driver's runtime_resume helper is called as expected. Then the
runtime_suspend follows.

Is this intended behaviour ? 

I'd like to avoid any reference counters for runtime_suspend/resume helpers.
As for now the clock is controlled there and the driver need to ensure balanced
calls to clk_enable()/clk_disable().



Thanks,
-- 
Sylwester Nawrocki
Samsung Poland R&D Center

       reply	other threads:[~2011-10-20 18:31 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4E4360B2.2060508__44948.0910123841$1313038619$gmane$org@samsung.com>
2011-10-20 18:30 ` Sylwester Nawrocki [this message]
2011-08-11  4:55 [PATCH 0/4] ARM: EXYNOS4: Support generic Power domain framework for EXYNOS4210 Chanwoo Choi
2011-08-13 21:24 ` Rafael J. Wysocki
2011-08-13 21:36   ` Russell King - ARM Linux
2011-08-13 23:39     ` Rafael J. Wysocki
2011-10-02  7:07       ` Kukjin Kim
2011-10-02 11:47         ` Rafael J. Wysocki
2011-10-02 11:48           ` Russell King - ARM Linux
2011-10-02 13:08             ` Rafael J. Wysocki
2011-10-02 13:13               ` Russell King - ARM Linux
2011-10-02 18:00                 ` Rafael J. Wysocki
2011-10-03  3:27                   ` Kukjin Kim
2011-10-02 14:09         ` Sylwester Nawrocki
2011-10-02 17:57           ` Rafael J. Wysocki
2011-09-24 17:27   ` Sylwester Nawrocki
2011-08-19 14:15 ` Kukjin Kim

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=4EA068E1.7040503@samsung.com \
    --to=s.nawrocki@samsung.com \
    --cc=cw00.choi@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=rjw@sisk.pl \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox