Message ID | 1578986667-16041-20-git-send-email-skomatineni@nvidia.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | Move PMC clocks into Tegra PMC driver | expand |
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?
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.
20.01.2020 07:10, Sameer Pujar пишет: > > 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. > Well, perhaps this is indeed good enough for the time being. BTW, I didn't spot any suspend-resume problems using v8. Tested-by: Dmitry Osipenko <digetx@gmail.com> Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
On Mon, Jan 13, 2020 at 11:24:24PM -0800, Sowjanya Komatineni wrote: > 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(-) Acked-by: Thierry Reding <treding@nvidia.com>
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; }
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(-)