Lines Matching refs:link
76 struct ausoc_link * const link = priv;
79 for (aux = 0; aux < link->link_naux; aux++)
80 audio_dai_close(link->link_aux[aux]);
81 audio_dai_close(link->link_codec);
82 audio_dai_close(link->link_cpu);
88 struct ausoc_link * const link = priv;
92 error = audio_dai_open(link->link_cpu, flags);
96 error = audio_dai_open(link->link_codec, flags);
100 for (aux = 0; aux < link->link_naux; aux++) {
101 error = audio_dai_open(link->link_aux[aux], flags);
116 struct ausoc_link * const link = priv;
118 return audio_dai_query_format(link->link_cpu, afp);
126 struct ausoc_link * const link = priv;
131 if (link->link_mclk_fs) {
132 const u_int rate = params->sample_rate * link->link_mclk_fs;
133 error = audio_dai_set_sysclk(link->link_codec, rate,
137 error = audio_dai_set_sysclk(link->link_cpu, rate,
143 error = audio_dai_mi_set_format(link->link_cpu, setmode,
148 return audio_dai_mi_set_format(link->link_codec, setmode,
155 struct ausoc_link * const link = priv;
157 return audio_dai_set_port(link->link_codec, mc);
163 struct ausoc_link * const link = priv;
165 return audio_dai_get_port(link->link_codec, mc);
171 struct ausoc_link * const link = priv;
173 return audio_dai_query_devinfo(link->link_codec, di);
179 struct ausoc_link * const link = priv;
181 return audio_dai_allocm(link->link_cpu, dir, size);
187 struct ausoc_link * const link = priv;
189 return audio_dai_freem(link->link_cpu, addr, size);
195 struct ausoc_link * const link = priv;
198 snprintf(adev->name, sizeof(adev->name), "%s", link->link_name);
203 (void)audio_dai_getdev(link->link_codec, adev);
211 struct ausoc_link * const link = priv;
213 return audio_dai_get_props(link->link_cpu);
220 struct ausoc_link * const link = priv;
222 return audio_dai_round_blocksize(link->link_cpu, bs, mode, params);
228 struct ausoc_link * const link = priv;
230 return audio_dai_round_buffersize(link->link_cpu, dir, bufsize);
236 struct ausoc_link * const link = priv;
239 for (n = 0; n < link->link_naux; n++)
240 audio_dai_halt(link->link_aux[n], AUMODE_PLAY);
242 audio_dai_halt(link->link_codec, AUMODE_PLAY);
244 return audio_dai_halt(link->link_cpu, AUMODE_PLAY);
250 struct ausoc_link * const link = priv;
253 for (n = 0; n < link->link_naux; n++)
254 audio_dai_halt(link->link_aux[n], AUMODE_RECORD);
256 audio_dai_halt(link->link_codec, AUMODE_RECORD);
258 return audio_dai_halt(link->link_cpu, AUMODE_RECORD);
265 struct ausoc_link * const link = priv;
269 for (n = 0; n < link->link_naux; n++) {
270 error = audio_dai_trigger(link->link_aux[n], start, end,
275 error = audio_dai_trigger(link->link_codec, start, end, blksize,
280 return audio_dai_trigger(link->link_cpu, start, end, blksize,
292 struct ausoc_link * const link = priv;
296 for (n = 0; n < link->link_naux; n++) {
297 error = audio_dai_trigger(link->link_aux[n], start, end,
302 error = audio_dai_trigger(link->link_codec, start, end, blksize,
307 return audio_dai_trigger(link->link_cpu, start, end, blksize,
318 struct ausoc_link * const link = priv;
320 return audio_dai_get_locks(link->link_cpu, intr, thread);
366 ausoc_link_format(struct ausoc_softc *sc, struct ausoc_link *link, int phandle,
428 ausoc_attach_link(struct ausoc_softc *sc, struct ausoc_link *link,
448 link->link_cpu = fdtbus_dai_acquire(cpu_phandle, "sound-dai");
449 if (!link->link_cpu) {
462 link->link_codec = fdtbus_dai_acquire(codec_phandle, "sound-dai");
463 if (!link->link_codec) {
471 "simple-audio-card,aux-devs", link->link_naux) == NULL)
473 link->link_naux++;
475 if (link->link_naux) {
476 link->link_aux = kmem_zalloc(sizeof(audio_dai_tag_t) * link->link_naux, KM_SLEEP);
477 for (n = 0; n < link->link_naux; n++) {
478 link->link_aux[n] = fdtbus_dai_acquire_index(card_phandle,
480 KASSERT(link->link_aux[n] != NULL);
483 audio_dai_add_device(link->link_codec, link->link_aux[n]);
487 of_getprop_uint32(link_phandle, mclk_fs_prop, &link->link_mclk_fs);
488 if (ausoc_link_format(sc, link, link_phandle, codec_phandle, single_link, &format) != 0) {
492 if (audio_dai_set_format(link->link_cpu, format) != 0) {
496 if (audio_dai_set_format(link->link_codec, format) != 0) {
502 device_xname(audio_dai_device(link->link_codec)),
503 device_xname(audio_dai_device(link->link_cpu)));
504 for (n = 0; n < link->link_naux; n++) {
508 device_xname(audio_dai_device(link->link_aux[n])));
512 audio_attach_mi(&ausoc_hw_if, link, sc->sc_dev);
525 * If the root node defines a cpu and codec, there is only one link. For
526 * cards with multiple links, there will be simple-audio-card,dai-link
538 len = strlen("simple-audio-card,dai-link");
539 if (strncmp(name, "simple-audio-card,dai-link", len) != 0)
549 len = strlen("simple-audio-card,dai-link");
550 if (strncmp(name, "simple-audio-card,dai-link", len) != 0)