Skip to content

Commit a714b31

Browse files
morimotobroonie
authored andcommitted
ASoC: renesas: rsnd: care BRGA/BRGB select in rsnd_adg_clk_enable()
Renesas rsnd related clocks are enabled by rsnd_adg_clk_enable(), but it doesn't care about BRGA/BRGB selection (It is handled when SSI was started) (BRGA is used for 44.1kHz lineage, BRGB is used for 48kHz lineage in this driver). But it should be handled since probe time. Includes BRGCKR_31 in adg->ckr to handle it since boot time. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87tt6m2x05.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent ce6949b commit a714b31

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

  • sound/soc/renesas/rcar

sound/soc/renesas/rcar/adg.c

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#define CLKOUT3 3
2020
#define CLKOUTMAX 4
2121

22+
#define BRGCKR_31 (1 << 31)
2223
#define BRRx_MASK(x) (0x3FF & x)
2324

2425
static struct rsnd_mod_ops adg_ops = {
@@ -361,10 +362,13 @@ int rsnd_adg_ssi_clk_try_start(struct rsnd_mod *ssi_mod, unsigned int rate)
361362

362363
rsnd_adg_set_ssi_clk(ssi_mod, data);
363364

365+
ckr = adg->ckr & ~BRGCKR_31;
364366
if (0 == (rate % 8000))
365-
ckr = 0x80000000; /* BRGB output = 48kHz */
366-
367-
rsnd_mod_bset(adg_mod, BRGCKR, 0x80770000, adg->ckr | ckr);
367+
ckr |= BRGCKR_31; /* use BRGB output = 48kHz */
368+
if (ckr != adg->ckr) {
369+
rsnd_mod_bset(adg_mod, BRGCKR, 0x80770000, adg->ckr);
370+
adg->ckr = ckr;
371+
}
368372

369373
dev_dbg(dev, "CLKOUT is based on BRG%c (= %dHz)\n",
370374
(ckr) ? 'B' : 'A',
@@ -683,6 +687,9 @@ static int rsnd_adg_get_clkout(struct rsnd_priv *priv)
683687
}
684688

685689
rsnd_adg_get_clkout_end:
690+
if (0 == (req_rate[0] % 8000))
691+
ckr |= BRGCKR_31; /* use BRGB output = 48kHz */
692+
686693
adg->ckr = ckr;
687694
adg->brga = brga;
688695
adg->brgb = brgb;

0 commit comments

Comments
 (0)