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 ? _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel