ASoC: rsnd: setup clock-out only when all conditions are right
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 22 Aug 2023 23:50:36 +0000 (23:50 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 23 Aug 2023 12:53:26 +0000 (13:53 +0100)
Current adg.c doesn't assume that requested clock out divide condition
doesn't match. In such case, it will indicate strange message, and will
register NULL clock, etc. It is just a DT setting miss, but is
confusable. This patch check all conditions for it.

Reported-by: Vincenzo De Michele <vincenzo.michele@davinci.de>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87lee2zlf7.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/adg.c

index c490d43..919339b 100644 (file)
@@ -607,6 +607,10 @@ static int rsnd_adg_get_clkout(struct rsnd_priv *priv)
                }
        }
 
+       if (!(adg->brg_rate[ADG_HZ_48]  && req_Hz[ADG_HZ_48]) &&
+           !(adg->brg_rate[ADG_HZ_441] && req_Hz[ADG_HZ_441]))
+               goto rsnd_adg_get_clkout_end;
+
        if (approximate)
                dev_info(dev, "It uses CLK_I as approximate rate");