Lines Matching full:component
3 // soc-component.c
17 static inline int _soc_component_ret(struct snd_soc_component *component, in _soc_component_ret() argument
30 dev_err(component->dev, in _soc_component_ret()
32 func, component->name, ret); in _soc_component_ret()
38 static inline int soc_component_field_shift(struct snd_soc_component *component, in soc_component_field_shift() argument
42 dev_err(component->dev, "ASoC: error field mask is zero for %s\n", in soc_component_field_shift()
43 component->name); in soc_component_field_shift()
54 #define soc_component_mark_push(component, substream, tgt) ((component)->mark_##tgt = substream) argument
55 #define soc_component_mark_pop(component, substream, tgt) ((component)->mark_##tgt = NULL) argument
56 #define soc_component_mark_match(component, substream, tgt) ((component)->mark_##tgt == substream) argument
58 void snd_soc_component_set_aux(struct snd_soc_component *component, in snd_soc_component_set_aux() argument
61 component->init = (aux) ? aux->init : NULL; in snd_soc_component_set_aux()
64 int snd_soc_component_init(struct snd_soc_component *component) in snd_soc_component_init() argument
68 if (component->init) in snd_soc_component_init()
69 ret = component->init(component); in snd_soc_component_init()
71 return soc_component_ret(component, ret); in snd_soc_component_init()
75 * snd_soc_component_set_sysclk - configure COMPONENT system or master clock.
76 * @component: COMPONENT
84 int snd_soc_component_set_sysclk(struct snd_soc_component *component, in snd_soc_component_set_sysclk() argument
90 if (component->driver->set_sysclk) in snd_soc_component_set_sysclk()
91 ret = component->driver->set_sysclk(component, clk_id, source, in snd_soc_component_set_sysclk()
94 return soc_component_ret(component, ret); in snd_soc_component_set_sysclk()
99 * snd_soc_component_set_pll - configure component PLL.
100 * @component: COMPONENT
108 int snd_soc_component_set_pll(struct snd_soc_component *component, int pll_id, in snd_soc_component_set_pll() argument
114 if (component->driver->set_pll) in snd_soc_component_set_pll()
115 ret = component->driver->set_pll(component, pll_id, source, in snd_soc_component_set_pll()
118 return soc_component_ret(component, ret); in snd_soc_component_set_pll()
122 void snd_soc_component_seq_notifier(struct snd_soc_component *component, in snd_soc_component_seq_notifier() argument
125 if (component->driver->seq_notifier) in snd_soc_component_seq_notifier()
126 component->driver->seq_notifier(component, type, subseq); in snd_soc_component_seq_notifier()
129 int snd_soc_component_stream_event(struct snd_soc_component *component, in snd_soc_component_stream_event() argument
134 if (component->driver->stream_event) in snd_soc_component_stream_event()
135 ret = component->driver->stream_event(component, event); in snd_soc_component_stream_event()
137 return soc_component_ret(component, ret); in snd_soc_component_stream_event()
140 int snd_soc_component_set_bias_level(struct snd_soc_component *component, in snd_soc_component_set_bias_level() argument
145 if (component->driver->set_bias_level) in snd_soc_component_set_bias_level()
146 ret = component->driver->set_bias_level(component, level); in snd_soc_component_set_bias_level()
148 return soc_component_ret(component, ret); in snd_soc_component_set_bias_level()
151 int snd_soc_component_enable_pin(struct snd_soc_component *component, in snd_soc_component_enable_pin() argument
155 snd_soc_component_get_dapm(component); in snd_soc_component_enable_pin()
160 int snd_soc_component_enable_pin_unlocked(struct snd_soc_component *component, in snd_soc_component_enable_pin_unlocked() argument
164 snd_soc_component_get_dapm(component); in snd_soc_component_enable_pin_unlocked()
169 int snd_soc_component_disable_pin(struct snd_soc_component *component, in snd_soc_component_disable_pin() argument
173 snd_soc_component_get_dapm(component); in snd_soc_component_disable_pin()
178 int snd_soc_component_disable_pin_unlocked(struct snd_soc_component *component, in snd_soc_component_disable_pin_unlocked() argument
182 snd_soc_component_get_dapm(component); in snd_soc_component_disable_pin_unlocked()
187 int snd_soc_component_nc_pin(struct snd_soc_component *component, in snd_soc_component_nc_pin() argument
191 snd_soc_component_get_dapm(component); in snd_soc_component_nc_pin()
196 int snd_soc_component_nc_pin_unlocked(struct snd_soc_component *component, in snd_soc_component_nc_pin_unlocked() argument
200 snd_soc_component_get_dapm(component); in snd_soc_component_nc_pin_unlocked()
205 int snd_soc_component_get_pin_status(struct snd_soc_component *component, in snd_soc_component_get_pin_status() argument
209 snd_soc_component_get_dapm(component); in snd_soc_component_get_pin_status()
214 int snd_soc_component_force_enable_pin(struct snd_soc_component *component, in snd_soc_component_force_enable_pin() argument
218 snd_soc_component_get_dapm(component); in snd_soc_component_force_enable_pin()
224 struct snd_soc_component *component, in snd_soc_component_force_enable_pin_unlocked() argument
228 snd_soc_component_get_dapm(component); in snd_soc_component_force_enable_pin_unlocked()
234 * snd_soc_component_set_jack - configure component jack.
235 * @component: COMPONENTs
241 int snd_soc_component_set_jack(struct snd_soc_component *component, in snd_soc_component_set_jack() argument
246 if (component->driver->set_jack) in snd_soc_component_set_jack()
247 ret = component->driver->set_jack(component, jack, data); in snd_soc_component_set_jack()
249 return soc_component_ret(component, ret); in snd_soc_component_set_jack()
253 int snd_soc_component_module_get(struct snd_soc_component *component, in snd_soc_component_module_get() argument
259 if (component->driver->module_get_upon_open == !!upon_open && in snd_soc_component_module_get()
260 !try_module_get(component->dev->driver->owner)) in snd_soc_component_module_get()
265 soc_component_mark_push(component, substream, module); in snd_soc_component_module_get()
267 return soc_component_ret(component, ret); in snd_soc_component_module_get()
270 void snd_soc_component_module_put(struct snd_soc_component *component, in snd_soc_component_module_put() argument
274 if (rollback && !soc_component_mark_match(component, substream, module)) in snd_soc_component_module_put()
277 if (component->driver->module_get_upon_open == !!upon_open) in snd_soc_component_module_put()
278 module_put(component->dev->driver->owner); in snd_soc_component_module_put()
281 soc_component_mark_pop(component, substream, module); in snd_soc_component_module_put()
284 int snd_soc_component_open(struct snd_soc_component *component, in snd_soc_component_open() argument
289 if (component->driver->open) in snd_soc_component_open()
290 ret = component->driver->open(component, substream); in snd_soc_component_open()
294 soc_component_mark_push(component, substream, open); in snd_soc_component_open()
296 return soc_component_ret(component, ret); in snd_soc_component_open()
299 int snd_soc_component_close(struct snd_soc_component *component, in snd_soc_component_close() argument
305 if (rollback && !soc_component_mark_match(component, substream, open)) in snd_soc_component_close()
308 if (component->driver->close) in snd_soc_component_close()
309 ret = component->driver->close(component, substream); in snd_soc_component_close()
312 soc_component_mark_pop(component, substream, open); in snd_soc_component_close()
314 return soc_component_ret(component, ret); in snd_soc_component_close()
317 void snd_soc_component_suspend(struct snd_soc_component *component) in snd_soc_component_suspend() argument
319 if (component->driver->suspend) in snd_soc_component_suspend()
320 component->driver->suspend(component); in snd_soc_component_suspend()
321 component->suspended = 1; in snd_soc_component_suspend()
324 void snd_soc_component_resume(struct snd_soc_component *component) in snd_soc_component_resume() argument
326 if (component->driver->resume) in snd_soc_component_resume()
327 component->driver->resume(component); in snd_soc_component_resume()
328 component->suspended = 0; in snd_soc_component_resume()
331 int snd_soc_component_is_suspended(struct snd_soc_component *component) in snd_soc_component_is_suspended() argument
333 return component->suspended; in snd_soc_component_is_suspended()
336 int snd_soc_component_probe(struct snd_soc_component *component) in snd_soc_component_probe() argument
340 if (component->driver->probe) in snd_soc_component_probe()
341 ret = component->driver->probe(component); in snd_soc_component_probe()
343 return soc_component_ret(component, ret); in snd_soc_component_probe()
346 void snd_soc_component_remove(struct snd_soc_component *component) in snd_soc_component_remove() argument
348 if (component->driver->remove) in snd_soc_component_remove()
349 component->driver->remove(component); in snd_soc_component_remove()
352 int snd_soc_component_of_xlate_dai_id(struct snd_soc_component *component, in snd_soc_component_of_xlate_dai_id() argument
357 if (component->driver->of_xlate_dai_id) in snd_soc_component_of_xlate_dai_id()
358 ret = component->driver->of_xlate_dai_id(component, ep); in snd_soc_component_of_xlate_dai_id()
360 return soc_component_ret(component, ret); in snd_soc_component_of_xlate_dai_id()
363 int snd_soc_component_of_xlate_dai_name(struct snd_soc_component *component, in snd_soc_component_of_xlate_dai_name() argument
367 if (component->driver->of_xlate_dai_name) in snd_soc_component_of_xlate_dai_name()
368 return component->driver->of_xlate_dai_name(component, in snd_soc_component_of_xlate_dai_name()
372 * the error just yet. If a device has more than one component, the in snd_soc_component_of_xlate_dai_name()
378 void snd_soc_component_setup_regmap(struct snd_soc_component *component) in snd_soc_component_setup_regmap() argument
380 int val_bytes = regmap_get_val_bytes(component->regmap); in snd_soc_component_setup_regmap()
384 component->val_bytes = val_bytes; in snd_soc_component_setup_regmap()
391 * component
392 * @component: The component for which to initialize the regmap instance
393 * @regmap: The regmap instance that should be used by the component
396 * associated with the component. Only use this if the regmap instance is not
397 * yet ready when the component is registered. The function must also be called
398 * before the first IO attempt of the component.
400 void snd_soc_component_init_regmap(struct snd_soc_component *component, in snd_soc_component_init_regmap() argument
403 component->regmap = regmap; in snd_soc_component_init_regmap()
404 snd_soc_component_setup_regmap(component); in snd_soc_component_init_regmap()
410 * component
411 * @component: The component for which to de-initialize the regmap instance
413 * Calls regmap_exit() on the regmap instance associated to the component and
414 * removes the regmap instance from the component.
419 void snd_soc_component_exit_regmap(struct snd_soc_component *component) in snd_soc_component_exit_regmap() argument
421 regmap_exit(component->regmap); in snd_soc_component_exit_regmap()
422 component->regmap = NULL; in snd_soc_component_exit_regmap()
431 struct snd_soc_component *component; in snd_soc_component_compr_open() local
434 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_open()
435 if (component->driver->compress_ops && in snd_soc_component_compr_open()
436 component->driver->compress_ops->open) { in snd_soc_component_compr_open()
437 ret = component->driver->compress_ops->open(component, cstream); in snd_soc_component_compr_open()
439 return soc_component_ret(component, ret); in snd_soc_component_compr_open()
441 soc_component_mark_push(component, cstream, compr_open); in snd_soc_component_compr_open()
452 struct snd_soc_component *component; in snd_soc_component_compr_free() local
455 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_free()
456 if (rollback && !soc_component_mark_match(component, cstream, compr_open)) in snd_soc_component_compr_free()
459 if (component->driver->compress_ops && in snd_soc_component_compr_free()
460 component->driver->compress_ops->free) in snd_soc_component_compr_free()
461 component->driver->compress_ops->free(component, cstream); in snd_soc_component_compr_free()
463 soc_component_mark_pop(component, cstream, compr_open); in snd_soc_component_compr_free()
471 struct snd_soc_component *component; in snd_soc_component_compr_trigger() local
474 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_trigger()
475 if (component->driver->compress_ops && in snd_soc_component_compr_trigger()
476 component->driver->compress_ops->trigger) { in snd_soc_component_compr_trigger()
477 ret = component->driver->compress_ops->trigger( in snd_soc_component_compr_trigger()
478 component, cstream, cmd); in snd_soc_component_compr_trigger()
480 return soc_component_ret(component, ret); in snd_soc_component_compr_trigger()
492 struct snd_soc_component *component; in snd_soc_component_compr_set_params() local
495 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_set_params()
496 if (component->driver->compress_ops && in snd_soc_component_compr_set_params()
497 component->driver->compress_ops->set_params) { in snd_soc_component_compr_set_params()
498 ret = component->driver->compress_ops->set_params( in snd_soc_component_compr_set_params()
499 component, cstream, params); in snd_soc_component_compr_set_params()
501 return soc_component_ret(component, ret); in snd_soc_component_compr_set_params()
513 struct snd_soc_component *component; in snd_soc_component_compr_get_params() local
516 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_get_params()
517 if (component->driver->compress_ops && in snd_soc_component_compr_get_params()
518 component->driver->compress_ops->get_params) { in snd_soc_component_compr_get_params()
519 ret = component->driver->compress_ops->get_params( in snd_soc_component_compr_get_params()
520 component, cstream, params); in snd_soc_component_compr_get_params()
521 return soc_component_ret(component, ret); in snd_soc_component_compr_get_params()
533 struct snd_soc_component *component; in snd_soc_component_compr_get_caps() local
538 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_get_caps()
539 if (component->driver->compress_ops && in snd_soc_component_compr_get_caps()
540 component->driver->compress_ops->get_caps) { in snd_soc_component_compr_get_caps()
541 ret = component->driver->compress_ops->get_caps( in snd_soc_component_compr_get_caps()
542 component, cstream, caps); in snd_soc_component_compr_get_caps()
549 return soc_component_ret(component, ret); in snd_soc_component_compr_get_caps()
557 struct snd_soc_component *component; in snd_soc_component_compr_get_codec_caps() local
562 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_get_codec_caps()
563 if (component->driver->compress_ops && in snd_soc_component_compr_get_codec_caps()
564 component->driver->compress_ops->get_codec_caps) { in snd_soc_component_compr_get_codec_caps()
565 ret = component->driver->compress_ops->get_codec_caps( in snd_soc_component_compr_get_codec_caps()
566 component, cstream, codec); in snd_soc_component_compr_get_codec_caps()
573 return soc_component_ret(component, ret); in snd_soc_component_compr_get_codec_caps()
580 struct snd_soc_component *component; in snd_soc_component_compr_ack() local
583 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_ack()
584 if (component->driver->compress_ops && in snd_soc_component_compr_ack()
585 component->driver->compress_ops->ack) { in snd_soc_component_compr_ack()
586 ret = component->driver->compress_ops->ack( in snd_soc_component_compr_ack()
587 component, cstream, bytes); in snd_soc_component_compr_ack()
589 return soc_component_ret(component, ret); in snd_soc_component_compr_ack()
601 struct snd_soc_component *component; in snd_soc_component_compr_pointer() local
604 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_pointer()
605 if (component->driver->compress_ops && in snd_soc_component_compr_pointer()
606 component->driver->compress_ops->pointer) { in snd_soc_component_compr_pointer()
607 ret = component->driver->compress_ops->pointer( in snd_soc_component_compr_pointer()
608 component, cstream, tstamp); in snd_soc_component_compr_pointer()
609 return soc_component_ret(component, ret); in snd_soc_component_compr_pointer()
621 struct snd_soc_component *component; in snd_soc_component_compr_copy() local
626 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_copy()
627 if (component->driver->compress_ops && in snd_soc_component_compr_copy()
628 component->driver->compress_ops->copy) { in snd_soc_component_compr_copy()
629 ret = component->driver->compress_ops->copy( in snd_soc_component_compr_copy()
630 component, cstream, buf, count); in snd_soc_component_compr_copy()
637 return soc_component_ret(component, ret); in snd_soc_component_compr_copy()
645 struct snd_soc_component *component; in snd_soc_component_compr_set_metadata() local
648 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_set_metadata()
649 if (component->driver->compress_ops && in snd_soc_component_compr_set_metadata()
650 component->driver->compress_ops->set_metadata) { in snd_soc_component_compr_set_metadata()
651 ret = component->driver->compress_ops->set_metadata( in snd_soc_component_compr_set_metadata()
652 component, cstream, metadata); in snd_soc_component_compr_set_metadata()
654 return soc_component_ret(component, ret); in snd_soc_component_compr_set_metadata()
666 struct snd_soc_component *component; in snd_soc_component_compr_get_metadata() local
669 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_get_metadata()
670 if (component->driver->compress_ops && in snd_soc_component_compr_get_metadata()
671 component->driver->compress_ops->get_metadata) { in snd_soc_component_compr_get_metadata()
672 ret = component->driver->compress_ops->get_metadata( in snd_soc_component_compr_get_metadata()
673 component, cstream, metadata); in snd_soc_component_compr_get_metadata()
674 return soc_component_ret(component, ret); in snd_soc_component_compr_get_metadata()
683 struct snd_soc_component *component, in soc_component_read_no_lock() argument
689 if (component->regmap) in soc_component_read_no_lock()
690 ret = regmap_read(component->regmap, reg, &val); in soc_component_read_no_lock()
691 else if (component->driver->read) { in soc_component_read_no_lock()
693 val = component->driver->read(component, reg); in soc_component_read_no_lock()
699 return soc_component_ret(component, ret); in soc_component_read_no_lock()
706 * @component: Component to read from
711 unsigned int snd_soc_component_read(struct snd_soc_component *component, in snd_soc_component_read() argument
716 mutex_lock(&component->io_mutex); in snd_soc_component_read()
717 val = soc_component_read_no_lock(component, reg); in snd_soc_component_read()
718 mutex_unlock(&component->io_mutex); in snd_soc_component_read()
725 struct snd_soc_component *component, in soc_component_write_no_lock() argument
730 if (component->regmap) in soc_component_write_no_lock()
731 ret = regmap_write(component->regmap, reg, val); in soc_component_write_no_lock()
732 else if (component->driver->write) in soc_component_write_no_lock()
733 ret = component->driver->write(component, reg, val); in soc_component_write_no_lock()
735 return soc_component_ret(component, ret); in soc_component_write_no_lock()
740 * @component: Component to write to
746 int snd_soc_component_write(struct snd_soc_component *component, in snd_soc_component_write() argument
751 mutex_lock(&component->io_mutex); in snd_soc_component_write()
752 ret = soc_component_write_no_lock(component, reg, val); in snd_soc_component_write()
753 mutex_unlock(&component->io_mutex); in snd_soc_component_write()
760 struct snd_soc_component *component, unsigned int reg, in snd_soc_component_update_bits_legacy() argument
766 mutex_lock(&component->io_mutex); in snd_soc_component_update_bits_legacy()
768 old = soc_component_read_no_lock(component, reg); in snd_soc_component_update_bits_legacy()
773 ret = soc_component_write_no_lock(component, reg, new); in snd_soc_component_update_bits_legacy()
775 mutex_unlock(&component->io_mutex); in snd_soc_component_update_bits_legacy()
777 return soc_component_ret(component, ret); in snd_soc_component_update_bits_legacy()
782 * @component: Component to update
791 int snd_soc_component_update_bits(struct snd_soc_component *component, in snd_soc_component_update_bits() argument
797 if (component->regmap) in snd_soc_component_update_bits()
798 ret = regmap_update_bits_check(component->regmap, reg, mask, in snd_soc_component_update_bits()
801 ret = snd_soc_component_update_bits_legacy(component, reg, in snd_soc_component_update_bits()
805 return soc_component_ret(component, ret); in snd_soc_component_update_bits()
813 * @component: Component to update
827 int snd_soc_component_update_bits_async(struct snd_soc_component *component, in snd_soc_component_update_bits_async() argument
833 if (component->regmap) in snd_soc_component_update_bits_async()
834 ret = regmap_update_bits_check_async(component->regmap, reg, in snd_soc_component_update_bits_async()
837 ret = snd_soc_component_update_bits_legacy(component, reg, in snd_soc_component_update_bits_async()
841 return soc_component_ret(component, ret); in snd_soc_component_update_bits_async()
848 * @component: Component to read from
854 unsigned int snd_soc_component_read_field(struct snd_soc_component *component, in snd_soc_component_read_field() argument
859 val = snd_soc_component_read(component, reg); in snd_soc_component_read_field()
861 val = (val & mask) >> soc_component_field_shift(component, mask); in snd_soc_component_read_field()
869 * @component: Component to write to
876 int snd_soc_component_write_field(struct snd_soc_component *component, in snd_soc_component_write_field() argument
881 val = (val << soc_component_field_shift(component, mask)) & mask; in snd_soc_component_write_field()
883 return snd_soc_component_update_bits(component, reg, mask, val); in snd_soc_component_write_field()
889 * @component: Component for which to wait
894 void snd_soc_component_async_complete(struct snd_soc_component *component) in snd_soc_component_async_complete() argument
896 if (component->regmap) in snd_soc_component_async_complete()
897 regmap_async_complete(component->regmap); in snd_soc_component_async_complete()
903 * @component: component
913 int snd_soc_component_test_bits(struct snd_soc_component *component, in snd_soc_component_test_bits() argument
918 old = snd_soc_component_read(component, reg); in snd_soc_component_test_bits()
927 struct snd_soc_component *component; in snd_soc_pcm_component_pointer() local
931 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_pointer()
932 if (component->driver->pointer) in snd_soc_pcm_component_pointer()
933 return component->driver->pointer(component, substream); in snd_soc_pcm_component_pointer()
942 struct snd_soc_component *component; in snd_soc_pcm_component_ioctl() local
946 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_ioctl()
947 if (component->driver->ioctl) in snd_soc_pcm_component_ioctl()
949 component, in snd_soc_pcm_component_ioctl()
950 component->driver->ioctl(component, in snd_soc_pcm_component_ioctl()
959 struct snd_soc_component *component; in snd_soc_pcm_component_sync_stop() local
962 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_sync_stop()
963 if (component->driver->sync_stop) { in snd_soc_pcm_component_sync_stop()
964 ret = component->driver->sync_stop(component, in snd_soc_pcm_component_sync_stop()
967 return soc_component_ret(component, ret); in snd_soc_pcm_component_sync_stop()
979 struct snd_soc_component *component; in snd_soc_pcm_component_copy_user() local
983 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_copy_user()
984 if (component->driver->copy_user) in snd_soc_pcm_component_copy_user()
986 component, in snd_soc_pcm_component_copy_user()
987 component->driver->copy_user( in snd_soc_pcm_component_copy_user()
988 component, substream, channel, in snd_soc_pcm_component_copy_user()
998 struct snd_soc_component *component; in snd_soc_pcm_component_page() local
1003 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_page()
1004 if (component->driver->page) { in snd_soc_pcm_component_page()
1005 page = component->driver->page(component, in snd_soc_pcm_component_page()
1019 struct snd_soc_component *component; in snd_soc_pcm_component_mmap() local
1023 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_mmap()
1024 if (component->driver->mmap) in snd_soc_pcm_component_mmap()
1026 component, in snd_soc_pcm_component_mmap()
1027 component->driver->mmap(component, in snd_soc_pcm_component_mmap()
1035 struct snd_soc_component *component; in snd_soc_pcm_component_new() local
1039 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_new()
1040 if (component->driver->pcm_construct) { in snd_soc_pcm_component_new()
1041 ret = component->driver->pcm_construct(component, rtd); in snd_soc_pcm_component_new()
1043 return soc_component_ret(component, ret); in snd_soc_pcm_component_new()
1052 struct snd_soc_component *component; in snd_soc_pcm_component_free() local
1058 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_free()
1059 if (component->driver->pcm_destruct) in snd_soc_pcm_component_free()
1060 component->driver->pcm_destruct(component, rtd->pcm); in snd_soc_pcm_component_free()
1066 struct snd_soc_component *component; in snd_soc_pcm_component_prepare() local
1069 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_prepare()
1070 if (component->driver->prepare) { in snd_soc_pcm_component_prepare()
1071 ret = component->driver->prepare(component, substream); in snd_soc_pcm_component_prepare()
1073 return soc_component_ret(component, ret); in snd_soc_pcm_component_prepare()
1084 struct snd_soc_component *component; in snd_soc_pcm_component_hw_params() local
1087 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_hw_params()
1088 if (component->driver->hw_params) { in snd_soc_pcm_component_hw_params()
1089 ret = component->driver->hw_params(component, in snd_soc_pcm_component_hw_params()
1092 return soc_component_ret(component, ret); in snd_soc_pcm_component_hw_params()
1095 soc_component_mark_push(component, substream, hw_params); in snd_soc_pcm_component_hw_params()
1105 struct snd_soc_component *component; in snd_soc_pcm_component_hw_free() local
1108 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_hw_free()
1109 if (rollback && !soc_component_mark_match(component, substream, hw_params)) in snd_soc_pcm_component_hw_free()
1112 if (component->driver->hw_free) { in snd_soc_pcm_component_hw_free()
1113 ret = component->driver->hw_free(component, substream); in snd_soc_pcm_component_hw_free()
1115 soc_component_ret(component, ret); in snd_soc_pcm_component_hw_free()
1119 soc_component_mark_pop(component, substream, hw_params); in snd_soc_pcm_component_hw_free()
1123 static int soc_component_trigger(struct snd_soc_component *component, in soc_component_trigger() argument
1129 if (component->driver->trigger) in soc_component_trigger()
1130 ret = component->driver->trigger(component, substream, cmd); in soc_component_trigger()
1132 return soc_component_ret(component, ret); in soc_component_trigger()
1139 struct snd_soc_component *component; in snd_soc_pcm_component_trigger() local
1146 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_trigger()
1147 ret = soc_component_trigger(component, substream, cmd); in snd_soc_pcm_component_trigger()
1150 soc_component_mark_push(component, substream, trigger); in snd_soc_pcm_component_trigger()
1156 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_trigger()
1157 if (rollback && !soc_component_mark_match(component, substream, trigger)) in snd_soc_pcm_component_trigger()
1160 r = soc_component_trigger(component, substream, cmd); in snd_soc_pcm_component_trigger()
1163 soc_component_mark_pop(component, substream, trigger); in snd_soc_pcm_component_trigger()
1173 struct snd_soc_component *component; in snd_soc_pcm_component_pm_runtime_get() local
1176 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_pm_runtime_get()
1177 int ret = pm_runtime_get_sync(component->dev); in snd_soc_pcm_component_pm_runtime_get()
1179 pm_runtime_put_noidle(component->dev); in snd_soc_pcm_component_pm_runtime_get()
1180 return soc_component_ret(component, ret); in snd_soc_pcm_component_pm_runtime_get()
1183 soc_component_mark_push(component, stream, pm); in snd_soc_pcm_component_pm_runtime_get()
1192 struct snd_soc_component *component; in snd_soc_pcm_component_pm_runtime_put() local
1195 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_pm_runtime_put()
1196 if (rollback && !soc_component_mark_match(component, stream, pm)) in snd_soc_pcm_component_pm_runtime_put()
1199 pm_runtime_mark_last_busy(component->dev); in snd_soc_pcm_component_pm_runtime_put()
1200 pm_runtime_put_autosuspend(component->dev); in snd_soc_pcm_component_pm_runtime_put()
1203 soc_component_mark_pop(component, stream, pm); in snd_soc_pcm_component_pm_runtime_put()
1210 struct snd_soc_component *component; in snd_soc_pcm_component_ack() local
1214 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_ack()
1215 if (component->driver->ack) in snd_soc_pcm_component_ack()
1216 return component->driver->ack(component, substream); in snd_soc_pcm_component_ack()