diff options
author | Rakesh Ughreja <rakesh.a.ughreja@intel.com> | 2018-06-01 23:53:50 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2018-06-28 01:33:29 -0400 |
commit | 76f56fae1cf9040325a58d1375291baf71dfaf03 (patch) | |
tree | ecc691b24f517dbaf6729b3a0e4d80f3f16a669b /sound/hda/ext/hdac_ext_stream.c | |
parent | 3787a39852b0d6a9e67336f8fb5815c13ab78bb6 (diff) |
ALSA: hdac: Remove usage of struct hdac_ext_bus and use hdac_bus instead
This patch removes the hdac_ext_bus structure. The legacy and
enhanced HDaudio capabilities can be handled in a backward-compatible
way without separate definitions.
Follow-up patches in this series handle the driver definition.
Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/hda/ext/hdac_ext_stream.c')
-rw-r--r-- | sound/hda/ext/hdac_ext_stream.c | 104 |
1 files changed, 45 insertions, 59 deletions
diff --git a/sound/hda/ext/hdac_ext_stream.c b/sound/hda/ext/hdac_ext_stream.c index c96d7a7a36af..1bd27576db98 100644 --- a/sound/hda/ext/hdac_ext_stream.c +++ b/sound/hda/ext/hdac_ext_stream.c | |||
@@ -25,7 +25,7 @@ | |||
25 | 25 | ||
26 | /** | 26 | /** |
27 | * snd_hdac_ext_stream_init - initialize each stream (aka device) | 27 | * snd_hdac_ext_stream_init - initialize each stream (aka device) |
28 | * @ebus: HD-audio ext core bus | 28 | * @bus: HD-audio core bus |
29 | * @stream: HD-audio ext core stream object to initialize | 29 | * @stream: HD-audio ext core stream object to initialize |
30 | * @idx: stream index number | 30 | * @idx: stream index number |
31 | * @direction: stream direction (SNDRV_PCM_STREAM_PLAYBACK or SNDRV_PCM_STREAM_CAPTURE) | 31 | * @direction: stream direction (SNDRV_PCM_STREAM_PLAYBACK or SNDRV_PCM_STREAM_CAPTURE) |
@@ -34,18 +34,16 @@ | |||
34 | * initialize the stream, if ppcap is enabled then init those and then | 34 | * initialize the stream, if ppcap is enabled then init those and then |
35 | * invoke hdac stream initialization routine | 35 | * invoke hdac stream initialization routine |
36 | */ | 36 | */ |
37 | void snd_hdac_ext_stream_init(struct hdac_ext_bus *ebus, | 37 | void snd_hdac_ext_stream_init(struct hdac_bus *bus, |
38 | struct hdac_ext_stream *stream, | 38 | struct hdac_ext_stream *stream, |
39 | int idx, int direction, int tag) | 39 | int idx, int direction, int tag) |
40 | { | 40 | { |
41 | struct hdac_bus *bus = &ebus->bus; | ||
42 | |||
43 | if (bus->ppcap) { | 41 | if (bus->ppcap) { |
44 | stream->pphc_addr = bus->ppcap + AZX_PPHC_BASE + | 42 | stream->pphc_addr = bus->ppcap + AZX_PPHC_BASE + |
45 | AZX_PPHC_INTERVAL * idx; | 43 | AZX_PPHC_INTERVAL * idx; |
46 | 44 | ||
47 | stream->pplc_addr = bus->ppcap + AZX_PPLC_BASE + | 45 | stream->pplc_addr = bus->ppcap + AZX_PPLC_BASE + |
48 | AZX_PPLC_MULTI * ebus->num_streams + | 46 | AZX_PPLC_MULTI * bus->num_streams + |
49 | AZX_PPLC_INTERVAL * idx; | 47 | AZX_PPLC_INTERVAL * idx; |
50 | } | 48 | } |
51 | 49 | ||
@@ -71,12 +69,12 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stream_init); | |||
71 | /** | 69 | /** |
72 | * snd_hdac_ext_stream_init_all - create and initialize the stream objects | 70 | * snd_hdac_ext_stream_init_all - create and initialize the stream objects |
73 | * for an extended hda bus | 71 | * for an extended hda bus |
74 | * @ebus: HD-audio ext core bus | 72 | * @bus: HD-audio core bus |
75 | * @start_idx: start index for streams | 73 | * @start_idx: start index for streams |
76 | * @num_stream: number of streams to initialize | 74 | * @num_stream: number of streams to initialize |
77 | * @dir: direction of streams | 75 | * @dir: direction of streams |
78 | */ | 76 | */ |
79 | int snd_hdac_ext_stream_init_all(struct hdac_ext_bus *ebus, int start_idx, | 77 | int snd_hdac_ext_stream_init_all(struct hdac_bus *bus, int start_idx, |
80 | int num_stream, int dir) | 78 | int num_stream, int dir) |
81 | { | 79 | { |
82 | int stream_tag = 0; | 80 | int stream_tag = 0; |
@@ -88,7 +86,7 @@ int snd_hdac_ext_stream_init_all(struct hdac_ext_bus *ebus, int start_idx, | |||
88 | if (!stream) | 86 | if (!stream) |
89 | return -ENOMEM; | 87 | return -ENOMEM; |
90 | tag = ++stream_tag; | 88 | tag = ++stream_tag; |
91 | snd_hdac_ext_stream_init(ebus, stream, idx, dir, tag); | 89 | snd_hdac_ext_stream_init(bus, stream, idx, dir, tag); |
92 | idx++; | 90 | idx++; |
93 | } | 91 | } |
94 | 92 | ||
@@ -100,17 +98,16 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stream_init_all); | |||
100 | /** | 98 | /** |
101 | * snd_hdac_stream_free_all - free hdac extended stream objects | 99 | * snd_hdac_stream_free_all - free hdac extended stream objects |
102 | * | 100 | * |
103 | * @ebus: HD-audio ext core bus | 101 | * @bus: HD-audio core bus |
104 | */ | 102 | */ |
105 | void snd_hdac_stream_free_all(struct hdac_ext_bus *ebus) | 103 | void snd_hdac_stream_free_all(struct hdac_bus *bus) |
106 | { | 104 | { |
107 | struct hdac_stream *s, *_s; | 105 | struct hdac_stream *s, *_s; |
108 | struct hdac_ext_stream *stream; | 106 | struct hdac_ext_stream *stream; |
109 | struct hdac_bus *bus = ebus_to_hbus(ebus); | ||
110 | 107 | ||
111 | list_for_each_entry_safe(s, _s, &bus->stream_list, list) { | 108 | list_for_each_entry_safe(s, _s, &bus->stream_list, list) { |
112 | stream = stream_to_hdac_ext_stream(s); | 109 | stream = stream_to_hdac_ext_stream(s); |
113 | snd_hdac_ext_stream_decouple(ebus, stream, false); | 110 | snd_hdac_ext_stream_decouple(bus, stream, false); |
114 | list_del(&s->list); | 111 | list_del(&s->list); |
115 | kfree(stream); | 112 | kfree(stream); |
116 | } | 113 | } |
@@ -119,15 +116,14 @@ EXPORT_SYMBOL_GPL(snd_hdac_stream_free_all); | |||
119 | 116 | ||
120 | /** | 117 | /** |
121 | * snd_hdac_ext_stream_decouple - decouple the hdac stream | 118 | * snd_hdac_ext_stream_decouple - decouple the hdac stream |
122 | * @ebus: HD-audio ext core bus | 119 | * @bus: HD-audio core bus |
123 | * @stream: HD-audio ext core stream object to initialize | 120 | * @stream: HD-audio ext core stream object to initialize |
124 | * @decouple: flag to decouple | 121 | * @decouple: flag to decouple |
125 | */ | 122 | */ |
126 | void snd_hdac_ext_stream_decouple(struct hdac_ext_bus *ebus, | 123 | void snd_hdac_ext_stream_decouple(struct hdac_bus *bus, |
127 | struct hdac_ext_stream *stream, bool decouple) | 124 | struct hdac_ext_stream *stream, bool decouple) |
128 | { | 125 | { |
129 | struct hdac_stream *hstream = &stream->hstream; | 126 | struct hdac_stream *hstream = &stream->hstream; |
130 | struct hdac_bus *bus = &ebus->bus; | ||
131 | u32 val; | 127 | u32 val; |
132 | int mask = AZX_PPCTL_PROCEN(hstream->index); | 128 | int mask = AZX_PPCTL_PROCEN(hstream->index); |
133 | 129 | ||
@@ -251,19 +247,18 @@ void snd_hdac_ext_link_clear_stream_id(struct hdac_ext_link *link, | |||
251 | EXPORT_SYMBOL_GPL(snd_hdac_ext_link_clear_stream_id); | 247 | EXPORT_SYMBOL_GPL(snd_hdac_ext_link_clear_stream_id); |
252 | 248 | ||
253 | static struct hdac_ext_stream * | 249 | static struct hdac_ext_stream * |
254 | hdac_ext_link_stream_assign(struct hdac_ext_bus *ebus, | 250 | hdac_ext_link_stream_assign(struct hdac_bus *bus, |
255 | struct snd_pcm_substream *substream) | 251 | struct snd_pcm_substream *substream) |
256 | { | 252 | { |
257 | struct hdac_ext_stream *res = NULL; | 253 | struct hdac_ext_stream *res = NULL; |
258 | struct hdac_stream *stream = NULL; | 254 | struct hdac_stream *stream = NULL; |
259 | struct hdac_bus *hbus = &ebus->bus; | ||
260 | 255 | ||
261 | if (!hbus->ppcap) { | 256 | if (!bus->ppcap) { |
262 | dev_err(hbus->dev, "stream type not supported\n"); | 257 | dev_err(bus->dev, "stream type not supported\n"); |
263 | return NULL; | 258 | return NULL; |
264 | } | 259 | } |
265 | 260 | ||
266 | list_for_each_entry(stream, &hbus->stream_list, list) { | 261 | list_for_each_entry(stream, &bus->stream_list, list) { |
267 | struct hdac_ext_stream *hstream = container_of(stream, | 262 | struct hdac_ext_stream *hstream = container_of(stream, |
268 | struct hdac_ext_stream, | 263 | struct hdac_ext_stream, |
269 | hstream); | 264 | hstream); |
@@ -277,34 +272,33 @@ hdac_ext_link_stream_assign(struct hdac_ext_bus *ebus, | |||
277 | } | 272 | } |
278 | 273 | ||
279 | if (!hstream->link_locked) { | 274 | if (!hstream->link_locked) { |
280 | snd_hdac_ext_stream_decouple(ebus, hstream, true); | 275 | snd_hdac_ext_stream_decouple(bus, hstream, true); |
281 | res = hstream; | 276 | res = hstream; |
282 | break; | 277 | break; |
283 | } | 278 | } |
284 | } | 279 | } |
285 | if (res) { | 280 | if (res) { |
286 | spin_lock_irq(&hbus->reg_lock); | 281 | spin_lock_irq(&bus->reg_lock); |
287 | res->link_locked = 1; | 282 | res->link_locked = 1; |
288 | res->link_substream = substream; | 283 | res->link_substream = substream; |
289 | spin_unlock_irq(&hbus->reg_lock); | 284 | spin_unlock_irq(&bus->reg_lock); |
290 | } | 285 | } |
291 | return res; | 286 | return res; |
292 | } | 287 | } |
293 | 288 | ||
294 | static struct hdac_ext_stream * | 289 | static struct hdac_ext_stream * |
295 | hdac_ext_host_stream_assign(struct hdac_ext_bus *ebus, | 290 | hdac_ext_host_stream_assign(struct hdac_bus *bus, |
296 | struct snd_pcm_substream *substream) | 291 | struct snd_pcm_substream *substream) |
297 | { | 292 | { |
298 | struct hdac_ext_stream *res = NULL; | 293 | struct hdac_ext_stream *res = NULL; |
299 | struct hdac_stream *stream = NULL; | 294 | struct hdac_stream *stream = NULL; |
300 | struct hdac_bus *hbus = &ebus->bus; | ||
301 | 295 | ||
302 | if (!hbus->ppcap) { | 296 | if (!bus->ppcap) { |
303 | dev_err(hbus->dev, "stream type not supported\n"); | 297 | dev_err(bus->dev, "stream type not supported\n"); |
304 | return NULL; | 298 | return NULL; |
305 | } | 299 | } |
306 | 300 | ||
307 | list_for_each_entry(stream, &hbus->stream_list, list) { | 301 | list_for_each_entry(stream, &bus->stream_list, list) { |
308 | struct hdac_ext_stream *hstream = container_of(stream, | 302 | struct hdac_ext_stream *hstream = container_of(stream, |
309 | struct hdac_ext_stream, | 303 | struct hdac_ext_stream, |
310 | hstream); | 304 | hstream); |
@@ -313,17 +307,17 @@ hdac_ext_host_stream_assign(struct hdac_ext_bus *ebus, | |||
313 | 307 | ||
314 | if (!stream->opened) { | 308 | if (!stream->opened) { |
315 | if (!hstream->decoupled) | 309 | if (!hstream->decoupled) |
316 | snd_hdac_ext_stream_decouple(ebus, hstream, true); | 310 | snd_hdac_ext_stream_decouple(bus, hstream, true); |
317 | res = hstream; | 311 | res = hstream; |
318 | break; | 312 | break; |
319 | } | 313 | } |
320 | } | 314 | } |
321 | if (res) { | 315 | if (res) { |
322 | spin_lock_irq(&hbus->reg_lock); | 316 | spin_lock_irq(&bus->reg_lock); |
323 | res->hstream.opened = 1; | 317 | res->hstream.opened = 1; |
324 | res->hstream.running = 0; | 318 | res->hstream.running = 0; |
325 | res->hstream.substream = substream; | 319 | res->hstream.substream = substream; |
326 | spin_unlock_irq(&hbus->reg_lock); | 320 | spin_unlock_irq(&bus->reg_lock); |
327 | } | 321 | } |
328 | 322 | ||
329 | return res; | 323 | return res; |
@@ -331,7 +325,7 @@ hdac_ext_host_stream_assign(struct hdac_ext_bus *ebus, | |||
331 | 325 | ||
332 | /** | 326 | /** |
333 | * snd_hdac_ext_stream_assign - assign a stream for the PCM | 327 | * snd_hdac_ext_stream_assign - assign a stream for the PCM |
334 | * @ebus: HD-audio ext core bus | 328 | * @bus: HD-audio core bus |
335 | * @substream: PCM substream to assign | 329 | * @substream: PCM substream to assign |
336 | * @type: type of stream (coupled, host or link stream) | 330 | * @type: type of stream (coupled, host or link stream) |
337 | * | 331 | * |
@@ -346,27 +340,26 @@ hdac_ext_host_stream_assign(struct hdac_ext_bus *ebus, | |||
346 | * the same stream object when it's used beforehand. when a stream is | 340 | * the same stream object when it's used beforehand. when a stream is |
347 | * decoupled, it becomes a host stream and link stream. | 341 | * decoupled, it becomes a host stream and link stream. |
348 | */ | 342 | */ |
349 | struct hdac_ext_stream *snd_hdac_ext_stream_assign(struct hdac_ext_bus *ebus, | 343 | struct hdac_ext_stream *snd_hdac_ext_stream_assign(struct hdac_bus *bus, |
350 | struct snd_pcm_substream *substream, | 344 | struct snd_pcm_substream *substream, |
351 | int type) | 345 | int type) |
352 | { | 346 | { |
353 | struct hdac_ext_stream *hstream = NULL; | 347 | struct hdac_ext_stream *hstream = NULL; |
354 | struct hdac_stream *stream = NULL; | 348 | struct hdac_stream *stream = NULL; |
355 | struct hdac_bus *hbus = &ebus->bus; | ||
356 | 349 | ||
357 | switch (type) { | 350 | switch (type) { |
358 | case HDAC_EXT_STREAM_TYPE_COUPLED: | 351 | case HDAC_EXT_STREAM_TYPE_COUPLED: |
359 | stream = snd_hdac_stream_assign(hbus, substream); | 352 | stream = snd_hdac_stream_assign(bus, substream); |
360 | if (stream) | 353 | if (stream) |
361 | hstream = container_of(stream, | 354 | hstream = container_of(stream, |
362 | struct hdac_ext_stream, hstream); | 355 | struct hdac_ext_stream, hstream); |
363 | return hstream; | 356 | return hstream; |
364 | 357 | ||
365 | case HDAC_EXT_STREAM_TYPE_HOST: | 358 | case HDAC_EXT_STREAM_TYPE_HOST: |
366 | return hdac_ext_host_stream_assign(ebus, substream); | 359 | return hdac_ext_host_stream_assign(bus, substream); |
367 | 360 | ||
368 | case HDAC_EXT_STREAM_TYPE_LINK: | 361 | case HDAC_EXT_STREAM_TYPE_LINK: |
369 | return hdac_ext_link_stream_assign(ebus, substream); | 362 | return hdac_ext_link_stream_assign(bus, substream); |
370 | 363 | ||
371 | default: | 364 | default: |
372 | return NULL; | 365 | return NULL; |
@@ -384,7 +377,6 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stream_assign); | |||
384 | void snd_hdac_ext_stream_release(struct hdac_ext_stream *stream, int type) | 377 | void snd_hdac_ext_stream_release(struct hdac_ext_stream *stream, int type) |
385 | { | 378 | { |
386 | struct hdac_bus *bus = stream->hstream.bus; | 379 | struct hdac_bus *bus = stream->hstream.bus; |
387 | struct hdac_ext_bus *ebus = hbus_to_ebus(bus); | ||
388 | 380 | ||
389 | switch (type) { | 381 | switch (type) { |
390 | case HDAC_EXT_STREAM_TYPE_COUPLED: | 382 | case HDAC_EXT_STREAM_TYPE_COUPLED: |
@@ -393,13 +385,13 @@ void snd_hdac_ext_stream_release(struct hdac_ext_stream *stream, int type) | |||
393 | 385 | ||
394 | case HDAC_EXT_STREAM_TYPE_HOST: | 386 | case HDAC_EXT_STREAM_TYPE_HOST: |
395 | if (stream->decoupled && !stream->link_locked) | 387 | if (stream->decoupled && !stream->link_locked) |
396 | snd_hdac_ext_stream_decouple(ebus, stream, false); | 388 | snd_hdac_ext_stream_decouple(bus, stream, false); |
397 | snd_hdac_stream_release(&stream->hstream); | 389 | snd_hdac_stream_release(&stream->hstream); |
398 | break; | 390 | break; |
399 | 391 | ||
400 | case HDAC_EXT_STREAM_TYPE_LINK: | 392 | case HDAC_EXT_STREAM_TYPE_LINK: |
401 | if (stream->decoupled && !stream->hstream.opened) | 393 | if (stream->decoupled && !stream->hstream.opened) |
402 | snd_hdac_ext_stream_decouple(ebus, stream, false); | 394 | snd_hdac_ext_stream_decouple(bus, stream, false); |
403 | spin_lock_irq(&bus->reg_lock); | 395 | spin_lock_irq(&bus->reg_lock); |
404 | stream->link_locked = 0; | 396 | stream->link_locked = 0; |
405 | stream->link_substream = NULL; | 397 | stream->link_substream = NULL; |
@@ -415,16 +407,15 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stream_release); | |||
415 | 407 | ||
416 | /** | 408 | /** |
417 | * snd_hdac_ext_stream_spbcap_enable - enable SPIB for a stream | 409 | * snd_hdac_ext_stream_spbcap_enable - enable SPIB for a stream |
418 | * @ebus: HD-audio ext core bus | 410 | * @bus: HD-audio core bus |
419 | * @enable: flag to enable/disable SPIB | 411 | * @enable: flag to enable/disable SPIB |
420 | * @index: stream index for which SPIB need to be enabled | 412 | * @index: stream index for which SPIB need to be enabled |
421 | */ | 413 | */ |
422 | void snd_hdac_ext_stream_spbcap_enable(struct hdac_ext_bus *ebus, | 414 | void snd_hdac_ext_stream_spbcap_enable(struct hdac_bus *bus, |
423 | bool enable, int index) | 415 | bool enable, int index) |
424 | { | 416 | { |
425 | u32 mask = 0; | 417 | u32 mask = 0; |
426 | u32 register_mask = 0; | 418 | u32 register_mask = 0; |
427 | struct hdac_bus *bus = &ebus->bus; | ||
428 | 419 | ||
429 | if (!bus->spbcap) { | 420 | if (!bus->spbcap) { |
430 | dev_err(bus->dev, "Address of SPB capability is NULL\n"); | 421 | dev_err(bus->dev, "Address of SPB capability is NULL\n"); |
@@ -446,14 +437,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stream_spbcap_enable); | |||
446 | 437 | ||
447 | /** | 438 | /** |
448 | * snd_hdac_ext_stream_set_spib - sets the spib value of a stream | 439 | * snd_hdac_ext_stream_set_spib - sets the spib value of a stream |
449 | * @ebus: HD-audio ext core bus | 440 | * @bus: HD-audio core bus |
450 | * @stream: hdac_ext_stream | 441 | * @stream: hdac_ext_stream |
451 | * @value: spib value to set | 442 | * @value: spib value to set |
452 | */ | 443 | */ |
453 | int snd_hdac_ext_stream_set_spib(struct hdac_ext_bus *ebus, | 444 | int snd_hdac_ext_stream_set_spib(struct hdac_bus *bus, |
454 | struct hdac_ext_stream *stream, u32 value) | 445 | struct hdac_ext_stream *stream, u32 value) |
455 | { | 446 | { |
456 | struct hdac_bus *bus = &ebus->bus; | ||
457 | 447 | ||
458 | if (!bus->spbcap) { | 448 | if (!bus->spbcap) { |
459 | dev_err(bus->dev, "Address of SPB capability is NULL\n"); | 449 | dev_err(bus->dev, "Address of SPB capability is NULL\n"); |
@@ -468,15 +458,14 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stream_set_spib); | |||
468 | 458 | ||
469 | /** | 459 | /** |
470 | * snd_hdac_ext_stream_get_spbmaxfifo - gets the spib value of a stream | 460 | * snd_hdac_ext_stream_get_spbmaxfifo - gets the spib value of a stream |
471 | * @ebus: HD-audio ext core bus | 461 | * @bus: HD-audio core bus |
472 | * @stream: hdac_ext_stream | 462 | * @stream: hdac_ext_stream |
473 | * | 463 | * |
474 | * Return maxfifo for the stream | 464 | * Return maxfifo for the stream |
475 | */ | 465 | */ |
476 | int snd_hdac_ext_stream_get_spbmaxfifo(struct hdac_ext_bus *ebus, | 466 | int snd_hdac_ext_stream_get_spbmaxfifo(struct hdac_bus *bus, |
477 | struct hdac_ext_stream *stream) | 467 | struct hdac_ext_stream *stream) |
478 | { | 468 | { |
479 | struct hdac_bus *bus = &ebus->bus; | ||
480 | 469 | ||
481 | if (!bus->spbcap) { | 470 | if (!bus->spbcap) { |
482 | dev_err(bus->dev, "Address of SPB capability is NULL\n"); | 471 | dev_err(bus->dev, "Address of SPB capability is NULL\n"); |
@@ -490,11 +479,10 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stream_get_spbmaxfifo); | |||
490 | 479 | ||
491 | /** | 480 | /** |
492 | * snd_hdac_ext_stop_streams - stop all stream if running | 481 | * snd_hdac_ext_stop_streams - stop all stream if running |
493 | * @ebus: HD-audio ext core bus | 482 | * @bus: HD-audio core bus |
494 | */ | 483 | */ |
495 | void snd_hdac_ext_stop_streams(struct hdac_ext_bus *ebus) | 484 | void snd_hdac_ext_stop_streams(struct hdac_bus *bus) |
496 | { | 485 | { |
497 | struct hdac_bus *bus = ebus_to_hbus(ebus); | ||
498 | struct hdac_stream *stream; | 486 | struct hdac_stream *stream; |
499 | 487 | ||
500 | if (bus->chip_init) { | 488 | if (bus->chip_init) { |
@@ -507,16 +495,15 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stop_streams); | |||
507 | 495 | ||
508 | /** | 496 | /** |
509 | * snd_hdac_ext_stream_drsm_enable - enable DMA resume for a stream | 497 | * snd_hdac_ext_stream_drsm_enable - enable DMA resume for a stream |
510 | * @ebus: HD-audio ext core bus | 498 | * @bus: HD-audio core bus |
511 | * @enable: flag to enable/disable DRSM | 499 | * @enable: flag to enable/disable DRSM |
512 | * @index: stream index for which DRSM need to be enabled | 500 | * @index: stream index for which DRSM need to be enabled |
513 | */ | 501 | */ |
514 | void snd_hdac_ext_stream_drsm_enable(struct hdac_ext_bus *ebus, | 502 | void snd_hdac_ext_stream_drsm_enable(struct hdac_bus *bus, |
515 | bool enable, int index) | 503 | bool enable, int index) |
516 | { | 504 | { |
517 | u32 mask = 0; | 505 | u32 mask = 0; |
518 | u32 register_mask = 0; | 506 | u32 register_mask = 0; |
519 | struct hdac_bus *bus = &ebus->bus; | ||
520 | 507 | ||
521 | if (!bus->drsmcap) { | 508 | if (!bus->drsmcap) { |
522 | dev_err(bus->dev, "Address of DRSM capability is NULL\n"); | 509 | dev_err(bus->dev, "Address of DRSM capability is NULL\n"); |
@@ -538,14 +525,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stream_drsm_enable); | |||
538 | 525 | ||
539 | /** | 526 | /** |
540 | * snd_hdac_ext_stream_set_dpibr - sets the dpibr value of a stream | 527 | * snd_hdac_ext_stream_set_dpibr - sets the dpibr value of a stream |
541 | * @ebus: HD-audio ext core bus | 528 | * @bus: HD-audio core bus |
542 | * @stream: hdac_ext_stream | 529 | * @stream: hdac_ext_stream |
543 | * @value: dpib value to set | 530 | * @value: dpib value to set |
544 | */ | 531 | */ |
545 | int snd_hdac_ext_stream_set_dpibr(struct hdac_ext_bus *ebus, | 532 | int snd_hdac_ext_stream_set_dpibr(struct hdac_bus *bus, |
546 | struct hdac_ext_stream *stream, u32 value) | 533 | struct hdac_ext_stream *stream, u32 value) |
547 | { | 534 | { |
548 | struct hdac_bus *bus = &ebus->bus; | ||
549 | 535 | ||
550 | if (!bus->drsmcap) { | 536 | if (!bus->drsmcap) { |
551 | dev_err(bus->dev, "Address of DRSM capability is NULL\n"); | 537 | dev_err(bus->dev, "Address of DRSM capability is NULL\n"); |
@@ -560,7 +546,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_stream_set_dpibr); | |||
560 | 546 | ||
561 | /** | 547 | /** |
562 | * snd_hdac_ext_stream_set_lpib - sets the lpib value of a stream | 548 | * snd_hdac_ext_stream_set_lpib - sets the lpib value of a stream |
563 | * @ebus: HD-audio ext core bus | 549 | * @bus: HD-audio core bus |
564 | * @stream: hdac_ext_stream | 550 | * @stream: hdac_ext_stream |
565 | * @value: lpib value to set | 551 | * @value: lpib value to set |
566 | */ | 552 | */ |