Lines Matching refs:link
76 struct ausoc_link * const link = priv; in ausoc_close() local
79 for (aux = 0; aux < link->link_naux; aux++) in ausoc_close()
80 audio_dai_close(link->link_aux[aux]); in ausoc_close()
81 audio_dai_close(link->link_codec); in ausoc_close()
82 audio_dai_close(link->link_cpu); in ausoc_close()
88 struct ausoc_link * const link = priv; in ausoc_open() local
92 error = audio_dai_open(link->link_cpu, flags); in ausoc_open()
96 error = audio_dai_open(link->link_codec, flags); in ausoc_open()
100 for (aux = 0; aux < link->link_naux; aux++) { in ausoc_open()
101 error = audio_dai_open(link->link_aux[aux], flags); in ausoc_open()
116 struct ausoc_link * const link = priv; in ausoc_query_format() local
118 return audio_dai_query_format(link->link_cpu, afp); in ausoc_query_format()
126 struct ausoc_link * const link = priv; in ausoc_set_format() local
131 if (link->link_mclk_fs) { in ausoc_set_format()
132 const u_int rate = params->sample_rate * link->link_mclk_fs; in ausoc_set_format()
133 error = audio_dai_set_sysclk(link->link_codec, rate, in ausoc_set_format()
137 error = audio_dai_set_sysclk(link->link_cpu, rate, in ausoc_set_format()
143 error = audio_dai_mi_set_format(link->link_cpu, setmode, in ausoc_set_format()
148 return audio_dai_mi_set_format(link->link_codec, setmode, in ausoc_set_format()
155 struct ausoc_link * const link = priv; in ausoc_set_port() local
157 return audio_dai_set_port(link->link_codec, mc); in ausoc_set_port()
163 struct ausoc_link * const link = priv; in ausoc_get_port() local
165 return audio_dai_get_port(link->link_codec, mc); in ausoc_get_port()
171 struct ausoc_link * const link = priv; in ausoc_query_devinfo() local
173 return audio_dai_query_devinfo(link->link_codec, di); in ausoc_query_devinfo()
179 struct ausoc_link * const link = priv; in ausoc_allocm() local
181 return audio_dai_allocm(link->link_cpu, dir, size); in ausoc_allocm()
187 struct ausoc_link * const link = priv; in ausoc_freem() local
189 return audio_dai_freem(link->link_cpu, addr, size); in ausoc_freem()
195 struct ausoc_link * const link = priv; in ausoc_getdev() local
198 snprintf(adev->name, sizeof(adev->name), "%s", link->link_name); in ausoc_getdev()
203 (void)audio_dai_getdev(link->link_codec, adev); in ausoc_getdev()
211 struct ausoc_link * const link = priv; in ausoc_get_props() local
213 return audio_dai_get_props(link->link_cpu); in ausoc_get_props()
220 struct ausoc_link * const link = priv; in ausoc_round_blocksize() local
222 return audio_dai_round_blocksize(link->link_cpu, bs, mode, params); in ausoc_round_blocksize()
228 struct ausoc_link * const link = priv; in ausoc_round_buffersize() local
230 return audio_dai_round_buffersize(link->link_cpu, dir, bufsize); in ausoc_round_buffersize()
236 struct ausoc_link * const link = priv; in ausoc_halt_output() local
239 for (n = 0; n < link->link_naux; n++) in ausoc_halt_output()
240 audio_dai_halt(link->link_aux[n], AUMODE_PLAY); in ausoc_halt_output()
242 audio_dai_halt(link->link_codec, AUMODE_PLAY); in ausoc_halt_output()
244 return audio_dai_halt(link->link_cpu, AUMODE_PLAY); in ausoc_halt_output()
250 struct ausoc_link * const link = priv; in ausoc_halt_input() local
253 for (n = 0; n < link->link_naux; n++) in ausoc_halt_input()
254 audio_dai_halt(link->link_aux[n], AUMODE_RECORD); in ausoc_halt_input()
256 audio_dai_halt(link->link_codec, AUMODE_RECORD); in ausoc_halt_input()
258 return audio_dai_halt(link->link_cpu, AUMODE_RECORD); in ausoc_halt_input()
265 struct ausoc_link * const link = priv; in ausoc_trigger_output() local
269 for (n = 0; n < link->link_naux; n++) { in ausoc_trigger_output()
270 error = audio_dai_trigger(link->link_aux[n], start, end, in ausoc_trigger_output()
275 error = audio_dai_trigger(link->link_codec, start, end, blksize, in ausoc_trigger_output()
280 return audio_dai_trigger(link->link_cpu, start, end, blksize, in ausoc_trigger_output()
292 struct ausoc_link * const link = priv; in ausoc_trigger_input() local
296 for (n = 0; n < link->link_naux; n++) { in ausoc_trigger_input()
297 error = audio_dai_trigger(link->link_aux[n], start, end, in ausoc_trigger_input()
302 error = audio_dai_trigger(link->link_codec, start, end, blksize, in ausoc_trigger_input()
307 return audio_dai_trigger(link->link_cpu, start, end, blksize, in ausoc_trigger_input()
318 struct ausoc_link * const link = priv; in ausoc_get_locks() local
320 return audio_dai_get_locks(link->link_cpu, intr, thread); in ausoc_get_locks()
366 ausoc_link_format(struct ausoc_softc *sc, struct ausoc_link *link, int phandle, in ausoc_link_format() argument
428 ausoc_attach_link(struct ausoc_softc *sc, struct ausoc_link *link, in ausoc_attach_link() argument
448 link->link_cpu = fdtbus_dai_acquire(cpu_phandle, "sound-dai"); in ausoc_attach_link()
449 if (!link->link_cpu) { in ausoc_attach_link()
462 link->link_codec = fdtbus_dai_acquire(codec_phandle, "sound-dai"); in ausoc_attach_link()
463 if (!link->link_codec) { in ausoc_attach_link()
471 "simple-audio-card,aux-devs", link->link_naux) == NULL) in ausoc_attach_link()
473 link->link_naux++; in ausoc_attach_link()
475 if (link->link_naux) { in ausoc_attach_link()
476 link->link_aux = kmem_zalloc(sizeof(audio_dai_tag_t) * link->link_naux, KM_SLEEP); in ausoc_attach_link()
477 for (n = 0; n < link->link_naux; n++) { in ausoc_attach_link()
478 link->link_aux[n] = fdtbus_dai_acquire_index(card_phandle, in ausoc_attach_link()
480 KASSERT(link->link_aux[n] != NULL); in ausoc_attach_link()
483 audio_dai_add_device(link->link_codec, link->link_aux[n]); in ausoc_attach_link()
487 of_getprop_uint32(link_phandle, mclk_fs_prop, &link->link_mclk_fs); in ausoc_attach_link()
488 if (ausoc_link_format(sc, link, link_phandle, codec_phandle, single_link, &format) != 0) { in ausoc_attach_link()
492 if (audio_dai_set_format(link->link_cpu, format) != 0) { in ausoc_attach_link()
496 if (audio_dai_set_format(link->link_codec, format) != 0) { in ausoc_attach_link()
502 device_xname(audio_dai_device(link->link_codec)), in ausoc_attach_link()
503 device_xname(audio_dai_device(link->link_cpu))); in ausoc_attach_link()
504 for (n = 0; n < link->link_naux; n++) { in ausoc_attach_link()
508 device_xname(audio_dai_device(link->link_aux[n]))); in ausoc_attach_link()
512 audio_attach_mi(&ausoc_hw_if, link, sc->sc_dev); in ausoc_attach_link()