From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre-Louis Bossart Subject: Re: [PATCH] ASoC: cht-bsw-rt5645: Also enable/disable the clock on Cherry Trail Date: Mon, 16 Oct 2017 09:38:34 -0500 Message-ID: References: <20171014122213.7769-1-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by alsa0.perex.cz (Postfix) with ESMTP id 5C921266D08 for ; Mon, 16 Oct 2017 16:38:37 +0200 (CEST) In-Reply-To: <20171014122213.7769-1-hdegoede@redhat.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Hans de Goede , Mark Brown , Bard Liao , Oder Chiou Cc: alsa-devel@alsa-project.org, Takashi Iwai List-Id: alsa-devel@alsa-project.org On 10/14/17 7:22 AM, Hans de Goede wrote: > Just like on Bay Trail the codec mclk is also controlled by the common > clk framework as pmc_plt_clk_3 on Cherry Trail and the cht-bsw-rt5645 > needs to control it so that it has the right frequency and gets > en/disabled as appropriate. This is already merged by Mark, I submitted this change a couple of weeks ago. > > This fixes the sound crackling (like a bonfire) when the clock was not > set up properly before Linux boots and turns the clock off when not in > use saving power. > > BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=196351 > Signed-off-by: Hans de Goede > --- > sound/soc/intel/boards/cht_bsw_rt5645.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/sound/soc/intel/boards/cht_bsw_rt5645.c b/sound/soc/intel/boards/cht_bsw_rt5645.c > index 5bcde01d15e6..d553e2b67c92 100644 > --- a/sound/soc/intel/boards/cht_bsw_rt5645.c > +++ b/sound/soc/intel/boards/cht_bsw_rt5645.c > @@ -682,14 +682,12 @@ static int snd_cht_mc_probe(struct platform_device *pdev) > cht_rt5645_cpu_dai_name; > } > > - if (is_valleyview()) { > - drv->mclk = devm_clk_get(&pdev->dev, "pmc_plt_clk_3"); > - if (IS_ERR(drv->mclk)) { > - dev_err(&pdev->dev, > - "Failed to get MCLK from pmc_plt_clk_3: %ld\n", > - PTR_ERR(drv->mclk)); > - return PTR_ERR(drv->mclk); > - } > + drv->mclk = devm_clk_get(&pdev->dev, "pmc_plt_clk_3"); > + if (IS_ERR(drv->mclk)) { > + dev_err(&pdev->dev, > + "Failed to get MCLK from pmc_plt_clk_3: %ld\n", > + PTR_ERR(drv->mclk)); > + return PTR_ERR(drv->mclk); > } > > snd_soc_card_set_drvdata(card, drv); >