All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Osipenko <digetx@gmail.com>
To: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: Sowjanya Komatineni <skomatineni@nvidia.com>,
	thierry.reding@gmail.com, jonathanh@nvidia.com,
	mperttunen@nvidia.com, sboyd@kernel.org,
	gregkh@linuxfoundation.org, tglx@linutronix.de,
	robh+dt@kernel.org, mark.rutland@arm.com, allison@lohutok.net,
	pgaikwad@nvidia.com, mturquette@baylibre.com,
	horms+renesas@verge.net.au, Jisheng.Zhang@synaptics.com,
	krzk@kernel.org, arnd@arndb.de, spujar@nvidia.com,
	josephl@nvidia.com, vidyas@nvidia.com, daniel.lezcano@linaro.org,
	mmaddireddy@nvidia.com, markz@nvidia.com,
	devicetree@vger.kernel.org, linux-clk@vger.kernel.org,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org,
	lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz,
	tiwai@suse.com, alexios.zavras@intel.com,
	alsa-devel@alsa-project.org
Subject: Re: [PATCH v3 03/15] soc: tegra: Add Tegra PMC clock registrations into PMC driver
Date: Mon, 16 Dec 2019 17:23:23 +0300	[thread overview]
Message-ID: <53653719-f8e5-f6d1-a1d1-e53c7ccd7636@gmail.com> (raw)
In-Reply-To: <20191216122005.GB28289@pdeschrijver-desktop.Nvidia.com>

16.12.2019 15:20, Peter De Schrijver пишет:
> On Thu, Dec 12, 2019 at 04:43:53AM +0300, Dmitry Osipenko wrote:
>> External email: Use caution opening links or attachments
>>
>>
>> 11.12.2019 18:10, Peter De Schrijver пишет:
>>> On Tue, Dec 10, 2019 at 08:41:56PM +0300, Dmitry Osipenko wrote:
>>>
>>> ..
>>>
>>>>>
>>>>> PMC clock gate is based on the state of CLKx_ACCEPT_REQ and FORCE_EN
>>>>> like explained above.
>>>>>
>>>>> CLKx_ACCEPT_REQ is 0 default and FORCE_EN acts as gate to enable/disable
>>>>> EXTPERIPH clock output to PMC CLK_OUT_1/2/3.
>>>>
>>>> [and to enable OSC as well]
>>>>
>>>>> So I believe we need to register as MUX and Gate rather than as a single
>>>>> clock. Please confirm.
>>>>
>>>> 1. The force-enabling is applied to both OSC and EXTERN sources of
>>>> PMC_CLK_OUT_x by PMC at once.
>>>>
>>>> 2. Both of PMC's force-enabling and OSC/EXTERN selection is internal to PMC.
>>>>
>>>> Should be better to define it as a single "pmc_clk_out_x". I don't see
>>>> any good reasons for differentiating PMC's Gate from the MUX, it's a
>>>> single hardware unit from a point of view of the rest of the system.
>>>>
>>>> Peter, do you have any objections?
>>>
>>> The reason to have separate gate and mux clocks, is to preserve compatibility
>>> with existing users.
>>> Otherwise the current users would need to figure out if there's a
>>> single clock or 2 clocks to configure. I don't think adding that code in
>>> each user is worth it only to have a sligthly nicer modelling of the
>>> hardware.
>>
>> Could you please clarify what do you mean by the "existing users"?
>> AFAIK, nothing in kernel uses mux clocks.
> 
> The DT clk bindings allow for parent initialization, so it's certainly
> possible there are some DTs which rely on this. We promised to never
> break the bindings, which changing to 1 clock would do. 

What about this variant:

  1. Keep the old CaR code in place.

  2. Make CaR driver to scan whole device-tree for the legacy PMC clocks.

  3. If legacy clock is found, then register PMC clocks from CaR.

  4. If legacy clocks are not found, then don't register PMC clocks from
CaR.

  5. Add clocks support to the PMC driver and only register them if
legacy clocks are not registered by CaR.

Now both old and new DTBs can co-exist and work, everyone happy.

WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Osipenko <digetx@gmail.com>
To: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: mark.rutland@arm.com, alsa-devel@alsa-project.org,
	pgaikwad@nvidia.com, lgirdwood@gmail.com,
	mturquette@baylibre.com, mperttunen@nvidia.com,
	thierry.reding@gmail.com, josephl@nvidia.com,
	linux-clk@vger.kernel.org, mmaddireddy@nvidia.com,
	daniel.lezcano@linaro.org, krzk@kernel.org, jonathanh@nvidia.com,
	spujar@nvidia.com, devicetree@vger.kernel.org, arnd@arndb.de,
	markz@nvidia.com, alexios.zavras@intel.com, robh+dt@kernel.org,
	tiwai@suse.com, linux-tegra@vger.kernel.org,
	horms+renesas@verge.net.au, tglx@linutronix.de,
	allison@lohutok.net, sboyd@kernel.org,
	gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
	vidyas@nvidia.com, Jisheng.Zhang@synaptics.com,
	broonie@kernel.org, Sowjanya Komatineni <skomatineni@nvidia.com>
Subject: Re: [alsa-devel] [PATCH v3 03/15] soc: tegra: Add Tegra PMC clock registrations into PMC driver
Date: Mon, 16 Dec 2019 17:23:23 +0300	[thread overview]
Message-ID: <53653719-f8e5-f6d1-a1d1-e53c7ccd7636@gmail.com> (raw)
In-Reply-To: <20191216122005.GB28289@pdeschrijver-desktop.Nvidia.com>

16.12.2019 15:20, Peter De Schrijver пишет:
> On Thu, Dec 12, 2019 at 04:43:53AM +0300, Dmitry Osipenko wrote:
>> External email: Use caution opening links or attachments
>>
>>
>> 11.12.2019 18:10, Peter De Schrijver пишет:
>>> On Tue, Dec 10, 2019 at 08:41:56PM +0300, Dmitry Osipenko wrote:
>>>
>>> ..
>>>
>>>>>
>>>>> PMC clock gate is based on the state of CLKx_ACCEPT_REQ and FORCE_EN
>>>>> like explained above.
>>>>>
>>>>> CLKx_ACCEPT_REQ is 0 default and FORCE_EN acts as gate to enable/disable
>>>>> EXTPERIPH clock output to PMC CLK_OUT_1/2/3.
>>>>
>>>> [and to enable OSC as well]
>>>>
>>>>> So I believe we need to register as MUX and Gate rather than as a single
>>>>> clock. Please confirm.
>>>>
>>>> 1. The force-enabling is applied to both OSC and EXTERN sources of
>>>> PMC_CLK_OUT_x by PMC at once.
>>>>
>>>> 2. Both of PMC's force-enabling and OSC/EXTERN selection is internal to PMC.
>>>>
>>>> Should be better to define it as a single "pmc_clk_out_x". I don't see
>>>> any good reasons for differentiating PMC's Gate from the MUX, it's a
>>>> single hardware unit from a point of view of the rest of the system.
>>>>
>>>> Peter, do you have any objections?
>>>
>>> The reason to have separate gate and mux clocks, is to preserve compatibility
>>> with existing users.
>>> Otherwise the current users would need to figure out if there's a
>>> single clock or 2 clocks to configure. I don't think adding that code in
>>> each user is worth it only to have a sligthly nicer modelling of the
>>> hardware.
>>
>> Could you please clarify what do you mean by the "existing users"?
>> AFAIK, nothing in kernel uses mux clocks.
> 
> The DT clk bindings allow for parent initialization, so it's certainly
> possible there are some DTs which rely on this. We promised to never
> break the bindings, which changing to 1 clock would do. 

What about this variant:

  1. Keep the old CaR code in place.

  2. Make CaR driver to scan whole device-tree for the legacy PMC clocks.

  3. If legacy clock is found, then register PMC clocks from CaR.

  4. If legacy clocks are not found, then don't register PMC clocks from
CaR.

  5. Add clocks support to the PMC driver and only register them if
legacy clocks are not registered by CaR.

Now both old and new DTBs can co-exist and work, everyone happy.
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2019-12-16 14:23 UTC|newest]

Thread overview: 153+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-06  2:48 [PATCH v3 00/15] Move PMC clocks into Tegra PMC driver Sowjanya Komatineni
2019-12-06  2:48 ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48 ` Sowjanya Komatineni
2019-12-06  2:48 ` [PATCH v3 01/15] dt-bindings: soc: tegra-pmc: Add Tegra PMC clock bindings Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-06 18:58   ` Michał Mirosław
2019-12-06 18:58     ` [alsa-devel] " Michał Mirosław
2019-12-06  2:48 ` [PATCH v3 02/15] dt-bindings: tegra: Convert Tegra PMC bindings to YAML Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-06  2:48 ` [PATCH v3 03/15] soc: tegra: Add Tegra PMC clock registrations into PMC driver Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-07 14:28   ` Dmitry Osipenko
2019-12-07 14:28     ` [alsa-devel] " Dmitry Osipenko
2019-12-07 15:47     ` Dmitry Osipenko
2019-12-07 15:47       ` [alsa-devel] " Dmitry Osipenko
2019-12-07 15:53       ` Dmitry Osipenko
2019-12-07 15:53         ` [alsa-devel] " Dmitry Osipenko
2019-12-07 16:00         ` Dmitry Osipenko
2019-12-07 16:00           ` [alsa-devel] " Dmitry Osipenko
2019-12-07 19:59           ` Sowjanya Komatineni
2019-12-07 19:59             ` Sowjanya Komatineni
2019-12-07 21:36             ` Sowjanya Komatineni
2019-12-07 21:36               ` Sowjanya Komatineni
2019-12-09 20:12               ` Dmitry Osipenko
2019-12-09 20:12                 ` [alsa-devel] " Dmitry Osipenko
2019-12-09 20:46                 ` Sowjanya Komatineni
2019-12-09 20:46                   ` Sowjanya Komatineni
2019-12-09 23:03                   ` Sowjanya Komatineni
2019-12-09 23:03                     ` Sowjanya Komatineni
2019-12-10 16:53                     ` Sowjanya Komatineni
2019-12-10 16:53                       ` Sowjanya Komatineni
2019-12-10 17:41                       ` Dmitry Osipenko
2019-12-10 17:41                         ` [alsa-devel] " Dmitry Osipenko
2019-12-11  1:06                         ` Sowjanya Komatineni
2019-12-11  1:06                           ` Sowjanya Komatineni
2019-12-11 18:50                           ` Sowjanya Komatineni
2019-12-11 18:50                             ` Sowjanya Komatineni
2019-12-12  1:39                             ` Dmitry Osipenko
2019-12-12  1:39                               ` [alsa-devel] " Dmitry Osipenko
2019-12-12  3:45                               ` Sowjanya Komatineni
2019-12-12  3:45                                 ` Sowjanya Komatineni
2019-12-12  3:54                                 ` Sowjanya Komatineni
2019-12-12  3:54                                   ` Sowjanya Komatineni
2019-12-12 22:13                                   ` Dmitry Osipenko
2019-12-12 22:13                                     ` [alsa-devel] " Dmitry Osipenko
2019-12-11 15:10                         ` Peter De Schrijver
2019-12-11 15:10                           ` [alsa-devel] " Peter De Schrijver
2019-12-11 15:10                           ` Peter De Schrijver
2019-12-12  1:43                           ` Dmitry Osipenko
2019-12-12  1:43                             ` [alsa-devel] " Dmitry Osipenko
2019-12-16 12:20                             ` Peter De Schrijver
2019-12-16 12:20                               ` [alsa-devel] " Peter De Schrijver
2019-12-16 12:20                               ` Peter De Schrijver
2019-12-16 14:23                               ` Dmitry Osipenko [this message]
2019-12-16 14:23                                 ` [alsa-devel] " Dmitry Osipenko
2019-12-16 15:11                                 ` Peter De Schrijver
2019-12-16 15:11                                   ` [alsa-devel] " Peter De Schrijver
2019-12-16 15:11                                   ` Peter De Schrijver
2019-12-16 15:24                                   ` Peter De Schrijver
2019-12-16 15:24                                     ` [alsa-devel] " Peter De Schrijver
2019-12-16 15:24                                     ` Peter De Schrijver
2019-12-16 15:49                                     ` Dmitry Osipenko
2019-12-16 15:49                                       ` [alsa-devel] " Dmitry Osipenko
2019-12-10 17:41                   ` Dmitry Osipenko
2019-12-10 17:41                     ` [alsa-devel] " Dmitry Osipenko
     [not found]                     ` <22a2f8bd-561d-f4c6-4eef-bb61095c53b2@nvidia.com>
2019-12-10 18:30                       ` Dmitry Osipenko
2019-12-10 18:30                         ` [alsa-devel] " Dmitry Osipenko
2019-12-10 19:18                         ` Sowjanya Komatineni
2019-12-10 19:18                           ` Sowjanya Komatineni
2019-12-10 20:31                           ` Dmitry Osipenko
2019-12-10 20:31                             ` [alsa-devel] " Dmitry Osipenko
2019-12-06  2:48 ` [PATCH v3 04/15] dt-bindings: soc: tegra-pmc: Add id for Tegra PMC blink control Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-06  2:48 ` [PATCH v3 05/15] soc: pmc: Add blink output clock registration to Tegra PMC Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-06  2:48 ` [PATCH v3 06/15] clk: tegra: Remove tegra_pmc_clk_init along with clk ids Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-07 14:33   ` Dmitry Osipenko
2019-12-07 14:33     ` [alsa-devel] " Dmitry Osipenko
2019-12-07 14:43     ` Dmitry Osipenko
2019-12-07 14:43       ` [alsa-devel] " Dmitry Osipenko
2019-12-07 15:04       ` Dmitry Osipenko
2019-12-07 15:04         ` [alsa-devel] " Dmitry Osipenko
2019-12-07 19:35         ` Sowjanya Komatineni
2019-12-07 19:35           ` Sowjanya Komatineni
2019-12-07 23:24           ` Dmitry Osipenko
2019-12-07 23:24             ` [alsa-devel] " Dmitry Osipenko
2019-12-06  2:48 ` [PATCH v3 07/15] dt-bindings: clock: tegra: Remove pmc clock ids from clock dt-bindings Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-06  2:48 ` [PATCH v3 08/15] ASoC: tegra: Add audio mclk control through clk_out_1 and extern1 Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-07 14:58   ` Dmitry Osipenko
2019-12-07 14:58     ` [alsa-devel] " Dmitry Osipenko
2019-12-07 19:20     ` Sowjanya Komatineni
2019-12-07 19:20       ` Sowjanya Komatineni
2019-12-09 20:06       ` Dmitry Osipenko
2019-12-09 20:06         ` [alsa-devel] " Dmitry Osipenko
2019-12-09 23:05         ` Sowjanya Komatineni
2019-12-09 23:05           ` Sowjanya Komatineni
2019-12-09 23:12           ` Dmitry Osipenko
2019-12-09 23:12             ` [alsa-devel] " Dmitry Osipenko
2019-12-10  0:54             ` Sowjanya Komatineni
2019-12-10  0:54               ` Sowjanya Komatineni
2019-12-17  1:29       ` Sowjanya Komatineni
2019-12-17  1:29         ` Sowjanya Komatineni
2019-12-17 15:36         ` Dmitry Osipenko
2019-12-17 15:36           ` [alsa-devel] " Dmitry Osipenko
2019-12-17 16:12           ` Sowjanya Komatineni
2019-12-17 16:12             ` Sowjanya Komatineni
2019-12-17 16:16             ` Dmitry Osipenko
2019-12-17 16:16               ` [alsa-devel] " Dmitry Osipenko
2019-12-17 16:39               ` Sowjanya Komatineni
2019-12-17 16:39                 ` Sowjanya Komatineni
2019-12-17 16:46                 ` Dmitry Osipenko
2019-12-17 16:46                   ` [alsa-devel] " Dmitry Osipenko
2019-12-06  2:48 ` [PATCH v3 09/15] ASoC: tegra: Add fallback for audio mclk Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-06 17:49   ` Sowjanya Komatineni
2019-12-06 17:49     ` [alsa-devel] " Sowjanya Komatineni
2019-12-06 17:49     ` Sowjanya Komatineni
2019-12-06 17:56     ` Greg KH
2019-12-06 17:56       ` [alsa-devel] " Greg KH
2019-12-09 16:40   ` Mark Brown
2019-12-09 16:40     ` [alsa-devel] " Mark Brown
2019-12-09 20:31     ` Dmitry Osipenko
2019-12-09 20:31       ` [alsa-devel] " Dmitry Osipenko
2019-12-09 20:47       ` Mark Brown
2019-12-09 20:47         ` [alsa-devel] " Mark Brown
2019-12-10 18:24         ` Dmitry Osipenko
2019-12-10 18:24           ` [alsa-devel] " Dmitry Osipenko
2019-12-10 18:59           ` Mark Brown
2019-12-10 18:59             ` [alsa-devel] " Mark Brown
2019-12-12  2:17             ` Dmitry Osipenko
2019-12-12  2:17               ` [alsa-devel] " Dmitry Osipenko
2019-12-06  2:48 ` [PATCH v3 10/15] clk: tegra: Remove extern1 and cdev1 from clocks inittable Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-06  2:48 ` [PATCH v3 11/15] ARM: dts: tegra: Add clock-cells property to pmc Sowjanya Komatineni
2019-12-06  2:48   ` [alsa-devel] " Sowjanya Komatineni
2019-12-06  2:48   ` Sowjanya Komatineni
2019-12-07 14:26 ` [PATCH v3 00/15] Move PMC clocks into Tegra PMC driver Dmitry Osipenko
2019-12-07 14:26   ` [alsa-devel] " Dmitry Osipenko
2019-12-07 19:22   ` Sowjanya Komatineni
2019-12-07 19:22     ` Sowjanya Komatineni

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=53653719-f8e5-f6d1-a1d1-e53c7ccd7636@gmail.com \
    --to=digetx@gmail.com \
    --cc=Jisheng.Zhang@synaptics.com \
    --cc=alexios.zavras@intel.com \
    --cc=allison@lohutok.net \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnd@arndb.de \
    --cc=broonie@kernel.org \
    --cc=daniel.lezcano@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=horms+renesas@verge.net.au \
    --cc=jonathanh@nvidia.com \
    --cc=josephl@nvidia.com \
    --cc=krzk@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=markz@nvidia.com \
    --cc=mmaddireddy@nvidia.com \
    --cc=mperttunen@nvidia.com \
    --cc=mturquette@baylibre.com \
    --cc=pdeschrijver@nvidia.com \
    --cc=perex@perex.cz \
    --cc=pgaikwad@nvidia.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=skomatineni@nvidia.com \
    --cc=spujar@nvidia.com \
    --cc=tglx@linutronix.de \
    --cc=thierry.reding@gmail.com \
    --cc=tiwai@suse.com \
    --cc=vidyas@nvidia.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.