Lines Matching refs:hext_stream
28 int snd_hdac_ext_host_stream_setup(struct hdac_ext_stream *hext_stream, bool code_loading) in snd_hdac_ext_host_stream_setup() argument
30 return hext_stream->host_setup(hdac_stream(hext_stream), code_loading); in snd_hdac_ext_host_stream_setup()
44 struct hdac_ext_stream *hext_stream = stream_to_hdac_ext_stream(hstream); in snd_hdac_apl_host_stream_setup() local
47 snd_hdac_ext_stream_decouple(hstream->bus, hext_stream, false); in snd_hdac_apl_host_stream_setup()
49 snd_hdac_ext_stream_decouple(hstream->bus, hext_stream, true); in snd_hdac_apl_host_stream_setup()
66 struct hdac_ext_stream *hext_stream, in snd_hdac_ext_stream_init() argument
70 hext_stream->pphc_addr = bus->ppcap + AZX_PPHC_BASE + in snd_hdac_ext_stream_init()
73 hext_stream->pplc_addr = bus->ppcap + AZX_PPLC_BASE + in snd_hdac_ext_stream_init()
78 hext_stream->decoupled = false; in snd_hdac_ext_stream_init()
79 snd_hdac_stream_init(bus, &hext_stream->hstream, idx, direction, tag); in snd_hdac_ext_stream_init()
104 struct hdac_ext_stream *hext_stream = in snd_hdac_ext_stream_init_all() local
105 kzalloc(sizeof(*hext_stream), GFP_KERNEL); in snd_hdac_ext_stream_init_all()
106 if (!hext_stream) in snd_hdac_ext_stream_init_all()
109 snd_hdac_ext_stream_init(bus, hext_stream, idx, dir, tag); in snd_hdac_ext_stream_init_all()
111 hext_stream->host_setup = setup_op; in snd_hdac_ext_stream_init_all()
127 struct hdac_ext_stream *hext_stream; in snd_hdac_ext_stream_free_all() local
130 hext_stream = stream_to_hdac_ext_stream(s); in snd_hdac_ext_stream_free_all()
131 snd_hdac_ext_stream_decouple(bus, hext_stream, false); in snd_hdac_ext_stream_free_all()
133 kfree(hext_stream); in snd_hdac_ext_stream_free_all()
139 struct hdac_ext_stream *hext_stream, in snd_hdac_ext_stream_decouple_locked() argument
142 struct hdac_stream *hstream = &hext_stream->hstream; in snd_hdac_ext_stream_decouple_locked()
153 hext_stream->decoupled = decouple; in snd_hdac_ext_stream_decouple_locked()
164 struct hdac_ext_stream *hext_stream, bool decouple) in snd_hdac_ext_stream_decouple() argument
167 snd_hdac_ext_stream_decouple_locked(bus, hext_stream, decouple); in snd_hdac_ext_stream_decouple()
176 void snd_hdac_ext_stream_start(struct hdac_ext_stream *hext_stream) in snd_hdac_ext_stream_start() argument
178 snd_hdac_updatel(hext_stream->pplc_addr, AZX_REG_PPLCCTL, in snd_hdac_ext_stream_start()
187 void snd_hdac_ext_stream_clear(struct hdac_ext_stream *hext_stream) in snd_hdac_ext_stream_clear() argument
189 snd_hdac_updatel(hext_stream->pplc_addr, AZX_REG_PPLCCTL, AZX_PPLCCTL_RUN, 0); in snd_hdac_ext_stream_clear()
197 void snd_hdac_ext_stream_reset(struct hdac_ext_stream *hext_stream) in snd_hdac_ext_stream_reset() argument
202 snd_hdac_ext_stream_clear(hext_stream); in snd_hdac_ext_stream_reset()
204 snd_hdac_updatel(hext_stream->pplc_addr, AZX_REG_PPLCCTL, in snd_hdac_ext_stream_reset()
209 val = readl(hext_stream->pplc_addr + AZX_REG_PPLCCTL) & in snd_hdac_ext_stream_reset()
216 writel(val, hext_stream->pplc_addr + AZX_REG_PPLCCTL); in snd_hdac_ext_stream_reset()
222 val = readl(hext_stream->pplc_addr + AZX_REG_PPLCCTL) & AZX_PPLCCTL_STRST; in snd_hdac_ext_stream_reset()
236 int snd_hdac_ext_stream_setup(struct hdac_ext_stream *hext_stream, int fmt) in snd_hdac_ext_stream_setup() argument
238 struct hdac_stream *hstream = &hext_stream->hstream; in snd_hdac_ext_stream_setup()
242 snd_hdac_ext_stream_clear(hext_stream); in snd_hdac_ext_stream_setup()
244 val = readl(hext_stream->pplc_addr + AZX_REG_PPLCCTL); in snd_hdac_ext_stream_setup()
247 writel(val, hext_stream->pplc_addr + AZX_REG_PPLCCTL); in snd_hdac_ext_stream_setup()
250 writew(fmt, hext_stream->pplc_addr + AZX_REG_PPLCFMT); in snd_hdac_ext_stream_setup()
270 struct hdac_ext_stream *hext_stream = container_of(hstream, in hdac_ext_link_dma_stream_assign() local
277 if (!hext_stream->link_locked) { in hdac_ext_link_dma_stream_assign()
278 res = hext_stream; in hdac_ext_link_dma_stream_assign()
306 struct hdac_ext_stream *hext_stream = container_of(hstream, in hdac_ext_host_dma_stream_assign() local
313 res = hext_stream; in hdac_ext_host_dma_stream_assign()
349 struct hdac_ext_stream *hext_stream = NULL; in snd_hdac_ext_stream_assign() local
356 hext_stream = container_of(hstream, in snd_hdac_ext_stream_assign()
359 return hext_stream; in snd_hdac_ext_stream_assign()
380 void snd_hdac_ext_stream_release(struct hdac_ext_stream *hext_stream, int type) in snd_hdac_ext_stream_release() argument
382 struct hdac_bus *bus = hext_stream->hstream.bus; in snd_hdac_ext_stream_release()
386 snd_hdac_stream_release(&hext_stream->hstream); in snd_hdac_ext_stream_release()
392 if (!hext_stream->link_locked) in snd_hdac_ext_stream_release()
393 snd_hdac_ext_stream_decouple_locked(bus, hext_stream, false); in snd_hdac_ext_stream_release()
394 snd_hdac_stream_release_locked(&hext_stream->hstream); in snd_hdac_ext_stream_release()
401 if (!hext_stream->hstream.opened) in snd_hdac_ext_stream_release()
402 snd_hdac_ext_stream_decouple_locked(bus, hext_stream, false); in snd_hdac_ext_stream_release()
403 hext_stream->link_locked = 0; in snd_hdac_ext_stream_release()
404 hext_stream->link_substream = NULL; in snd_hdac_ext_stream_release()
432 struct hdac_ext_stream *hext_stream = stream_to_hdac_ext_stream(hstream); in snd_hdac_ext_cstream_assign() local
438 res = hext_stream; in snd_hdac_ext_cstream_assign()