]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
ASoC: fsl_micfil: Drop get_pdm_clk()
authorSascha Hauer <s.hauer@pengutronix.de>
Thu, 14 Apr 2022 16:22:42 +0000 (18:22 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 19 Apr 2022 11:06:23 +0000 (12:06 +0100)
get_pdm_clk() calculates the PDM clock based on the quality setting,
but really the PDM clock is independent of the quality, it's always
rate * 4 * micfil->osr. Just drop the function and do the calculation
in the caller.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com>
Link: https://lore.kernel.org/r/20220414162249.3934543-15-s.hauer@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_micfil.c

index a35c1c580dbc1e2740c9fe3aaad3f43005045873..3ddc988b4fe65328bebe04998486cb33290ce069 100644 (file)
@@ -110,42 +110,6 @@ static const struct snd_kcontrol_new fsl_micfil_snd_controls[] = {
                     snd_soc_get_enum_double, snd_soc_put_enum_double),
 };
 
-static inline int get_pdm_clk(struct fsl_micfil *micfil,
-                             unsigned int rate)
-{
-       u32 ctrl2_reg;
-       int qsel;
-       int bclk;
-       int osr = MICFIL_OSR_DEFAULT;
-
-       regmap_read(micfil->regmap, REG_MICFIL_CTRL2, &ctrl2_reg);
-       qsel = FIELD_GET(MICFIL_CTRL2_QSEL, ctrl2_reg);
-
-       switch (qsel) {
-       case MICFIL_QSEL_HIGH_QUALITY:
-               bclk = rate * 8 * osr / 2; /* kfactor = 0.5 */
-               break;
-       case MICFIL_QSEL_MEDIUM_QUALITY:
-       case MICFIL_QSEL_VLOW0_QUALITY:
-               bclk = rate * 4 * osr * 1; /* kfactor = 1 */
-               break;
-       case MICFIL_QSEL_LOW_QUALITY:
-       case MICFIL_QSEL_VLOW1_QUALITY:
-               bclk = rate * 2 * osr * 2; /* kfactor = 2 */
-               break;
-       case MICFIL_QSEL_VLOW2_QUALITY:
-               bclk = rate * osr * 4; /* kfactor = 4 */
-               break;
-       default:
-               dev_err(&micfil->pdev->dev,
-                       "Please make sure you select a valid quality.\n");
-               bclk = -1;
-               break;
-       }
-
-       return bclk;
-}
-
 static inline int get_clk_div(struct fsl_micfil *micfil,
                              unsigned int rate)
 {
@@ -154,7 +118,7 @@ static inline int get_clk_div(struct fsl_micfil *micfil,
 
        mclk_rate = clk_get_rate(micfil->mclk);
 
-       clk_div = mclk_rate / (get_pdm_clk(micfil, rate) * 2);
+       clk_div = mclk_rate / (rate * MICFIL_OSR_DEFAULT * 8);
 
        return clk_div;
 }