On Tue, Apr 5, 2022 at 4:00 PM Sascha Hauer s.hauer@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 s.hauer@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?
return clk_div;}
2.30.2