Lines Matching refs:stream

38 				struct hdac_ext_stream *stream,  in snd_hdac_ext_stream_init()  argument
44 stream->pphc_addr = ebus->ppcap + AZX_PPHC_BASE + in snd_hdac_ext_stream_init()
47 stream->pplc_addr = ebus->ppcap + AZX_PPLC_BASE + in snd_hdac_ext_stream_init()
53 stream->spib_addr = ebus->spbcap + AZX_SPB_BASE + in snd_hdac_ext_stream_init()
57 stream->fifo_addr = ebus->spbcap + AZX_SPB_BASE + in snd_hdac_ext_stream_init()
62 stream->decoupled = false; in snd_hdac_ext_stream_init()
63 snd_hdac_stream_init(bus, &stream->hstream, idx, direction, tag); in snd_hdac_ext_stream_init()
82 struct hdac_ext_stream *stream = in snd_hdac_ext_stream_init_all() local
83 kzalloc(sizeof(*stream), GFP_KERNEL); in snd_hdac_ext_stream_init_all()
84 if (!stream) in snd_hdac_ext_stream_init_all()
87 snd_hdac_ext_stream_init(ebus, stream, idx, dir, tag); in snd_hdac_ext_stream_init_all()
104 struct hdac_ext_stream *stream; in snd_hdac_stream_free_all() local
109 stream = stream_to_hdac_ext_stream(s); in snd_hdac_stream_free_all()
111 kfree(stream); in snd_hdac_stream_free_all()
123 struct hdac_ext_stream *stream, bool decouple) in snd_hdac_ext_stream_decouple() argument
125 struct hdac_stream *hstream = &stream->hstream; in snd_hdac_ext_stream_decouple()
135 stream->decoupled = decouple; in snd_hdac_ext_stream_decouple()
144 void snd_hdac_ext_link_stream_start(struct hdac_ext_stream *stream) in snd_hdac_ext_link_stream_start() argument
146 snd_hdac_updatel(stream->pplc_addr, AZX_REG_PPLCCTL, 0, AZX_PPLCCTL_RUN); in snd_hdac_ext_link_stream_start()
154 void snd_hdac_ext_link_stream_clear(struct hdac_ext_stream *stream) in snd_hdac_ext_link_stream_clear() argument
156 snd_hdac_updatel(stream->pplc_addr, AZX_REG_PPLCCTL, AZX_PPLCCTL_RUN, 0); in snd_hdac_ext_link_stream_clear()
164 void snd_hdac_ext_link_stream_reset(struct hdac_ext_stream *stream) in snd_hdac_ext_link_stream_reset() argument
169 snd_hdac_ext_link_stream_clear(stream); in snd_hdac_ext_link_stream_reset()
171 snd_hdac_updatel(stream->pplc_addr, AZX_REG_PPLCCTL, 0, AZX_PPLCCTL_STRST); in snd_hdac_ext_link_stream_reset()
175 val = readl(stream->pplc_addr + AZX_REG_PPLCCTL) & in snd_hdac_ext_link_stream_reset()
182 writel(val, stream->pplc_addr + AZX_REG_PPLCCTL); in snd_hdac_ext_link_stream_reset()
188 val = readl(stream->pplc_addr + AZX_REG_PPLCCTL) & AZX_PPLCCTL_STRST; in snd_hdac_ext_link_stream_reset()
202 int snd_hdac_ext_link_stream_setup(struct hdac_ext_stream *stream, int fmt) in snd_hdac_ext_link_stream_setup() argument
204 struct hdac_stream *hstream = &stream->hstream; in snd_hdac_ext_link_stream_setup()
208 snd_hdac_ext_link_stream_clear(stream); in snd_hdac_ext_link_stream_setup()
210 val = readl(stream->pplc_addr + AZX_REG_PPLCCTL); in snd_hdac_ext_link_stream_setup()
213 writel(val, stream->pplc_addr + AZX_REG_PPLCCTL); in snd_hdac_ext_link_stream_setup()
216 writew(fmt, stream->pplc_addr + AZX_REG_PPLCFMT); in snd_hdac_ext_link_stream_setup()
228 int stream) in snd_hdac_ext_link_set_stream_id() argument
230 snd_hdac_updatew(link->ml_addr, AZX_REG_ML_LOSIDV, (1 << stream), 1 << stream); in snd_hdac_ext_link_set_stream_id()
240 int stream) in snd_hdac_ext_link_clear_stream_id() argument
242 snd_hdac_updatew(link->ml_addr, AZX_REG_ML_LOSIDV, 0, (1 << stream)); in snd_hdac_ext_link_clear_stream_id()
251 struct hdac_stream *stream = NULL; in hdac_ext_link_stream_assign() local
259 list_for_each_entry(stream, &hbus->stream_list, list) { in hdac_ext_link_stream_assign()
260 struct hdac_ext_stream *hstream = container_of(stream, in hdac_ext_link_stream_assign()
263 if (stream->direction != substream->stream) in hdac_ext_link_stream_assign()
292 struct hdac_stream *stream = NULL; in hdac_ext_host_stream_assign() local
300 list_for_each_entry(stream, &hbus->stream_list, list) { in hdac_ext_host_stream_assign()
301 struct hdac_ext_stream *hstream = container_of(stream, in hdac_ext_host_stream_assign()
304 if (stream->direction != substream->stream) in hdac_ext_host_stream_assign()
307 if (!stream->opened) { in hdac_ext_host_stream_assign()
347 struct hdac_stream *stream = NULL; in snd_hdac_ext_stream_assign() local
352 stream = snd_hdac_stream_assign(hbus, substream); in snd_hdac_ext_stream_assign()
353 if (stream) in snd_hdac_ext_stream_assign()
354 hstream = container_of(stream, in snd_hdac_ext_stream_assign()
377 void snd_hdac_ext_stream_release(struct hdac_ext_stream *stream, int type) in snd_hdac_ext_stream_release() argument
379 struct hdac_bus *bus = stream->hstream.bus; in snd_hdac_ext_stream_release()
384 snd_hdac_stream_release(&stream->hstream); in snd_hdac_ext_stream_release()
388 if (stream->decoupled && !stream->link_locked) in snd_hdac_ext_stream_release()
389 snd_hdac_ext_stream_decouple(ebus, stream, false); in snd_hdac_ext_stream_release()
390 snd_hdac_stream_release(&stream->hstream); in snd_hdac_ext_stream_release()
394 if (stream->decoupled && !stream->hstream.opened) in snd_hdac_ext_stream_release()
395 snd_hdac_ext_stream_decouple(ebus, stream, false); in snd_hdac_ext_stream_release()
397 stream->link_locked = 0; in snd_hdac_ext_stream_release()
398 stream->link_substream = NULL; in snd_hdac_ext_stream_release()
447 struct hdac_ext_stream *stream, u32 value) in snd_hdac_ext_stream_set_spib() argument
456 writel(value, stream->spib_addr); in snd_hdac_ext_stream_set_spib()
470 struct hdac_ext_stream *stream) in snd_hdac_ext_stream_get_spbmaxfifo() argument
479 return readl(stream->fifo_addr); in snd_hdac_ext_stream_get_spbmaxfifo()
491 struct hdac_stream *stream; in snd_hdac_ext_stop_streams() local
494 list_for_each_entry(stream, &bus->stream_list, list) in snd_hdac_ext_stop_streams()
495 snd_hdac_stream_stop(stream); in snd_hdac_ext_stop_streams()