Clocking and formatting considerations
Before delving deeper into this section, let's spend some time on the snd_soc_dai_link->ops
field. This field is of type struct snd_soc_ops
, defined as follows:
struct snd_soc_ops { Â Â Â Â int (*startup)(struct snd_pcm_substream *); Â Â Â Â void (*shutdown)(struct snd_pcm_substream *); Â Â Â Â int (*hw_params)(struct snd_pcm_substream *, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â struct snd_pcm_hw_params *); Â Â Â Â int (*hw_free)(struct snd_pcm_substream *); Â Â Â Â int (*prepare)(struct snd_pcm_substream *); Â Â Â Â int (*trigger)(struct snd_pcm_substream *, int); };
These callback fields in this structure should remind you of those defined in the snd_soc_dai_driver->ops
field, which is of type struct snd_soc_dai_ops
. From within the DAI link, these...