All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org>
Cc: Mike Turquette
	<mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Geert Uytterhoeven
	<geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>,
	Kevin Hilman <khilman-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Dmitry Torokhov
	<dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	"Rafael J. Wysocki" <rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Grant Likely
	<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	ssantosh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
Subject: Re: [PATCH v4 1/2] ARM: keystone: pm: switch to use generic pm domains
Date: Tue, 25 Nov 2014 13:09:40 +0100	[thread overview]
Message-ID: <2301239.aDOlWg3gEs@wuerfel> (raw)
In-Reply-To: <54746349.3000306-l0cyMroinI0@public.gmane.org>

On Tuesday 25 November 2014 13:08:57 Grygorii Strashko wrote:
> On 11/25/2014 12:33 PM, Arnd Bergmann wrote:
> > On Monday 24 November 2014 22:44:06 Mike Turquette wrote:
> >> Quoting Arnd Bergmann (2014-11-24 02:50:28)
> >>>
> > 
> > I'm not sure I even understand what you intended the example to look
> > like, it does't parse 
> > 
> > My point above was completely different, the suggestion I made was
> > to not classify the clocks in DT at all, but to leave it all in
> > the client driver.
> 
> I slept with this idea  From one side it sounds good. Pls, Correct me if I'm wrong:
> - there still will be "simple-pmdomain" and all devices will be attached to it by
>    default (or as specified in DT power-domains = <&simple_pmdomain>;);

I would assume only devices that set "power-domains = <&simple_pmdomain>"

> - drivers will use smth. like pm_clk_remove() to remove optional clocks from pm_clk;

Right. Regarding the naming of the function, I would pick something other
than remove, since the main purpose is not to have that clock abandoned
by the pm-domain code (this is still a side-effect), but to have the
clock put under control of the driver itself.

It might be possible to do this implicitly if the driver calls clk_get(),
basically doing clk_get() (or another call if necessary) would prevent the
simple pmdomain from turning it off during suspend.

> From another side:
> - drivers will get dependency from pm_clk;

There are three cases here:

- A device that is always used with a pm-domain, the driver doesn't
  have to worry about it but do need the dependency on having the
  simple-pmdomain code enabled.

- A device that may or may not have clocks, but if it has them, they
  are managed through a pm-domain. In this case, it's platform dependent
  whether we have the dependency. We may want to prevent the device from
  being probed if a power-domain property is present but no driver
  for the domain.

- A device that uses the pm-domain on some machines but not on others:
  this is a bit tricky, because the driver will still have to know
  about all the clocks, although we could choose not to turn off the
  clocks during suspend if the power-domain is not set.

> - HW limitations can't be taken into account - it's possible that some clocks should
>   not be enabled until it's allowed. And only driver know when it's allowed.
>   Otherwise, HW state may become unspecified or wrong output can be generated.

Correct: if you have a device that you don't want to be handled by a simple
pm-domain, then you have to connect it to a different pm-domain, e.g. one that
manages a fixed set of clocks itself.

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 1/2] ARM: keystone: pm: switch to use generic pm domains
Date: Tue, 25 Nov 2014 13:09:40 +0100	[thread overview]
Message-ID: <2301239.aDOlWg3gEs@wuerfel> (raw)
In-Reply-To: <54746349.3000306@ti.com>

On Tuesday 25 November 2014 13:08:57 Grygorii Strashko wrote:
> On 11/25/2014 12:33 PM, Arnd Bergmann wrote:
> > On Monday 24 November 2014 22:44:06 Mike Turquette wrote:
> >> Quoting Arnd Bergmann (2014-11-24 02:50:28)
> >>>
> > 
> > I'm not sure I even understand what you intended the example to look
> > like, it does't parse 
> > 
> > My point above was completely different, the suggestion I made was
> > to not classify the clocks in DT at all, but to leave it all in
> > the client driver.
> 
> I slept with this idea  From one side it sounds good. Pls, Correct me if I'm wrong:
> - there still will be "simple-pmdomain" and all devices will be attached to it by
>    default (or as specified in DT power-domains = <&simple_pmdomain>;);

I would assume only devices that set "power-domains = <&simple_pmdomain>"

> - drivers will use smth. like pm_clk_remove() to remove optional clocks from pm_clk;

Right. Regarding the naming of the function, I would pick something other
than remove, since the main purpose is not to have that clock abandoned
by the pm-domain code (this is still a side-effect), but to have the
clock put under control of the driver itself.

It might be possible to do this implicitly if the driver calls clk_get(),
basically doing clk_get() (or another call if necessary) would prevent the
simple pmdomain from turning it off during suspend.

> From another side:
> - drivers will get dependency from pm_clk;

There are three cases here:

- A device that is always used with a pm-domain, the driver doesn't
  have to worry about it but do need the dependency on having the
  simple-pmdomain code enabled.

- A device that may or may not have clocks, but if it has them, they
  are managed through a pm-domain. In this case, it's platform dependent
  whether we have the dependency. We may want to prevent the device from
  being probed if a power-domain property is present but no driver
  for the domain.

- A device that uses the pm-domain on some machines but not on others:
  this is a bit tricky, because the driver will still have to know
  about all the clocks, although we could choose not to turn off the
  clocks during suspend if the power-domain is not set.

> - HW limitations can't be taken into account - it's possible that some clocks should
>   not be enabled until it's allowed. And only driver know when it's allowed.
>   Otherwise, HW state may become unspecified or wrong output can be generated.

Correct: if you have a device that you don't want to be handled by a simple
pm-domain, then you have to connect it to a different pm-domain, e.g. one that
manages a fixed set of clocks itself.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Mike Turquette <mturquette@linaro.org>,
	linux-arm-kernel@lists.infradead.org,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Kevin Hilman <khilman@kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Grant Likely <grant.likely@secretlab.ca>,
	Rob Herring <robh+dt@kernel.org>,
	ssantosh@kernel.org
Subject: Re: [PATCH v4 1/2] ARM: keystone: pm: switch to use generic pm domains
Date: Tue, 25 Nov 2014 13:09:40 +0100	[thread overview]
Message-ID: <2301239.aDOlWg3gEs@wuerfel> (raw)
In-Reply-To: <54746349.3000306@ti.com>

On Tuesday 25 November 2014 13:08:57 Grygorii Strashko wrote:
> On 11/25/2014 12:33 PM, Arnd Bergmann wrote:
> > On Monday 24 November 2014 22:44:06 Mike Turquette wrote:
> >> Quoting Arnd Bergmann (2014-11-24 02:50:28)
> >>>
> > 
> > I'm not sure I even understand what you intended the example to look
> > like, it does't parse 
> > 
> > My point above was completely different, the suggestion I made was
> > to not classify the clocks in DT at all, but to leave it all in
> > the client driver.
> 
> I slept with this idea  From one side it sounds good. Pls, Correct me if I'm wrong:
> - there still will be "simple-pmdomain" and all devices will be attached to it by
>    default (or as specified in DT power-domains = <&simple_pmdomain>;);

I would assume only devices that set "power-domains = <&simple_pmdomain>"

> - drivers will use smth. like pm_clk_remove() to remove optional clocks from pm_clk;

Right. Regarding the naming of the function, I would pick something other
than remove, since the main purpose is not to have that clock abandoned
by the pm-domain code (this is still a side-effect), but to have the
clock put under control of the driver itself.

It might be possible to do this implicitly if the driver calls clk_get(),
basically doing clk_get() (or another call if necessary) would prevent the
simple pmdomain from turning it off during suspend.

> From another side:
> - drivers will get dependency from pm_clk;

There are three cases here:

- A device that is always used with a pm-domain, the driver doesn't
  have to worry about it but do need the dependency on having the
  simple-pmdomain code enabled.

- A device that may or may not have clocks, but if it has them, they
  are managed through a pm-domain. In this case, it's platform dependent
  whether we have the dependency. We may want to prevent the device from
  being probed if a power-domain property is present but no driver
  for the domain.

- A device that uses the pm-domain on some machines but not on others:
  this is a bit tricky, because the driver will still have to know
  about all the clocks, although we could choose not to turn off the
  clocks during suspend if the power-domain is not set.

> - HW limitations can't be taken into account - it's possible that some clocks should
>   not be enabled until it's allowed. And only driver know when it's allowed.
>   Otherwise, HW state may become unspecified or wrong output can be generated.

Correct: if you have a device that you don't want to be handled by a simple
pm-domain, then you have to connect it to a different pm-domain, e.g. one that
manages a fixed set of clocks itself.

	Arnd

  parent reply	other threads:[~2014-11-25 12:09 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-10 14:59 [PATCH v4 0/2] ARM: keystone: pm: switch to use generic pm domains Grygorii Strashko
2014-11-10 14:59 ` Grygorii Strashko
2014-11-10 14:59 ` Grygorii Strashko
2014-11-10 14:59 ` [PATCH v4 1/2] " Grygorii Strashko
2014-11-10 14:59   ` Grygorii Strashko
2014-11-10 14:59   ` Grygorii Strashko
2014-11-10 15:06   ` Arnd Bergmann
2014-11-10 15:06     ` Arnd Bergmann
2014-11-10 17:38     ` Grygorii Strashko
2014-11-10 17:38       ` Grygorii Strashko
2014-11-10 17:38       ` Grygorii Strashko
2014-11-10 20:36       ` Arnd Bergmann
2014-11-10 20:36         ` Arnd Bergmann
2014-11-17 19:14         ` Kevin Hilman
2014-11-17 19:14           ` Kevin Hilman
2014-11-17 19:14           ` Kevin Hilman
     [not found]           ` <7h389h3aif.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2014-11-17 20:37             ` Arnd Bergmann
2014-11-17 20:37               ` Arnd Bergmann
2014-11-17 20:37               ` Arnd Bergmann
2014-11-17 21:50               ` Kevin Hilman
2014-11-17 21:50                 ` Kevin Hilman
2014-11-18 18:54                 ` Grygorii Strashko
2014-11-18 18:54                   ` Grygorii Strashko
2014-11-18 18:54                   ` Grygorii Strashko
2014-11-18 19:32                   ` Arnd Bergmann
2014-11-18 19:32                     ` Arnd Bergmann
2014-11-19 11:32                     ` Grygorii Strashko
2014-11-19 11:32                       ` Grygorii Strashko
2014-11-19 11:32                       ` Grygorii Strashko
2014-11-19 13:47                       ` Arnd Bergmann
2014-11-19 13:47                         ` Arnd Bergmann
2014-11-20 11:34                         ` Ulf Hansson
2014-11-20 11:34                           ` Ulf Hansson
2014-11-20 12:03                           ` Grygorii Strashko
2014-11-20 12:03                             ` Grygorii Strashko
2014-11-20 12:03                             ` Grygorii Strashko
2014-11-20 13:12                             ` Ulf Hansson
2014-11-20 13:12                               ` Ulf Hansson
2014-11-20 13:32                               ` Geert Uytterhoeven
2014-11-20 13:32                                 ` Geert Uytterhoeven
2014-11-20 15:32                                 ` Grygorii Strashko
2014-11-20 15:32                                   ` Grygorii Strashko
2014-11-20 15:32                                   ` Grygorii Strashko
2014-11-20 20:22                                   ` Kevin Hilman
2014-11-20 20:22                                     ` Kevin Hilman
2014-11-20 20:22                                     ` Kevin Hilman
2014-11-20 20:26                                     ` Geert Uytterhoeven
2014-11-20 20:26                                       ` Geert Uytterhoeven
2014-11-20 21:48                                       ` Kevin Hilman
2014-11-20 21:48                                         ` Kevin Hilman
2014-11-20 21:48                                         ` Kevin Hilman
2014-11-20 21:54                                         ` Geert Uytterhoeven
2014-11-20 21:54                                           ` Geert Uytterhoeven
     [not found]                                           ` <CAMuHMdVXGPu7x706NxqO3rn3KuRbPbD_ZQsJtDH4Hf31AaRR+Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-21  1:30                                             ` Kevin Hilman
2014-11-21  1:30                                               ` Kevin Hilman
2014-11-21  1:30                                               ` Kevin Hilman
     [not found]                                               ` <7hppchpcfm.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2014-11-21  8:06                                                 ` Geert Uytterhoeven
2014-11-21  8:06                                                   ` Geert Uytterhoeven
2014-11-21  8:06                                                   ` Geert Uytterhoeven
2014-11-21 18:58                                                   ` Grygorii Strashko
2014-11-21 18:58                                                     ` Grygorii Strashko
2014-11-21 18:58                                                     ` Grygorii Strashko
     [not found]                                                     ` <546F8B39.1080106-l0cyMroinI0@public.gmane.org>
2014-11-21 19:29                                                       ` Kevin Hilman
2014-11-21 19:29                                                         ` Kevin Hilman
2014-11-21 19:29                                                         ` Kevin Hilman
2014-11-21 20:14                                                         ` Grygorii Strashko
2014-11-21 20:14                                                           ` Grygorii Strashko
2014-11-21 20:14                                                           ` Grygorii Strashko
2014-11-24 10:50                                                     ` Arnd Bergmann
2014-11-24 10:50                                                       ` Arnd Bergmann
2014-11-25  6:44                                                       ` Mike Turquette
2014-11-25  6:44                                                         ` Mike Turquette
2014-11-25 10:33                                                         ` Arnd Bergmann
2014-11-25 10:33                                                           ` Arnd Bergmann
2014-11-25 11:08                                                           ` Grygorii Strashko
2014-11-25 11:08                                                             ` Grygorii Strashko
2014-11-25 11:08                                                             ` Grygorii Strashko
     [not found]                                                             ` <54746349.3000306-l0cyMroinI0@public.gmane.org>
2014-11-25 12:09                                                               ` Arnd Bergmann [this message]
2014-11-25 12:09                                                                 ` Arnd Bergmann
2014-11-25 12:09                                                                 ` Arnd Bergmann
2014-11-25 13:30                                                                 ` Grygorii Strashko
2014-11-25 13:30                                                                   ` Grygorii Strashko
2014-11-25 13:30                                                                   ` Grygorii Strashko
2014-11-25 14:04                                                                   ` Russell King - ARM Linux
2014-11-25 14:04                                                                     ` Russell King - ARM Linux
2014-11-25 14:53                                                                     ` Grygorii Strashko
2014-11-25 14:53                                                                       ` Grygorii Strashko
2014-11-25 14:53                                                                       ` Grygorii Strashko
2014-11-25 16:28                                                                       ` santosh shilimkar
2014-11-25 16:28                                                                         ` santosh shilimkar
     [not found]                                                   ` <CAMuHMdU6G35SP-P7bt6RJQk59CrGcKE2XM4N3o8Dv3qxZU7gxA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-21 19:20                                                     ` Kevin Hilman
2014-11-21 19:20                                                       ` Kevin Hilman
2014-11-21 19:20                                                       ` Kevin Hilman
     [not found]                                   ` <546E0970.5090301-l0cyMroinI0@public.gmane.org>
2014-11-21  9:04                                     ` Geert Uytterhoeven
2014-11-21  9:04                                       ` Geert Uytterhoeven
2014-11-21  9:04                                       ` Geert Uytterhoeven
2014-11-18  2:18               ` santosh.shilimkar
2014-11-18  2:18                 ` santosh.shilimkar at oracle.com
2014-11-10 14:59 ` [PATCH v4 2/2] ARM: dts: keystone: add generic pm controller node Grygorii Strashko
2014-11-10 14:59   ` Grygorii Strashko
2014-11-10 14:59   ` Grygorii Strashko
2014-11-10 15:13 ` [PATCH v4 0/2] ARM: keystone: pm: switch to use generic pm domains Grygorii Strashko
2014-11-10 15:13   ` Grygorii Strashko
2014-11-10 15:13   ` Grygorii Strashko
     [not found]   ` <5460D601.70504-l0cyMroinI0@public.gmane.org>
2014-11-10 18:51     ` santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
2014-11-10 18:51       ` santosh.shilimkar
2014-11-10 18:51       ` santosh.shilimkar at oracle.com

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=2301239.aDOlWg3gEs@wuerfel \
    --to=arnd-r2ngtmty4d4@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org \
    --cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
    --cc=grygorii.strashko-l0cyMroinI0@public.gmane.org \
    --cc=khilman-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=ssantosh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.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.