All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vince Hsu <vinceh@nvidia.com>
To: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Lucas Stach <dev@lynxeye.de>,
	swarren@wwwdotorg.org, gnurou@gmail.com, bskeggs@redhat.com,
	martin.peres@free.fr, seven@nimrod-online.com,
	samuel.pitoiset@gmail.com, nouveau@lists.freedesktop.org,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/11] ARM: tegra: add function to control the GPU rail clamp
Date: Wed, 7 Jan 2015 22:19:52 +0800	[thread overview]
Message-ID: <20150107141938.GA7392@nvidia.com> (raw)
In-Reply-To: <20150107141254.GS10073@tbergstrom-lnx.Nvidia.com>

On 04:12:54PM Jan 07, Peter De Schrijver wrote:
> On Wed, Jan 07, 2015 at 06:49:27PM +0800, Vince Hsu wrote:
> > 
> > On 01/07/2015 06:19 PM, Peter De Schrijver wrote:
> > >On Mon, Jan 05, 2015 at 04:09:33PM +0100, Thierry Reding wrote:
> > >>* PGP Signed by an unknown key
> > >>
> > >>On Thu, Dec 25, 2014 at 10:28:08AM +0800, Vince Hsu wrote:
> > >>>On 12/24/2014 09:16 PM, Lucas Stach wrote:
> > >>>>Am Dienstag, den 23.12.2014, 18:39 +0800 schrieb Vince Hsu:
> > >>>>>The Tegra124 and later Tegra SoCs have a sepatate rail gating register
> > >>>>>to enable/disable the clamp. The original function
> > >>>>>tegra_powergate_remove_clamping() is not sufficient for the enable
> > >>>>>function. So add a new function which is dedicated to the GPU rail
> > >>>>>gating. Also don't refer to the powergate ID since the GPU ID makes no
> > >>>>>sense here.
> > >>>>>
> > >>>>>Signed-off-by: Vince Hsu <vinceh@nvidia.com>
> > >>>>To be honest I don't see the point of this patch.
> > >>>>You are bloating the PMC interface by introducing another exported
> > >>>>function that does nothing different than what the current function
> > >>>>already does.
> > >>>>
> > >>>>If you need a way to assert the clamp I would have expected you to
> > >>>>introduce a common function to do this for all power partitions.
> > >>>I thought about adding an tegra_powergate_assert_clamping(), but that
> > >>>doesn't make sense to all the power partitions except GPU. Note the
> > >>>difference in TRM. Any suggestion for the common function?
> > >>I don't think extending the powergate API is useful at this point. We've
> > >>long had an open TODO item to replace this with a generic API. I did
> > >>some prototyping a while ago to use generic power domains for this, that
> > >>way all the details and dependencies between the partitions could be
> > >>properly modeled.
> > >>
> > >>Can you take a look at my staging/powergate branch here:
> > >>
> > >>	https://github.com/thierryreding/linux/commits/staging/powergate
> > >>
> > >>and see if you can use that instead? The idea is to completely hide the
> > >>details of power partitions from drivers and use runtime PM instead.
> > >>
> > >>Also adding Peter whom I had discussed this with earlier. Can we finally
> > >>get this converted? I'd rather not keep complicating this custom API to
> > >>avoid making the conversion even more difficult.
> > >Conceptually I fully agree that we should use runtime PM and powerdomains.
> > >However I don't think the implementation you mentioned is correct. The resets
> > >of all modules in a domain need to be asserted and the memory clients need to
> > >be flushed. All this needs to be done with module clocks enabled (resets are
> > >synchronous).  Then all module clocks need to be disabled and then the
> > >partition can be powergated. After ungating, the module resets need to be
> > >deasserted and the FLUSH bit cleared with clocks enabled.
> > Yeah. I plan to have the information of all the clock client of the
> > partitions and
> > the memory clients be defined statically in c source, e.g. pmc-tegra124.c.
> > All modules can declare which domain they belong to in DT. One domain can
> > be really power gated only when no module is awake. Note the clock
> > clients of
> > one domain might not equal to the clocks of the module. The reset is
> > not either.
> > So I don't get the clock and reset from module. How do you think?
> > 
> 
> I think it's indeed better to have a direct reference to the required clocks
> to powergate/ungate a domain. As you said, there is no easy way to derive the
> required clocks from the DT module declarations. My suggestion would be to
> have powerdomain definitions in DT and for each domain have references to
> the required clocks and resets.
> 
And specify the dependencies between domains in DT?

Thanks,
Vince

WARNING: multiple messages have this Message-ID (diff)
From: Vince Hsu <vinceh@nvidia.com>
To: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Lucas Stach <dev@lynxeye.de>, <swarren@wwwdotorg.org>,
	<gnurou@gmail.com>, <bskeggs@redhat.com>, <martin.peres@free.fr>,
	<seven@nimrod-online.com>, <samuel.pitoiset@gmail.com>,
	<nouveau@lists.freedesktop.org>, <linux-tegra@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/11] ARM: tegra: add function to control the GPU rail clamp
Date: Wed, 7 Jan 2015 22:19:52 +0800	[thread overview]
Message-ID: <20150107141938.GA7392@nvidia.com> (raw)
In-Reply-To: <20150107141254.GS10073@tbergstrom-lnx.Nvidia.com>

On 04:12:54PM Jan 07, Peter De Schrijver wrote:
> On Wed, Jan 07, 2015 at 06:49:27PM +0800, Vince Hsu wrote:
> > 
> > On 01/07/2015 06:19 PM, Peter De Schrijver wrote:
> > >On Mon, Jan 05, 2015 at 04:09:33PM +0100, Thierry Reding wrote:
> > >>* PGP Signed by an unknown key
> > >>
> > >>On Thu, Dec 25, 2014 at 10:28:08AM +0800, Vince Hsu wrote:
> > >>>On 12/24/2014 09:16 PM, Lucas Stach wrote:
> > >>>>Am Dienstag, den 23.12.2014, 18:39 +0800 schrieb Vince Hsu:
> > >>>>>The Tegra124 and later Tegra SoCs have a sepatate rail gating register
> > >>>>>to enable/disable the clamp. The original function
> > >>>>>tegra_powergate_remove_clamping() is not sufficient for the enable
> > >>>>>function. So add a new function which is dedicated to the GPU rail
> > >>>>>gating. Also don't refer to the powergate ID since the GPU ID makes no
> > >>>>>sense here.
> > >>>>>
> > >>>>>Signed-off-by: Vince Hsu <vinceh@nvidia.com>
> > >>>>To be honest I don't see the point of this patch.
> > >>>>You are bloating the PMC interface by introducing another exported
> > >>>>function that does nothing different than what the current function
> > >>>>already does.
> > >>>>
> > >>>>If you need a way to assert the clamp I would have expected you to
> > >>>>introduce a common function to do this for all power partitions.
> > >>>I thought about adding an tegra_powergate_assert_clamping(), but that
> > >>>doesn't make sense to all the power partitions except GPU. Note the
> > >>>difference in TRM. Any suggestion for the common function?
> > >>I don't think extending the powergate API is useful at this point. We've
> > >>long had an open TODO item to replace this with a generic API. I did
> > >>some prototyping a while ago to use generic power domains for this, that
> > >>way all the details and dependencies between the partitions could be
> > >>properly modeled.
> > >>
> > >>Can you take a look at my staging/powergate branch here:
> > >>
> > >>	https://github.com/thierryreding/linux/commits/staging/powergate
> > >>
> > >>and see if you can use that instead? The idea is to completely hide the
> > >>details of power partitions from drivers and use runtime PM instead.
> > >>
> > >>Also adding Peter whom I had discussed this with earlier. Can we finally
> > >>get this converted? I'd rather not keep complicating this custom API to
> > >>avoid making the conversion even more difficult.
> > >Conceptually I fully agree that we should use runtime PM and powerdomains.
> > >However I don't think the implementation you mentioned is correct. The resets
> > >of all modules in a domain need to be asserted and the memory clients need to
> > >be flushed. All this needs to be done with module clocks enabled (resets are
> > >synchronous).  Then all module clocks need to be disabled and then the
> > >partition can be powergated. After ungating, the module resets need to be
> > >deasserted and the FLUSH bit cleared with clocks enabled.
> > Yeah. I plan to have the information of all the clock client of the
> > partitions and
> > the memory clients be defined statically in c source, e.g. pmc-tegra124.c.
> > All modules can declare which domain they belong to in DT. One domain can
> > be really power gated only when no module is awake. Note the clock
> > clients of
> > one domain might not equal to the clocks of the module. The reset is
> > not either.
> > So I don't get the clock and reset from module. How do you think?
> > 
> 
> I think it's indeed better to have a direct reference to the required clocks
> to powergate/ungate a domain. As you said, there is no easy way to derive the
> required clocks from the DT module declarations. My suggestion would be to
> have powerdomain definitions in DT and for each domain have references to
> the required clocks and resets.
> 
And specify the dependencies between domains in DT?

Thanks,
Vince


  reply	other threads:[~2015-01-07 14:19 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-23 10:39 [PATCH 0/11] Add suspend/resume support for GK20A Vince Hsu
2014-12-23 10:39 ` Vince Hsu
     [not found] ` <1419331204-26679-1-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-23 10:39   ` [PATCH 1/11] ARM: tegra: add function to control the GPU rail clamp Vince Hsu
2014-12-23 10:39     ` Vince Hsu
     [not found]     ` <1419331204-26679-2-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-24 13:16       ` Lucas Stach
2014-12-24 13:16         ` Lucas Stach
     [not found]         ` <1419426990.2179.7.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2014-12-25  2:28           ` Vince Hsu
2014-12-25  2:28             ` Vince Hsu
     [not found]             ` <549B7638.2010405-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-25 20:34               ` Lucas Stach
2014-12-25 20:34                 ` Lucas Stach
     [not found]                 ` <1419539683.2165.6.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2014-12-29  2:49                   ` Vince Hsu
2014-12-29  2:49                     ` Vince Hsu
     [not found]                     ` <54A0C148.6030400-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-30 16:42                       ` Lucas Stach
2014-12-30 16:42                         ` Lucas Stach
     [not found]                         ` <1419957752.4082.2.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2015-01-05  6:55                           ` Vince Hsu
2015-01-05  6:55                             ` Vince Hsu
2015-01-05 15:09               ` Thierry Reding
2015-01-05 15:09                 ` Thierry Reding
     [not found]                 ` <20150105150932.GG12010-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06  2:11                   ` Vince Hsu
2015-01-06  2:11                     ` Vince Hsu
     [not found]                     ` <54AB445D.7010303-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 11:15                       ` Thierry Reding
2015-01-06 11:15                         ` Thierry Reding
     [not found]                         ` <20150106111538.GB31830-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06 12:03                           ` Vince Hsu
2015-01-06 12:03                             ` Vince Hsu
2015-01-06 13:29                             ` Thierry Reding
2015-01-06 13:51                               ` Vince Hsu
2015-01-06 13:51                                 ` Vince Hsu
     [not found]                                 ` <20150106135110.GA18076-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 14:23                                   ` Thierry Reding
2015-01-06 14:23                                     ` Thierry Reding
2015-01-07 10:19                 ` Peter De Schrijver
2015-01-07 10:19                   ` Peter De Schrijver
     [not found]                   ` <20150107101900.GP10073-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2015-01-07 10:49                     ` Vince Hsu
2015-01-07 10:49                       ` Vince Hsu
2015-01-07 13:27                       ` Thierry Reding
2015-01-07 14:08                         ` Peter De Schrijver
2015-01-07 14:08                           ` Peter De Schrijver
2015-01-07 14:28                           ` Vince Hsu
2015-01-07 14:28                             ` Vince Hsu
     [not found]                             ` <20150107142828.GB7392-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-07 14:48                               ` Thierry Reding
2015-01-07 14:48                                 ` Thierry Reding
2015-01-08  4:25                                 ` Vince Hsu
2015-01-08  4:25                                   ` Vince Hsu
     [not found]                                   ` <54AE06AE.8080603-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-08  8:03                                     ` Thierry Reding
2015-01-08  8:03                                       ` Thierry Reding
2015-01-07 14:12                       ` Peter De Schrijver
2015-01-07 14:12                         ` Peter De Schrijver
2015-01-07 14:19                         ` Vince Hsu [this message]
2015-01-07 14:19                           ` Vince Hsu
2015-01-07 15:12                           ` Thierry Reding
2015-01-08  4:23                             ` Vince Hsu
2015-01-08  4:23                               ` Vince Hsu
2015-01-08  9:32                             ` Peter De Schrijver
2015-01-08  9:32                               ` Peter De Schrijver
     [not found]                               ` <20150108093205.GV10073-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2015-01-08 11:41                                 ` Thierry Reding
2015-01-08 11:41                                   ` Thierry Reding
     [not found]                                   ` <20150108114153.GL1987-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-08 12:41                                     ` Peter De Schrijver
2015-01-08 12:41                                       ` Peter De Schrijver
2015-01-08  9:39                             ` Peter De Schrijver
2015-01-08  9:39                               ` Peter De Schrijver
     [not found]                               ` <20150108093957.GW10073-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2015-01-08 11:44                                 ` Thierry Reding
2015-01-08 11:44                                   ` Thierry Reding
2014-12-24 13:52       ` Dmitry Osipenko
2014-12-24 13:52         ` Dmitry Osipenko
     [not found]         ` <549AC511.5040507-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-12-25  2:05           ` Vince Hsu
2014-12-25  2:05             ` Vince Hsu
2014-12-23 10:39   ` [PATCH 2/11] memory: tegra: add mc flush support Vince Hsu
2014-12-23 10:39     ` Vince Hsu
2015-01-06 14:18     ` Thierry Reding
     [not found]       ` <20150106141821.GJ31830-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-07 10:08         ` Peter De Schrijver
2015-01-07 10:08           ` Peter De Schrijver
     [not found]           ` <20150107100804.GO10073-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2015-01-07 13:34             ` Thierry Reding
2015-01-07 13:34               ` Thierry Reding
2014-12-23 10:39   ` [PATCH 3/11] memory: tegra: add flush operation for Tegra124 memory clients Vince Hsu
2014-12-23 10:39     ` Vince Hsu
2015-01-06 14:30     ` Thierry Reding
2015-01-06 15:07       ` Vince Hsu
2015-01-06 15:07         ` Vince Hsu
2015-01-06 15:27         ` Thierry Reding
     [not found]           ` <20150106152750.GR31830-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06 15:53             ` Vince Hsu
2015-01-06 15:53               ` Vince Hsu
2014-12-23 10:39   ` [PATCH 4/11] ARM: tegra: add mc node for Tegra124 GPU Vince Hsu
2014-12-23 10:39     ` Vince Hsu
2014-12-23 10:39   ` [PATCH nouveau 05/11] platform: switch to the new gpu rail clamping function Vince Hsu
2014-12-23 10:39     ` Vince Hsu
2014-12-23 10:39   ` [PATCH nouveau 06/11] platform: complete the power up/down sequence Vince Hsu
2014-12-23 10:39     ` Vince Hsu
     [not found]     ` <1419331204-26679-7-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-24 13:23       ` Lucas Stach
2014-12-24 13:23         ` Lucas Stach
     [not found]         ` <1419427385.2179.13.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2014-12-25  2:42           ` Vince Hsu
2014-12-25  2:42             ` Vince Hsu
     [not found]             ` <549B79B2.6010301-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-05 15:25               ` Thierry Reding
2015-01-05 15:25                 ` Thierry Reding
     [not found]                 ` <20150105152552.GH12010-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06  9:34                   ` Vince Hsu
2015-01-06  9:34                     ` Vince Hsu
2015-01-06 11:36                     ` Thierry Reding
2015-01-06 12:13                       ` Vince Hsu
2015-01-06 12:13                         ` Vince Hsu
     [not found]                         ` <54ABD14D.30003-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 13:55                           ` Thierry Reding
2015-01-06 13:55                             ` Thierry Reding
2015-01-06 14:19                             ` Vince Hsu
2015-01-06 14:19                               ` Vince Hsu
     [not found]                               ` <20150106141948.GA18598-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 14:24                                 ` Thierry Reding
2015-01-06 14:24                                   ` Thierry Reding
2014-12-23 10:40   ` [PATCH nouveau 07/11] instmem: make nv50_instmem_priv public Vince Hsu
2014-12-23 10:40     ` Vince Hsu
2014-12-23 10:40   ` [PATCH nouveau 08/11] instmem: add dummy support for GK20A Vince Hsu
2014-12-23 10:40     ` Vince Hsu
     [not found]     ` <1419331204-26679-9-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-23 16:39       ` Ilia Mirkin
2014-12-23 16:39         ` [Nouveau] " Ilia Mirkin
     [not found]         ` <CAKb7UvgCizkaK2aZeWp=mgH34Ur3hi0hSFghopkpkkBeuqzsoQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-24  2:44           ` Vince Hsu
2014-12-24  2:44             ` [Nouveau] " Vince Hsu
2014-12-23 10:40   ` [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions Vince Hsu
2014-12-23 10:40     ` Vince Hsu
     [not found]     ` <1419331204-26679-10-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-30  2:34       ` Emil Velikov
2014-12-30  2:34         ` [Nouveau] " Emil Velikov
     [not found]         ` <54A20F4D.4040100-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-12-30  3:18           ` Vince Hsu
2014-12-30  3:18             ` [Nouveau] " Vince Hsu
     [not found]             ` <54A2198A.4000707-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-05 15:32               ` Thierry Reding
2015-01-05 15:32                 ` [Nouveau] " Thierry Reding
     [not found]                 ` <20150105153252.GI12010-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-05 19:50                   ` Alexandre Courbot
2015-01-05 19:50                     ` [Nouveau] " Alexandre Courbot
     [not found]                     ` <CAAVeFuK-SgUbtHADX4-pXN5_ayzvEd+1KxJOBcRe2tmDfHaLEA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-06  9:36                       ` Vince Hsu
2015-01-06  9:36                         ` [Nouveau] " Vince Hsu
2015-01-06 11:49                       ` Thierry Reding
2015-01-06 11:49                         ` [Nouveau] " Thierry Reding
2015-01-06 12:27                         ` Vince Hsu
2015-01-06 12:27                           ` Vince Hsu
     [not found]                           ` <54ABD49A.6080501-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 14:37                             ` Thierry Reding
2015-01-06 14:37                               ` [Nouveau] " Thierry Reding
2015-01-06 14:44                               ` Ilia Mirkin
     [not found]                                 ` <CAKb7UvgomyQkiwfGTdyuU-muE-_pPxOSmeXh9uQ6-ri0HHxLrQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-06 14:50                                   ` Thierry Reding
2015-01-06 14:50                                     ` Thierry Reding
     [not found]                                     ` <20150106145054.GO31830-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06 15:03                                       ` Ilia Mirkin
2015-01-06 15:03                                         ` [Nouveau] " Ilia Mirkin
2015-01-06 15:35                                         ` Thierry Reding
2014-12-23 10:40   ` [PATCH nouveau 10/11] platform: add suspend/resume support Vince Hsu
2014-12-23 10:40     ` Vince Hsu
2014-12-23 10:40   ` [PATCH nouveau 11/11] platform: add PM runtime " Vince Hsu
2014-12-23 10:40     ` Vince Hsu

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=20150107141938.GA7392@nvidia.com \
    --to=vinceh@nvidia.com \
    --cc=bskeggs@redhat.com \
    --cc=dev@lynxeye.de \
    --cc=gnurou@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=martin.peres@free.fr \
    --cc=nouveau@lists.freedesktop.org \
    --cc=pdeschrijver@nvidia.com \
    --cc=samuel.pitoiset@gmail.com \
    --cc=seven@nimrod-online.com \
    --cc=swarren@wwwdotorg.org \
    --cc=thierry.reding@gmail.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.