ASoC: rsnd: always call probe/remove for MUX
CTU/MUX/DVC/SSIU/SSI/Audio-DMAC-periperi might be used under multipath. So, probe()/remove() need to be called multiple times. This patch allows it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
bfa3119c38
commit
ea96380baa
@ -163,6 +163,7 @@ void rsnd_mod_quit(struct rsnd_mod *mod)
|
|||||||
{
|
{
|
||||||
if (mod->clk)
|
if (mod->clk)
|
||||||
clk_unprepare(mod->clk);
|
clk_unprepare(mod->clk);
|
||||||
|
mod->clk = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rsnd_mod_interrupt(struct rsnd_mod *mod,
|
void rsnd_mod_interrupt(struct rsnd_mod *mod,
|
||||||
|
@ -237,29 +237,29 @@ struct rsnd_mod {
|
|||||||
/*
|
/*
|
||||||
* status
|
* status
|
||||||
*
|
*
|
||||||
* 0xH0000CBA
|
* 0xH0000CB0
|
||||||
*
|
*
|
||||||
* A 0: probe 1: remove
|
|
||||||
* B 0: init 1: quit
|
* B 0: init 1: quit
|
||||||
* C 0: start 1: stop
|
* C 0: start 1: stop
|
||||||
*
|
*
|
||||||
* H is always called (see __rsnd_mod_call)
|
* H is always called (see __rsnd_mod_call)
|
||||||
|
* H 0: probe 1: remove
|
||||||
* H 0: pcm_new
|
* H 0: pcm_new
|
||||||
* H 0: fallback
|
* H 0: fallback
|
||||||
* H 0: hw_params
|
* H 0: hw_params
|
||||||
*/
|
*/
|
||||||
#define __rsnd_mod_shift_probe 0
|
|
||||||
#define __rsnd_mod_shift_remove 0
|
|
||||||
#define __rsnd_mod_shift_init 4
|
#define __rsnd_mod_shift_init 4
|
||||||
#define __rsnd_mod_shift_quit 4
|
#define __rsnd_mod_shift_quit 4
|
||||||
#define __rsnd_mod_shift_start 8
|
#define __rsnd_mod_shift_start 8
|
||||||
#define __rsnd_mod_shift_stop 8
|
#define __rsnd_mod_shift_stop 8
|
||||||
|
#define __rsnd_mod_shift_probe 28 /* always called */
|
||||||
|
#define __rsnd_mod_shift_remove 28 /* always called */
|
||||||
#define __rsnd_mod_shift_pcm_new 28 /* always called */
|
#define __rsnd_mod_shift_pcm_new 28 /* always called */
|
||||||
#define __rsnd_mod_shift_fallback 28 /* always called */
|
#define __rsnd_mod_shift_fallback 28 /* always called */
|
||||||
#define __rsnd_mod_shift_hw_params 28 /* always called */
|
#define __rsnd_mod_shift_hw_params 28 /* always called */
|
||||||
|
|
||||||
#define __rsnd_mod_add_probe 1
|
#define __rsnd_mod_add_probe 0
|
||||||
#define __rsnd_mod_add_remove -1
|
#define __rsnd_mod_add_remove 0
|
||||||
#define __rsnd_mod_add_init 1
|
#define __rsnd_mod_add_init 1
|
||||||
#define __rsnd_mod_add_quit -1
|
#define __rsnd_mod_add_quit -1
|
||||||
#define __rsnd_mod_add_start 1
|
#define __rsnd_mod_add_start 1
|
||||||
@ -269,7 +269,7 @@ struct rsnd_mod {
|
|||||||
#define __rsnd_mod_add_hw_params 0
|
#define __rsnd_mod_add_hw_params 0
|
||||||
|
|
||||||
#define __rsnd_mod_call_probe 0
|
#define __rsnd_mod_call_probe 0
|
||||||
#define __rsnd_mod_call_remove 1
|
#define __rsnd_mod_call_remove 0
|
||||||
#define __rsnd_mod_call_init 0
|
#define __rsnd_mod_call_init 0
|
||||||
#define __rsnd_mod_call_quit 1
|
#define __rsnd_mod_call_quit 1
|
||||||
#define __rsnd_mod_call_start 0
|
#define __rsnd_mod_call_start 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user