All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mikko Perttunen <mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
To: Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Mikko Perttunen <mikko.perttunen-/1wQRMveznE@public.gmane.org>,
	Peter De Schrijver
	<pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	Prashant Gaikwad
	<pgaikwad-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	"mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
	<mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org"
	<swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH 5/8] of: Add Tegra124 EMC bindings
Date: Mon, 14 Jul 2014 13:54:36 +0300	[thread overview]
Message-ID: <53C3B6EC.9090904@nvidia.com> (raw)
In-Reply-To: <20140714102954.GD9870@ulmo>

On 14/07/14 13:29, Thierry Reding wrote:
> * PGP Signed by an unknown key
 > ...
>> Yes, this sounds sensible. I'll make such a patch. I suppose having another
>> timings table in the MC node with just the rate and mc-burst-data would
>> separate the concerns best. It occurs to me that we could also write the
>> regs in the pre-rate change notifier, but this would turn the dependency
>> around and would mean that the regs are not written when entering backup
>> rates. The latter shouldn't be a problem but the reversed dependency would,
>> so I guess a custom function is the way to go, and we need to add at least
>> one anyway.
>
> It sounds like maybe moving enough code and data into the MC driver to
> handle frequency changes would be a good move. From the above it sounds
> like all the MC driver needs to know is that a frequency change is about
> to happen and what the new frequency is.
>
> In addition to exposing things like number of DRAM banks, etc.
>

Yes, so there are two ways to do this:
1) EMC calls tegra_mc_emem_update(freq) at the correct time
2) MC has an optional clock phandle to the EMC clock and registers a 
pre-change notifier.

Both work, but the dependency is reversed. In both cases, the other 
driver is also optional. In the first case, the EMC driver can give a 
warning if the call fails. (As mentioned, if the MC_EMEM updates don't 
happen, things still work but potentially with a hefty perf loss.)
TBH, I haven't yet decided which one is better. If you have an opinion,
I'll go with it.

>> The downstream kernel also overwrites most LA registers during EMC rate
>> change without regard for the driver-set values, and we might have to read
>> those values from the device tree too. Upstream can do this in rate change
>> notifiers if needed. I'll look into this a bit more.
>
> As I understand it, the latency allowance should be specified in terms
> of the maximum amount of time that requests are delayed, so that the
> proper values for the LA registers can be recomputed on an EMC rate
> change.

That's how I understand it too, but in downstream, the LA register 
values are hardcoded into EMC tables in platform data/DTS that are just 
written into the LA registers as-is during rate change.

>
> Thierry
>
> * Unknown Key
> * 0x7F3EB3A1
>

WARNING: multiple messages have this Message-ID (diff)
From: mperttunen@nvidia.com (Mikko Perttunen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/8] of: Add Tegra124 EMC bindings
Date: Mon, 14 Jul 2014 13:54:36 +0300	[thread overview]
Message-ID: <53C3B6EC.9090904@nvidia.com> (raw)
In-Reply-To: <20140714102954.GD9870@ulmo>

On 14/07/14 13:29, Thierry Reding wrote:
> * PGP Signed by an unknown key
 > ...
>> Yes, this sounds sensible. I'll make such a patch. I suppose having another
>> timings table in the MC node with just the rate and mc-burst-data would
>> separate the concerns best. It occurs to me that we could also write the
>> regs in the pre-rate change notifier, but this would turn the dependency
>> around and would mean that the regs are not written when entering backup
>> rates. The latter shouldn't be a problem but the reversed dependency would,
>> so I guess a custom function is the way to go, and we need to add at least
>> one anyway.
>
> It sounds like maybe moving enough code and data into the MC driver to
> handle frequency changes would be a good move. From the above it sounds
> like all the MC driver needs to know is that a frequency change is about
> to happen and what the new frequency is.
>
> In addition to exposing things like number of DRAM banks, etc.
>

Yes, so there are two ways to do this:
1) EMC calls tegra_mc_emem_update(freq) at the correct time
2) MC has an optional clock phandle to the EMC clock and registers a 
pre-change notifier.

Both work, but the dependency is reversed. In both cases, the other 
driver is also optional. In the first case, the EMC driver can give a 
warning if the call fails. (As mentioned, if the MC_EMEM updates don't 
happen, things still work but potentially with a hefty perf loss.)
TBH, I haven't yet decided which one is better. If you have an opinion,
I'll go with it.

>> The downstream kernel also overwrites most LA registers during EMC rate
>> change without regard for the driver-set values, and we might have to read
>> those values from the device tree too. Upstream can do this in rate change
>> notifiers if needed. I'll look into this a bit more.
>
> As I understand it, the latency allowance should be specified in terms
> of the maximum amount of time that requests are delayed, so that the
> proper values for the LA registers can be recomputed on an EMC rate
> change.

That's how I understand it too, but in downstream, the LA register 
values are hardcoded into EMC tables in platform data/DTS that are just 
written into the LA registers as-is during rate change.

>
> Thierry
>
> * Unknown Key
> * 0x7F3EB3A1
>

WARNING: multiple messages have this Message-ID (diff)
From: Mikko Perttunen <mperttunen@nvidia.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Mikko Perttunen <mikko.perttunen@kapsi.fi>,
	Peter De Schrijver <pdeschrijver@nvidia.com>,
	Prashant Gaikwad <pgaikwad@nvidia.com>,
	"mturquette@linaro.org" <mturquette@linaro.org>,
	"swarren@wwwdotorg.org" <swarren@wwwdotorg.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>
Subject: Re: [PATCH 5/8] of: Add Tegra124 EMC bindings
Date: Mon, 14 Jul 2014 13:54:36 +0300	[thread overview]
Message-ID: <53C3B6EC.9090904@nvidia.com> (raw)
In-Reply-To: <20140714102954.GD9870@ulmo>

On 14/07/14 13:29, Thierry Reding wrote:
> * PGP Signed by an unknown key
 > ...
>> Yes, this sounds sensible. I'll make such a patch. I suppose having another
>> timings table in the MC node with just the rate and mc-burst-data would
>> separate the concerns best. It occurs to me that we could also write the
>> regs in the pre-rate change notifier, but this would turn the dependency
>> around and would mean that the regs are not written when entering backup
>> rates. The latter shouldn't be a problem but the reversed dependency would,
>> so I guess a custom function is the way to go, and we need to add at least
>> one anyway.
>
> It sounds like maybe moving enough code and data into the MC driver to
> handle frequency changes would be a good move. From the above it sounds
> like all the MC driver needs to know is that a frequency change is about
> to happen and what the new frequency is.
>
> In addition to exposing things like number of DRAM banks, etc.
>

Yes, so there are two ways to do this:
1) EMC calls tegra_mc_emem_update(freq) at the correct time
2) MC has an optional clock phandle to the EMC clock and registers a 
pre-change notifier.

Both work, but the dependency is reversed. In both cases, the other 
driver is also optional. In the first case, the EMC driver can give a 
warning if the call fails. (As mentioned, if the MC_EMEM updates don't 
happen, things still work but potentially with a hefty perf loss.)
TBH, I haven't yet decided which one is better. If you have an opinion,
I'll go with it.

>> The downstream kernel also overwrites most LA registers during EMC rate
>> change without regard for the driver-set values, and we might have to read
>> those values from the device tree too. Upstream can do this in rate change
>> notifiers if needed. I'll look into this a bit more.
>
> As I understand it, the latency allowance should be specified in terms
> of the maximum amount of time that requests are delayed, so that the
> proper values for the LA registers can be recomputed on an EMC rate
> change.

That's how I understand it too, but in downstream, the LA register 
values are hardcoded into EMC tables in platform data/DTS that are just 
written into the LA registers as-is during rate change.

>
> Thierry
>
> * Unknown Key
> * 0x7F3EB3A1
>

  reply	other threads:[~2014-07-14 10:54 UTC|newest]

Thread overview: 148+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-11 14:18 [PATCH 0/8] Tegra124 EMC (external memory controller) support Mikko Perttunen
2014-07-11 14:18 ` Mikko Perttunen
2014-07-11 14:18 ` Mikko Perttunen
2014-07-11 14:18 ` [PATCH 1/8] clk: tegra124: Remove old emc_mux and emc clocks Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18 ` [PATCH 2/8] ARM: tegra: Remove TEGRA124_CLK_EMC from tegra124-car.h Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
     [not found]   ` <1405088313-20048-3-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-21 22:37     ` Stephen Warren
2014-07-21 22:37       ` Stephen Warren
2014-07-21 22:37       ` Stephen Warren
2014-07-29  8:28       ` Mikko Perttunen
2014-07-29  8:28         ` Mikko Perttunen
     [not found] ` <1405088313-20048-1-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-11 14:18   ` [PATCH 3/8] ARM: tegra: Add PLL_M_UD and PLL_C_UD to tegra124-car binding header Mikko Perttunen
2014-07-11 14:18     ` Mikko Perttunen
2014-07-11 14:18     ` Mikko Perttunen
     [not found]     ` <1405088313-20048-4-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-08-25 17:41       ` Stephen Warren
2014-08-25 17:41         ` Stephen Warren
2014-08-25 17:41         ` Stephen Warren
     [not found]         ` <53FB7564.7020304-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-09-17 13:41           ` Peter De Schrijver
2014-09-17 13:41             ` Peter De Schrijver
2014-09-17 13:41             ` Peter De Schrijver
2014-07-11 14:18 ` [PATCH 4/8] clk: tegra124: Add PLL_M_UD and PLL_C_UD clocks Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18 ` [PATCH 5/8] of: Add Tegra124 EMC bindings Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
     [not found]   ` <1405088313-20048-6-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-11 14:51     ` Thierry Reding
2014-07-11 14:51       ` Thierry Reding
2014-07-11 14:51       ` Thierry Reding
2014-07-11 16:01       ` Mikko Perttunen
2014-07-11 16:01         ` Mikko Perttunen
     [not found]         ` <53C00A57.5070102-/1wQRMveznE@public.gmane.org>
2014-07-14  7:55           ` Mikko Perttunen
2014-07-14  7:55             ` Mikko Perttunen
2014-07-14  7:55             ` Mikko Perttunen
     [not found]             ` <53C38D07.4030402-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-14  8:15               ` Thierry Reding
2014-07-14  8:15                 ` Thierry Reding
2014-07-14  8:15                 ` Thierry Reding
2014-07-14  9:06                 ` Mikko Perttunen
2014-07-14  9:06                   ` Mikko Perttunen
2014-07-14  9:06                   ` Mikko Perttunen
     [not found]                   ` <53C39D98.9040802-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-14  9:31                     ` Thierry Reding
2014-07-14  9:31                       ` Thierry Reding
2014-07-14  9:31                       ` Thierry Reding
2014-07-14  9:57                       ` Mikko Perttunen
2014-07-14  9:57                         ` Mikko Perttunen
2014-07-14  9:57                         ` Mikko Perttunen
     [not found]                         ` <53C3A986.9050602-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-14 10:29                           ` Thierry Reding
2014-07-14 10:29                             ` Thierry Reding
2014-07-14 10:29                             ` Thierry Reding
2014-07-14 10:54                             ` Mikko Perttunen [this message]
2014-07-14 10:54                               ` Mikko Perttunen
2014-07-14 10:54                               ` Mikko Perttunen
     [not found]                               ` <53C3B6EC.9090904-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-14 11:10                                 ` Thierry Reding
2014-07-14 11:10                                   ` Thierry Reding
2014-07-14 11:10                                   ` Thierry Reding
2014-07-14 12:28                                   ` Mikko Perttunen
2014-07-14 12:28                                     ` Mikko Perttunen
2014-07-14 12:28                                     ` Mikko Perttunen
2014-07-11 16:43   ` Andrew Bresticker
2014-07-11 16:43     ` Andrew Bresticker
2014-07-11 16:48     ` Mikko Perttunen
2014-07-11 16:48       ` Mikko Perttunen
     [not found]     ` <CAL1qeaGHfjQhLHvgzt85hmbuY4FOG5-k=f80=CNvzPDEgi9_6w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-21 21:28       ` Stephen Warren
2014-07-21 21:28         ` Stephen Warren
2014-07-21 21:28         ` Stephen Warren
2014-07-21 22:52         ` Andrew Bresticker
2014-07-21 22:52           ` Andrew Bresticker
     [not found]           ` <CAL1qeaHtGQxCO3cGdeCRUYuk6mxei6z1B63-iZdBECEbFqGhHw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-22 16:45             ` Stephen Warren
2014-07-22 16:45               ` Stephen Warren
2014-07-22 16:45               ` Stephen Warren
     [not found]               ` <53CE9514.1050903-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-07-22 17:22                 ` Andrew Bresticker
2014-07-22 17:22                   ` Andrew Bresticker
2014-07-22 17:22                   ` Andrew Bresticker
     [not found]                   ` <CAL1qeaEkL+mxb0S4JhQbXBjyNyKJndffTSjMaAFQD6ooDJPd+Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-22 17:34                     ` Stephen Warren
2014-07-22 17:34                       ` Stephen Warren
2014-07-22 17:34                       ` Stephen Warren
     [not found]                       ` <53CEA093.6060106-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-07-29  8:30                         ` Mikko Perttunen
2014-07-29  8:30                           ` Mikko Perttunen
2014-07-29  8:30                           ` Mikko Perttunen
     [not found]                           ` <53D75B90.7050501-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-29 15:49                             ` Stephen Warren
2014-07-29 15:49                               ` Stephen Warren
2014-07-29 15:49                               ` Stephen Warren
     [not found]                               ` <53D7C276.2080204-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-07-31 10:48                                 ` Mikko Perttunen
2014-07-31 10:48                                   ` Mikko Perttunen
2014-07-31 10:48                                   ` Mikko Perttunen
     [not found]                                   ` <53DA1EF0.7060207-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-31 11:05                                     ` Mikko Perttunen
2014-07-31 11:05                                       ` Mikko Perttunen
2014-07-31 11:05                                       ` Mikko Perttunen
     [not found]                                       ` <53DA230E.7060903-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-31 15:32                                         ` Stephen Warren
2014-07-31 15:32                                           ` Stephen Warren
2014-07-31 15:32                                           ` Stephen Warren
2014-07-21 22:36   ` Stephen Warren
2014-07-21 22:36     ` Stephen Warren
2014-07-11 14:18 ` [PATCH 6/8] ARM: tegra: Add EMC to Tegra124 device tree Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18 ` [PATCH 7/8] ARM: tegra: Add EMC timings to Jetson TK1 " Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18 ` [PATCH 8/8] clk: tegra: Add EMC clock driver Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
2014-07-11 14:18   ` Mikko Perttunen
     [not found]   ` <1405088313-20048-9-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-22 16:57     ` Stephen Warren
2014-07-22 16:57       ` Stephen Warren
2014-07-22 16:57       ` Stephen Warren
     [not found]       ` <53CE97F2.80300-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-07-29  8:47         ` Mikko Perttunen
2014-07-29  8:47           ` Mikko Perttunen
2014-07-29  8:47           ` Mikko Perttunen
     [not found]           ` <53D75FA7.1030300-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-07-29 20:19             ` Mike Turquette
2014-07-29 20:19               ` Mike Turquette
2014-07-29 20:19               ` Mike Turquette
2014-07-29 22:14               ` Stephen Warren
2014-07-29 22:14                 ` Stephen Warren
2014-07-29 22:14                 ` Stephen Warren
     [not found]                 ` <53D81CD4.5010307-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-07-30  9:34                   ` Thierry Reding
2014-07-30  9:34                     ` Thierry Reding
2014-07-30  9:34                     ` Thierry Reding
2014-07-31 19:06                     ` Mike Turquette
2014-07-31 19:06                       ` Mike Turquette
2014-07-31 19:06                       ` Mike Turquette
2014-07-31 19:53                       ` Stephen Warren
2014-07-31 19:53                         ` Stephen Warren
2014-07-31 19:53                         ` Stephen Warren
     [not found]                         ` <53DA9ED2.5000003-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-07-31 23:08                           ` Mike Turquette
2014-07-31 23:08                             ` Mike Turquette
2014-07-31 23:08                             ` Mike Turquette
2014-08-01  6:31                             ` Mikko Perttunen
2014-08-01  6:31                               ` Mikko Perttunen
2014-08-01  8:40                       ` Thierry Reding
2014-08-01  8:40                         ` Thierry Reding
2014-08-25 17:40 ` [PATCH 0/8] Tegra124 EMC (external memory controller) support Stephen Warren
2014-08-25 17:40   ` Stephen Warren
     [not found]   ` <53FB7511.9090205-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-08-26  7:42     ` Mikko Perttunen
2014-08-26  7:42       ` Mikko Perttunen
2014-08-26  7:42       ` Mikko Perttunen
2014-08-26  7:47       ` Thierry Reding
2014-08-26  7:47         ` Thierry Reding
2014-08-26  8:02         ` Mikko Perttunen
2014-08-26  8:02           ` Mikko Perttunen
2014-08-26  8:02           ` Mikko Perttunen
     [not found]       ` <53FC3A5D.8030708-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-09-05 10:22         ` Tomeu Vizoso
2014-09-05 10:22           ` Tomeu Vizoso
2014-09-05 10:22           ` Tomeu Vizoso
2014-09-05 10:55           ` Mikko Perttunen
2014-09-05 10:55             ` Mikko Perttunen

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=53C3B6EC.9090904@nvidia.com \
    --to=mperttunen-ddmlm1+adcrqt0dzr+alfa@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mikko.perttunen-/1wQRMveznE@public.gmane.org \
    --cc=mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=pgaikwad-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@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.