[PATCH v3 14/20] ASoC: fsl_micfil: Drop get_pdm_clk()
Sascha Hauer
s.hauer at pengutronix.de
Thu Apr 7 09:04:51 CEST 2022
On Thu, Apr 07, 2022 at 11:41:52AM +0800, Shengjiu Wang wrote:
> On Tue, Apr 5, 2022 at 4:00 PM Sascha Hauer <[1]s.hauer at pengutronix.de>
> wrote:
>
> 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 <[2]s.hauer at pengutronix.de>
> ---
> sound/soc/fsl/fsl_micfil.c | 38 +-------------------------------------
> 1 file changed, 1 insertion(+), 37 deletions(-)
>
> diff --git a/sound/soc/fsl/fsl_micfil.c b/sound/soc/fsl/fsl_micfil.c
> index 4b4b7fbbf5c4f..8335646a84d17 100644
> --- a/sound/soc/fsl/fsl_micfil.c
> +++ b/sound/soc/fsl/fsl_micfil.c
> @@ -111,42 +111,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)
> {
> @@ -155,7 +119,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 * 8);
>
> Where is micfil->osr assigned a value?
Should be MICFIL_OSR_DEFAULT instead.
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the Alsa-devel
mailing list