6 Dec
2017
6 Dec
'17
12:55 p.m.
On Tue, Dec 05, 2017 at 03:33:26PM -0800, Stephen Boyd wrote:
On 11/22, Sriram Periyasamy wrote:
+static int platform_clock_control(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *k, int event)
+{
- struct snd_soc_dapm_context *dapm = w->dapm;
- struct snd_soc_card *card = dapm->card;
- struct kbl_rt5663_private *priv = snd_soc_card_get_drvdata(card);
- int ret = 0;
- /*
* MCLK/SCLK need to be ON early for a successful synchronization of
* codec internal clock. And the clocks are turned off during
* POST_PMD after the stream is stopped.
*/
- switch (event) {
- case SND_SOC_DAPM_PRE_PMU:
if (__clk_is_enabled(priv->mclk))
Why do you need to use this in your consumer driver? Do you not know if the clk is on at boot time and then you need to make sure you don't call clk_set_rate() on an already enabled clk? If so, why can't the provider driver for mclk take care of that and do nothing if the clk is enabled already and clk_set_rate() is called with the same rate as what's in the hardware?
yes makes sense, we will move the check of __clk_is_enabled() in the provider driver and let that return success if it is already at same rate etc and is enabled.
--
~Vinod