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...