]> git.baikalelectronics.ru Git - kernel.git/commit
ASoC: rsnd: don't call clk_get_rate() under atomic context
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 6 Aug 2019 03:45:38 +0000 (12:45 +0900)
committerMark Brown <broonie@kernel.org>
Wed, 7 Aug 2019 13:17:47 +0000 (14:17 +0100)
commitd4d42d6e99047d536f67c247a6971be1924e72db
tree212e88aa7cab3d6ce770563c0a8876fbed777e0a
parent85d441c0f6180837191ca986dbcd6f5ae0d24d35
ASoC: rsnd: don't call clk_get_rate() under atomic context

ADG is using clk_get_rate() under atomic context, thus, we might
have scheduling issue.
To avoid this issue, we need to get/keep clk rate under
non atomic context.

We need to handle ADG as special device at Renesas Sound driver.
From SW point of view, we want to impletent it as
rsnd_mod_ops :: prepare, but it makes code just complicate.

To avoid complicated code/patch, this patch adds new clk_rate[] array,
and keep clk IN rate when rsnd_adg_clk_enable() was called.

Reported-by: Leon Kong <Leon.KONG@cn.bosch.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Leon Kong <Leon.KONG@cn.bosch.com>
Link: https://lore.kernel.org/r/87v9vb0xkp.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/adg.c