28 Sep
2018
28 Sep
'18
2:21 a.m.
Hi Jiada
SSI may use different busif for data transfer, this patch adds busif property to each dai stream, to indicate the busif used by playback/capture stream.
(snip)
- io_playback->busif = rsnd_busif_get(priv, dai_i);
- io_capture->busif = rsnd_busif_get(priv, rsnd_rdai_nr(priv) + dai_i);
(snip)
- busif = devm_kcalloc(dev, 2 * nr, sizeof(*busif), GFP_KERNEL);
(snip)
@@ -456,6 +456,7 @@ struct rsnd_dai_stream { struct rsnd_mod *dma; struct rsnd_dai *rdai; struct device *dmac_dev; /* for IPMMU */
- struct rsnd_kctrl_cfg_s *busif; u32 parent_ssi_status;
};
It looks very complex to me. Why don't you just have "busif" on rsnd_dai_stream, instead of "*busif" ?
int rsnd_ssi_get_busif(struct rsnd_dai_stream *io) {
- return 0; /* BUSIF0 only for now */
- if (!rsnd_ssi_use_busif(io))
return 0;
- return io->busif->val;
}
Who/How update val ?