ASoC: rsnd: add missing SRC_O_BUSIF_MODE register
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 30 Nov 2015 08:50:08 +0000 (08:50 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 30 Nov 2015 18:11:23 +0000 (18:11 +0000)
SRC_BUSIF_MODE has both IN/OUT register. Current src driver sets
IN register only. This patch sets missing OUT register.
IN/OUT register are using default setting, so, there is no
HW effect.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/gen.c
sound/soc/sh/rcar/rsnd.h
sound/soc/sh/rcar/src.c

index 15d7706..364708c 100644 (file)
@@ -233,8 +233,10 @@ static int rsnd_gen2_probe(struct rsnd_priv *priv)
                RSND_GEN_M_REG(SSI_CTRL,        0x10,   0x80),
                RSND_GEN_M_REG(SSI_INT_ENABLE,  0x18,   0x80),
        };
+
        const static struct rsnd_regmap_field_conf conf_scu[] = {
-               RSND_GEN_M_REG(SRC_BUSIF_MODE,  0x0,    0x20),
+               RSND_GEN_M_REG(SRC_I_BUSIF_MODE,0x0,    0x20),
+               RSND_GEN_M_REG(SRC_O_BUSIF_MODE,0x4,    0x20),
                RSND_GEN_M_REG(SRC_BUSIF_DALIGN,0x8,    0x20),
                RSND_GEN_M_REG(SRC_ROUTE_MODE0, 0xc,    0x20),
                RSND_GEN_M_REG(SRC_CTRL,        0x10,   0x20),
index 42d2ac5..bb2c29c 100644 (file)
@@ -51,7 +51,8 @@ enum rsnd_reg {
        RSND_REG_SSI_BUSIF_ADINR,       /* Gen2 only */
        RSND_REG_SSI_BUSIF_DALIGN,      /* Gen2 only */
        RSND_REG_SSI_INT_ENABLE,        /* Gen2 only */
-       RSND_REG_SRC_BUSIF_MODE,
+       RSND_REG_SRC_I_BUSIF_MODE,
+       RSND_REG_SRC_O_BUSIF_MODE,
        RSND_REG_SRC_ROUTE_MODE0,
        RSND_REG_SRC_SWRSR,
        RSND_REG_SRC_SRCIR,
index 30cad79..27b3ffe 100644 (file)
@@ -254,7 +254,8 @@ static void rsnd_src_set_convert_rate(struct rsnd_dai_stream *io,
        rsnd_mod_write(mod, SRC_SRCIR, 0);      /* cancel initialize */
 
        rsnd_mod_write(mod, SRC_ROUTE_MODE0, route);
-       rsnd_mod_write(mod, SRC_BUSIF_MODE, 1);
+       rsnd_mod_write(mod, SRC_I_BUSIF_MODE, 1);
+       rsnd_mod_write(mod, SRC_O_BUSIF_MODE, 1);
        rsnd_mod_write(mod, SRC_BUSIF_DALIGN, rsnd_get_dalign(mod, io));
 
        if (convert_rate)