Lines Matching defs:bus

47 	snd_hdac_ext_stream_decouple(hstream->bus, hext_stream, false);
49 snd_hdac_ext_stream_decouple(hstream->bus, hext_stream, true);
56 * @bus: HD-audio core bus
65 static void snd_hdac_ext_stream_init(struct hdac_bus *bus,
69 if (bus->ppcap) {
70 hext_stream->pphc_addr = bus->ppcap + AZX_PPHC_BASE +
73 hext_stream->pplc_addr = bus->ppcap + AZX_PPLC_BASE +
74 AZX_PPLC_MULTI * bus->num_streams +
79 snd_hdac_stream_init(bus, &hext_stream->hstream, idx, direction, tag);
84 * for an extended hda bus
85 * @bus: HD-audio core bus
90 int snd_hdac_ext_stream_init_all(struct hdac_bus *bus, int start_idx,
93 struct pci_dev *pci = to_pci_dev(bus->dev);
109 snd_hdac_ext_stream_init(bus, hext_stream, idx, dir, tag);
122 * @bus: HD-audio core bus
124 void snd_hdac_ext_stream_free_all(struct hdac_bus *bus)
129 list_for_each_entry_safe(s, _s, &bus->stream_list, list) {
131 snd_hdac_ext_stream_decouple(bus, hext_stream, false);
138 void snd_hdac_ext_stream_decouple_locked(struct hdac_bus *bus,
146 val = readw(bus->ppcap + AZX_REG_PP_PPCTL) & mask;
149 snd_hdac_updatel(bus->ppcap, AZX_REG_PP_PPCTL, mask, mask);
151 snd_hdac_updatel(bus->ppcap, AZX_REG_PP_PPCTL, mask, 0);
159 * @bus: HD-audio core bus
163 void snd_hdac_ext_stream_decouple(struct hdac_bus *bus,
166 spin_lock_irq(&bus->reg_lock);
167 snd_hdac_ext_stream_decouple_locked(bus, hext_stream, decouple);
168 spin_unlock_irq(&bus->reg_lock);
257 hdac_ext_link_dma_stream_assign(struct hdac_bus *bus,
263 if (!bus->ppcap) {
264 dev_err(bus->dev, "stream type not supported\n");
268 spin_lock_irq(&bus->reg_lock);
269 list_for_each_entry(hstream, &bus->stream_list, list) {
284 snd_hdac_ext_stream_decouple_locked(bus, res, true);
288 spin_unlock_irq(&bus->reg_lock);
293 hdac_ext_host_dma_stream_assign(struct hdac_bus *bus,
299 if (!bus->ppcap) {
300 dev_err(bus->dev, "stream type not supported\n");
304 spin_lock_irq(&bus->reg_lock);
305 list_for_each_entry(hstream, &bus->stream_list, list) {
318 snd_hdac_ext_stream_decouple_locked(bus, res, true);
323 spin_unlock_irq(&bus->reg_lock);
330 * @bus: HD-audio core bus
345 struct hdac_ext_stream *snd_hdac_ext_stream_assign(struct hdac_bus *bus,
354 hstream = snd_hdac_stream_assign(bus, substream);
362 return hdac_ext_host_dma_stream_assign(bus, substream);
365 return hdac_ext_link_dma_stream_assign(bus, substream);
382 struct hdac_bus *bus = hext_stream->hstream.bus;
390 spin_lock_irq(&bus->reg_lock);
393 snd_hdac_ext_stream_decouple_locked(bus, hext_stream, false);
395 spin_unlock_irq(&bus->reg_lock);
399 spin_lock_irq(&bus->reg_lock);
402 snd_hdac_ext_stream_decouple_locked(bus, hext_stream, false);
405 spin_unlock_irq(&bus->reg_lock);
409 dev_dbg(bus->dev, "Invalid type %d\n", type);
417 * @bus: HD-audio core bus
424 struct hdac_ext_stream *snd_hdac_ext_cstream_assign(struct hdac_bus *bus,
430 spin_lock_irq(&bus->reg_lock);
431 list_for_each_entry(hstream, &bus->stream_list, list) {
444 snd_hdac_ext_stream_decouple_locked(bus, res, true);
449 spin_unlock_irq(&bus->reg_lock);