Re: [PATCH v7 00/21] Move PMC clocks into Tegra PMC driver

From: Sameer Pujar
Date: Thu Jan 09 2020 - 23:43:50 EST



On 1/10/2020 10:06 AM, Sowjanya Komatineni wrote:

On 1/9/20 7:32 PM, Sowjanya Komatineni wrote:

On 1/9/20 7:24 PM, Sowjanya Komatineni wrote:

On 1/9/20 5:39 PM, Sowjanya Komatineni wrote:

On 1/9/20 11:44 AM, Dmitry Osipenko wrote:
External email: Use caution opening links or attachments


08.01.2020 07:24, Sowjanya Komatineni ÐÐÑÐÑ:
This patch series moves Tegra PMC clocks from clock driver to pmc driver
along with the device trees changes and audio driver which uses one of
the pmc clock for audio mclk.

Tegra PMC has clk_out_1, clk_out_2, clk_out_3 and blink controls which
are currently registered by Tegra clock driver using clk_regiser_mux and
clk_register_gate which performs direct Tegra PMC register access.

When Tegra PMC is in secure mode, any access from non-secure world will
not go through.

This patch series adds these Tegra PMC clocks and blink controls to Tegra
PMC driver with PMC as clock provider and removes them from Tegra clock
driver.

PMC clock clk_out_1 is dedicated for audio mclk from Tegra30 thru Tegra210
and clock driver does inital parent configuration for it and enables them.
But this clock should be taken care by audio driver as there is no need
to have this clock pre enabled.

So, this series also includes patch that updates ASoC driver to take
care of parent configuration for mclk if device tree don't specify
initial parent configuration using assigned-clock-parents and controls
audio mclk enable/disable during ASoC machine startup and shutdown.

DTs are also updated to use clk_out_1 as audio mclk rather than extern1.

This series also includes a patch for mclk fallback to extern1 when
retrieving mclk fails to have this backward compatible of new DT with
old kernels.
Suspend-resume doesn't work anymore, reverting this series helps. I
don't have any other information yet, please take a look.
Thanks Dmitry. Will test suspend resume and check..

I see if we leave audio mclk (cdev1) enabled during tegra_asoc_utils_init, suspend resume works.

Without audio mclk enabled during tegra_asoc_utils_init, somehow it prevents entry to suspend on Tegra30 platform.

Will look in detail..

audio mclk is only needed for audio and werid that having it not enabled all the time like in current clock driver prevents suspend entry on Tegra30

Looks like this issue is masked earlier with having mclk enabled all the time by clock driver.

On linux-next without this patch series, I just disabled mclk to be enabled all the time (removed set_rate from utils_init) and also disabled default enable from clock driver.

So somehow disabling mclk is preventing suspend entry.

This is strange.


Probably debugging suspend issue on Tegra30 when audio mclk is disabled can be done separately and will keep audio mclk enabled in asoc_utils_init with comment mentioning this issue and fix as TBD to move on with PMC clock fixes.

Sounds fine with me as the suspend/resume issue is not introduced in the current series. It can be addressed separately.