ASoC: rsnd: attach SSIU when SSI was DMA mode
SSIU is not needed if SSI was PIO mode. This patch ignores such case. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Message-Id: <874keonbkg.wl-kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
6da8f00e7a
commit
ab62e8a8bc
@ -777,6 +777,7 @@ void rsnd_ssi_remove(struct rsnd_priv *priv);
|
||||
struct rsnd_mod *rsnd_ssi_mod_get(struct rsnd_priv *priv, int id);
|
||||
int rsnd_ssi_use_busif(struct rsnd_dai_stream *io);
|
||||
u32 rsnd_ssi_multi_secondaries_runtime(struct rsnd_dai_stream *io);
|
||||
int rsnd_ssi_is_dma_mode(struct rsnd_mod *mod);
|
||||
|
||||
#define rsnd_ssi_is_pin_sharing(io) \
|
||||
__rsnd_ssi_is_pin_sharing(rsnd_io_to_mod_ssi(io))
|
||||
|
@ -117,8 +117,6 @@ struct rsnd_ssi {
|
||||
(rsnd_ssi_run_mods(io) & (1 << rsnd_mod_id(mod)))
|
||||
#define rsnd_ssi_can_output_clk(mod) (!__rsnd_ssi_is_pin_sharing(mod))
|
||||
|
||||
static int rsnd_ssi_is_dma_mode(struct rsnd_mod *mod);
|
||||
|
||||
int rsnd_ssi_use_busif(struct rsnd_dai_stream *io)
|
||||
{
|
||||
struct rsnd_mod *mod = rsnd_io_to_mod_ssi(io);
|
||||
@ -1147,7 +1145,7 @@ static struct rsnd_mod_ops rsnd_ssi_dma_ops = {
|
||||
.get_status = rsnd_ssi_get_status,
|
||||
};
|
||||
|
||||
static int rsnd_ssi_is_dma_mode(struct rsnd_mod *mod)
|
||||
int rsnd_ssi_is_dma_mode(struct rsnd_mod *mod)
|
||||
{
|
||||
return mod->ops == &rsnd_ssi_dma_ops;
|
||||
}
|
||||
|
@ -336,16 +336,20 @@ static void rsnd_parse_connect_ssiu_compatible(struct rsnd_priv *priv,
|
||||
{
|
||||
struct rsnd_mod *ssi_mod = rsnd_io_to_mod_ssi(io);
|
||||
struct rsnd_ssiu *ssiu;
|
||||
int is_dma_mode;
|
||||
int i;
|
||||
|
||||
if (!ssi_mod)
|
||||
return;
|
||||
|
||||
is_dma_mode = rsnd_ssi_is_dma_mode(ssi_mod);
|
||||
|
||||
/* select BUSIF0 */
|
||||
for_each_rsnd_ssiu(ssiu, priv, i) {
|
||||
struct rsnd_mod *mod = rsnd_mod_get(ssiu);
|
||||
|
||||
if ((rsnd_mod_id(ssi_mod) == rsnd_mod_id(mod)) &&
|
||||
if (is_dma_mode &&
|
||||
(rsnd_mod_id(ssi_mod) == rsnd_mod_id(mod)) &&
|
||||
(rsnd_mod_id_sub(mod) == 0)) {
|
||||
rsnd_dai_connect(mod, io, mod->type);
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user