diff mbox

ASoC: cht-bsw-rt5645: Also enable/disable the clock on Cherry Trail

Message ID 20171014122213.7769-1-hdegoede@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hans de Goede Oct. 14, 2017, 12:22 p.m. UTC
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 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 <hdegoede@redhat.com>
---
 sound/soc/intel/boards/cht_bsw_rt5645.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

Comments

Pierre-Louis Bossart Oct. 16, 2017, 2:38 p.m. UTC | #1
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 <hdegoede@redhat.com>
> ---
>   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);
>
diff mbox

Patch

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);