Lines Matching refs:ebus

37 void snd_hdac_ext_stream_init(struct hdac_ext_bus *ebus,  in snd_hdac_ext_stream_init()  argument
41 struct hdac_bus *bus = &ebus->bus; in snd_hdac_ext_stream_init()
43 if (ebus->ppcap) { in snd_hdac_ext_stream_init()
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()
48 AZX_PPLC_MULTI * ebus->num_streams + in snd_hdac_ext_stream_init()
52 if (ebus->spbcap) { 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()
75 int snd_hdac_ext_stream_init_all(struct hdac_ext_bus *ebus, int start_idx, in snd_hdac_ext_stream_init_all() argument
87 snd_hdac_ext_stream_init(ebus, stream, idx, dir, tag); in snd_hdac_ext_stream_init_all()
101 void snd_hdac_stream_free_all(struct hdac_ext_bus *ebus) in snd_hdac_stream_free_all() argument
105 struct hdac_bus *bus = ebus_to_hbus(ebus); in snd_hdac_stream_free_all()
122 void snd_hdac_ext_stream_decouple(struct hdac_ext_bus *ebus, in snd_hdac_ext_stream_decouple() argument
126 struct hdac_bus *bus = &ebus->bus; in snd_hdac_ext_stream_decouple()
130 snd_hdac_updatel(ebus->ppcap, AZX_REG_PP_PPCTL, 0, in snd_hdac_ext_stream_decouple()
133 snd_hdac_updatel(ebus->ppcap, AZX_REG_PP_PPCTL, in snd_hdac_ext_stream_decouple()
247 hdac_ext_link_stream_assign(struct hdac_ext_bus *ebus, in hdac_ext_link_stream_assign() argument
252 struct hdac_bus *hbus = &ebus->bus; in hdac_ext_link_stream_assign()
254 if (!ebus->ppcap) { in hdac_ext_link_stream_assign()
273 snd_hdac_ext_stream_decouple(ebus, hstream, true); in hdac_ext_link_stream_assign()
288 hdac_ext_host_stream_assign(struct hdac_ext_bus *ebus, in hdac_ext_host_stream_assign() argument
293 struct hdac_bus *hbus = &ebus->bus; in hdac_ext_host_stream_assign()
295 if (!ebus->ppcap) { in hdac_ext_host_stream_assign()
309 snd_hdac_ext_stream_decouple(ebus, hstream, true); in hdac_ext_host_stream_assign()
342 struct hdac_ext_stream *snd_hdac_ext_stream_assign(struct hdac_ext_bus *ebus, in snd_hdac_ext_stream_assign() argument
348 struct hdac_bus *hbus = &ebus->bus; in snd_hdac_ext_stream_assign()
359 return hdac_ext_host_stream_assign(ebus, substream); in snd_hdac_ext_stream_assign()
362 return hdac_ext_link_stream_assign(ebus, substream); in snd_hdac_ext_stream_assign()
380 struct hdac_ext_bus *ebus = hbus_to_ebus(bus); in snd_hdac_ext_stream_release() local
389 snd_hdac_ext_stream_decouple(ebus, stream, false); in snd_hdac_ext_stream_release()
395 snd_hdac_ext_stream_decouple(ebus, stream, false); in snd_hdac_ext_stream_release()
415 void snd_hdac_ext_stream_spbcap_enable(struct hdac_ext_bus *ebus, in snd_hdac_ext_stream_spbcap_enable() argument
420 struct hdac_bus *bus = &ebus->bus; in snd_hdac_ext_stream_spbcap_enable()
422 if (!ebus->spbcap) { in snd_hdac_ext_stream_spbcap_enable()
429 register_mask = readl(ebus->spbcap + AZX_REG_SPB_SPBFCCTL); in snd_hdac_ext_stream_spbcap_enable()
434 snd_hdac_updatel(ebus->spbcap, AZX_REG_SPB_SPBFCCTL, 0, mask); in snd_hdac_ext_stream_spbcap_enable()
436 snd_hdac_updatel(ebus->spbcap, AZX_REG_SPB_SPBFCCTL, mask, 0); in snd_hdac_ext_stream_spbcap_enable()
446 int snd_hdac_ext_stream_set_spib(struct hdac_ext_bus *ebus, in snd_hdac_ext_stream_set_spib() argument
449 struct hdac_bus *bus = &ebus->bus; in snd_hdac_ext_stream_set_spib()
451 if (!ebus->spbcap) { in snd_hdac_ext_stream_set_spib()
469 int snd_hdac_ext_stream_get_spbmaxfifo(struct hdac_ext_bus *ebus, in snd_hdac_ext_stream_get_spbmaxfifo() argument
472 struct hdac_bus *bus = &ebus->bus; in snd_hdac_ext_stream_get_spbmaxfifo()
474 if (!ebus->spbcap) { in snd_hdac_ext_stream_get_spbmaxfifo()
488 void snd_hdac_ext_stop_streams(struct hdac_ext_bus *ebus) in snd_hdac_ext_stop_streams() argument
490 struct hdac_bus *bus = ebus_to_hbus(ebus); in snd_hdac_ext_stop_streams()