[alsa-devel] [PATCH v2 05/13] ASoC: qcom: support bitclk and osrclk per i2s port

Kenneth Westfield kwestfie at codeaurora.org
Sun May 17 18:14:44 CEST 2015


On Sat, May 16, 2015 at 05:32:42AM -0700, Srinivas Kandagatla wrote:
> This patch adds support to allow bitclk and osrclk per i2s dai port.
> on APQ8016 there are 4 i2s ports each one has its own bit clks.
> 
> Without this patch its not possible to support multiple i2s ports in the
> lpass driver.

> @@ -400,18 +402,34 @@ int asoc_qcom_lpass_cpu_platform_probe(struct
> platform_device *pdev)
>  	if (variant->init)
>  		variant->init(pdev);
>  
> -	drvdata->mi2s_osr_clk = devm_clk_get(&pdev->dev, "mi2s-osr-clk");
> -	if (IS_ERR(drvdata->mi2s_osr_clk)) {
> -		dev_err(&pdev->dev, "%s() error getting mi2s-osr-clk:
> %ld\n",
> -				__func__, PTR_ERR(drvdata->mi2s_osr_clk));
> -		return PTR_ERR(drvdata->mi2s_osr_clk);
> -	}
> -
> -	drvdata->mi2s_bit_clk = devm_clk_get(&pdev->dev, "mi2s-bit-clk");
> -	if (IS_ERR(drvdata->mi2s_bit_clk)) {
> -		dev_err(&pdev->dev, "%s() error getting mi2s-bit-clk:
> %ld\n",
> -				__func__, PTR_ERR(drvdata->mi2s_bit_clk));
> -		return PTR_ERR(drvdata->mi2s_bit_clk);
> +	for (i = 0; i < variant->num_dai; i++) {
> +		dai_id = variant->dai_driver[i].id;
> +		if (variant->num_dai > 1)
> +			sprintf(clk_name, "mi2s-osr-clk%d", i);
> +		else
> +			sprintf(clk_name, "mi2s-osr-clk");
> +
> +		drvdata->mi2s_osr_clk[dai_id] = devm_clk_get(&pdev->dev,
> +								clk_name);
> +		if (IS_ERR(drvdata->mi2s_osr_clk[dai_id])) {
> +			dev_err(&pdev->dev,
> +				"%s() error getting mi2s-osr-clk: %ld\n",
> +				__func__,
> +			return PTR_ERR(drvdata->mi2s_osr_clk[dai_id]));

Should the previous two lines be:

+                             __func__, PTR_ERR(drvdata->mi2s_osr_clk[dai_id]));
+                     return PTR_ERR(drvdata->mi2s_osr_clk[dai_id]);

as you remove the return in patch 6?

> +		}
> +
> +		if (variant->num_dai > 1)
> +			sprintf(clk_name, "mi2s-bit-clk%d", i);
> +		else
> +			sprintf(clk_name, "mi2s-bit-clk");
> +
> +		drvdata->mi2s_bit_clk[dai_id] = devm_clk_get(&pdev->dev,
> clk_name);
> +		if (IS_ERR(drvdata->mi2s_bit_clk[dai_id])) {
> +			dev_err(&pdev->dev,
> +				"%s() error getting mi2s-bit-clk: %ld\n",
> +				__func__,
> PTR_ERR(drvdata->mi2s_bit_clk[i]));
> +			return PTR_ERR(drvdata->mi2s_bit_clk[dai_id]);
> +		}
>  	}

-- 
Kenneth Westfield
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
a Linux Foundation Collaborative Project


More information about the Alsa-devel mailing list