ASoC: fsl_spdif: STL and STR registers are non volatile
authorZidan Wang <zidan.wang@freescale.com>
Mon, 26 Oct 2015 07:19:04 +0000 (15:19 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 16 Nov 2015 10:06:01 +0000 (10:06 +0000)
STL and STR registers are writable and not readable. So they are non volatile.
Remove them from volatile list, and add default register value for them.

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_spdif.c

index 3d59bb6719f2b6fea0d7ed7137940bac88d99d6b..28a88233690474d83a49cb0de268803b2280e19d 100644 (file)
@@ -1006,12 +1006,14 @@ static const struct snd_soc_component_driver fsl_spdif_component = {
 
 /* FSL SPDIF REGMAP */
 static const struct reg_default fsl_spdif_reg_defaults[] = {
-       {0x0,  0x00000400},
-       {0x4,  0x00000000},
-       {0xc,  0x00000000},
-       {0x34, 0x00000000},
-       {0x38, 0x00000000},
-       {0x50, 0x00020f00},
+       {REG_SPDIF_SCR,    0x00000400},
+       {REG_SPDIF_SRCD,   0x00000000},
+       {REG_SPDIF_SIE,    0x00000000},
+       {REG_SPDIF_STL,    0x00000000},
+       {REG_SPDIF_STR,    0x00000000},
+       {REG_SPDIF_STCSCH, 0x00000000},
+       {REG_SPDIF_STCSCL, 0x00000000},
+       {REG_SPDIF_STC,    0x00020f00},
 };
 
 static bool fsl_spdif_readable_reg(struct device *dev, unsigned int reg)
@@ -1049,8 +1051,6 @@ static bool fsl_spdif_volatile_reg(struct device *dev, unsigned int reg)
        case REG_SPDIF_SRCSL:
        case REG_SPDIF_SRU:
        case REG_SPDIF_SRQ:
-       case REG_SPDIF_STL:
-       case REG_SPDIF_STR:
        case REG_SPDIF_SRFM:
                return true;
        default: