]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ASoC: fsl_spdif: Print actual sample rate for debug
authorNicolin Chen <Guangyu.Chen@freescale.com>
Wed, 30 Apr 2014 10:54:08 +0000 (18:54 +0800)
committerMark Brown <broonie@linaro.org>
Mon, 5 May 2014 19:27:39 +0000 (12:27 -0700)
People would simply know what the driver gets the best for the current
sample rate playback.

Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/fsl/fsl_spdif.c

index 1a92d7fe1a869ac947c476af869f54fc651e5b61..53e24ab952d3c276346aa8c060530cba9a8a64ae 100644 (file)
@@ -75,6 +75,7 @@ struct fsl_spdif_priv {
        struct platform_device *pdev;
        struct regmap *regmap;
        bool dpll_locked;
+       u16 txrate[SPDIF_TXRATE_MAX];
        u8 txclk_df[SPDIF_TXRATE_MAX];
        u8 sysclk_df[SPDIF_TXRATE_MAX];
        u8 txclk_src[SPDIF_TXRATE_MAX];
@@ -418,7 +419,8 @@ clk_set_bypass:
        regmap_update_bits(regmap, REG_SPDIF_STC,
                           STC_SYSCLK_DF_MASK, STC_SYSCLK_DF(sysclk_df));
 
-       dev_dbg(&pdev->dev, "set sample rate to %d\n", sample_rate);
+       dev_dbg(&pdev->dev, "set sample rate to %dHz for %dHz playback\n",
+                       spdif_priv->txrate[rate], sample_rate);
 
        return 0;
 }
@@ -1049,6 +1051,7 @@ static u32 fsl_spdif_txclk_caldiv(struct fsl_spdif_priv *spdif_priv,
                                savesub = 0;
                                spdif_priv->txclk_df[index] = txclk_df;
                                spdif_priv->sysclk_df[index] = sysclk_df;
+                               spdif_priv->txrate[index] = arate;
                                goto out;
                        } else if (arate / rate[index] == 1) {
                                /* A little bigger than expect */
@@ -1059,6 +1062,7 @@ static u32 fsl_spdif_txclk_caldiv(struct fsl_spdif_priv *spdif_priv,
                                savesub = sub;
                                spdif_priv->txclk_df[index] = txclk_df;
                                spdif_priv->sysclk_df[index] = sysclk_df;
+                               spdif_priv->txrate[index] = arate;
                        } else if (rate[index] / arate == 1) {
                                /* A little smaller than expect */
                                sub = (rate[index] - arate) * 100000;
@@ -1068,6 +1072,7 @@ static u32 fsl_spdif_txclk_caldiv(struct fsl_spdif_priv *spdif_priv,
                                savesub = sub;
                                spdif_priv->txclk_df[index] = txclk_df;
                                spdif_priv->sysclk_df[index] = sysclk_df;
+                               spdif_priv->txrate[index] = arate;
                        }
                }
        }
@@ -1118,6 +1123,8 @@ static int fsl_spdif_probe_txclk(struct fsl_spdif_priv *spdif_priv,
        if (spdif_priv->txclk[index] == spdif_priv->sysclk)
                dev_dbg(&pdev->dev, "use sysclk df %d for %dHz sample rate\n",
                                spdif_priv->sysclk_df[index], rate[index]);
+       dev_dbg(&pdev->dev, "the best rate for %dHz sample rate is %dHz\n",
+                       rate[index], spdif_priv->txrate[index]);
 
        return 0;
 }