Skip to content

Commit aa4f76e

Browse files
TE-N-ShengjiuWangbroonie
authored andcommitted
ASoC: fsl_micfil: Differentiate register access permission for platforms
On i.MX9x platforms, the REG_MICFIL_FSYNC_CTRL, REG_MICFIL_VERID, REG_MICFIL_PARAM are added, but they are not existed on i.MX8x platforms. Use the existed micfil->soc->use_verid to distinguish the access permission for these platforms. Signed-off-by: Shengjiu Wang <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 4ddd51c commit aa4f76e

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

sound/soc/fsl/fsl_micfil.c

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -855,6 +855,8 @@ static const struct reg_default fsl_micfil_reg_defaults[] = {
855855

856856
static bool fsl_micfil_readable_reg(struct device *dev, unsigned int reg)
857857
{
858+
struct fsl_micfil *micfil = dev_get_drvdata(dev);
859+
858860
switch (reg) {
859861
case REG_MICFIL_CTRL1:
860862
case REG_MICFIL_CTRL2:
@@ -872,9 +874,6 @@ static bool fsl_micfil_readable_reg(struct device *dev, unsigned int reg)
872874
case REG_MICFIL_DC_CTRL:
873875
case REG_MICFIL_OUT_CTRL:
874876
case REG_MICFIL_OUT_STAT:
875-
case REG_MICFIL_FSYNC_CTRL:
876-
case REG_MICFIL_VERID:
877-
case REG_MICFIL_PARAM:
878877
case REG_MICFIL_VAD0_CTRL1:
879878
case REG_MICFIL_VAD0_CTRL2:
880879
case REG_MICFIL_VAD0_STAT:
@@ -883,13 +882,21 @@ static bool fsl_micfil_readable_reg(struct device *dev, unsigned int reg)
883882
case REG_MICFIL_VAD0_NDATA:
884883
case REG_MICFIL_VAD0_ZCD:
885884
return true;
885+
case REG_MICFIL_FSYNC_CTRL:
886+
case REG_MICFIL_VERID:
887+
case REG_MICFIL_PARAM:
888+
if (micfil->soc->use_verid)
889+
return true;
890+
fallthrough;
886891
default:
887892
return false;
888893
}
889894
}
890895

891896
static bool fsl_micfil_writeable_reg(struct device *dev, unsigned int reg)
892897
{
898+
struct fsl_micfil *micfil = dev_get_drvdata(dev);
899+
893900
switch (reg) {
894901
case REG_MICFIL_CTRL1:
895902
case REG_MICFIL_CTRL2:
@@ -899,14 +906,17 @@ static bool fsl_micfil_writeable_reg(struct device *dev, unsigned int reg)
899906
case REG_MICFIL_DC_CTRL:
900907
case REG_MICFIL_OUT_CTRL:
901908
case REG_MICFIL_OUT_STAT: /* Write 1 to Clear */
902-
case REG_MICFIL_FSYNC_CTRL:
903909
case REG_MICFIL_VAD0_CTRL1:
904910
case REG_MICFIL_VAD0_CTRL2:
905911
case REG_MICFIL_VAD0_STAT: /* Write 1 to Clear */
906912
case REG_MICFIL_VAD0_SCONFIG:
907913
case REG_MICFIL_VAD0_NCONFIG:
908914
case REG_MICFIL_VAD0_ZCD:
909915
return true;
916+
case REG_MICFIL_FSYNC_CTRL:
917+
if (micfil->soc->use_verid)
918+
return true;
919+
fallthrough;
910920
default:
911921
return false;
912922
}

0 commit comments

Comments
 (0)