Re: [PATCH v8 19/22] ASoC: tegra: Enable audio mclk during tegra_asoc_utils_init

Sameer Pujar
2020-01-20T04:10:35Z

On 1/19/2020 8:44 PM, Dmitry Osipenko wrote:
> External email: Use caution opening links or attachments
>
>
> 14.01.2020 10:24, Sowjanya Komatineni пишет:
>> Tegra PMC clock clk_out_1 is dedicated for audio mclk from Tegra30
>> through Tegra210 and currently Tegra clock driver keeps the audio
>> mclk enabled.
>>
>> With the move of PMC clocks from clock driver into pmc driver,
>> audio mclk enable from clock driver is removed and this should be
>> taken care by the audio driver.
>>
>> tegra_asoc_utils_init calls tegra_asoc_utils_set_rate and audio mclk
>> rate configuration is not needed during init and set_rate is actually
>> done during hw_params callback.
>>
>> So, this patch removes tegra_asoc_utils_set_rate call and just leaves
>> the audio mclk enabled.
>>
>> Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
>> ---
>> sound/soc/tegra/tegra_asoc_utils.c | 11 +++++++++--
>> 1 file changed, 9 insertions(+), 2 deletions(-)
>>
>> diff --git a/sound/soc/tegra/tegra_asoc_utils.c b/sound/soc/tegra/tegra_asoc_utils.c
>> index 1dce5ad6e665..99584970f5f4 100644
>> --- a/sound/soc/tegra/tegra_asoc_utils.c
>> +++ b/sound/soc/tegra/tegra_asoc_utils.c
>> @@ -216,9 +216,16 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data,
>> data->clk_cdev1 = clk_out_1;
>> }
>>
>> - ret = tegra_asoc_utils_set_rate(data, 44100, 256 * 44100);
>> - if (ret)
>> + /*
>> + * FIXME: There is some unknown dependency between audio mclk disable
>> + * and suspend-resume functionality on Tegra30, although audio mclk is
>> + * only needed for audio.
>> + */
>> + ret = clk_prepare_enable(data->clk_cdev1);
>> + if (ret) {
>> + dev_err(data->dev, "Can't enable cdev1: %d\n", ret);
>> return ret;
>> + }
>>
>> return 0;
>> }
>>
> Shouldn't the clock be disabled on driver's removal?

I am not sure if we really need to do in this series as it does not
change the behavior from what was there earlier. Also there is already a
FIXME item here and we end up adding clock disable in remove() path of
multiple drivers, which is going to be removed once we address FIXME.