Lines Matching full:component
3 // soc-component.c
17 static inline int _soc_component_ret(struct snd_soc_component *component, const char *func, int ret) in _soc_component_ret() argument
19 return snd_soc_ret(component->dev, ret, in _soc_component_ret()
20 "at %s() on %s\n", func, component->name); in _soc_component_ret()
24 static inline int _soc_component_ret_reg_rw(struct snd_soc_component *component, in _soc_component_ret_reg_rw() argument
27 return snd_soc_ret(component->dev, ret, in _soc_component_ret_reg_rw()
29 func, component->name, reg); in _soc_component_ret_reg_rw()
32 static inline int soc_component_field_shift(struct snd_soc_component *component, in soc_component_field_shift() argument
36 dev_err(component->dev, "ASoC: error field mask is zero for %s\n", in soc_component_field_shift()
37 component->name); in soc_component_field_shift()
48 #define soc_component_mark_push(component, substream, tgt) ((component)->mark_##tgt = substream) argument
49 #define soc_component_mark_pop(component, tgt) ((component)->mark_##tgt = NULL) argument
50 #define soc_component_mark_match(component, substream, tgt) ((component)->mark_##tgt == substream) argument
52 void snd_soc_component_set_aux(struct snd_soc_component *component, in snd_soc_component_set_aux() argument
55 component->init = (aux) ? aux->init : NULL; in snd_soc_component_set_aux()
58 int snd_soc_component_init(struct snd_soc_component *component) in snd_soc_component_init() argument
62 if (component->init) in snd_soc_component_init()
63 ret = component->init(component); in snd_soc_component_init()
65 return soc_component_ret(component, ret); in snd_soc_component_init()
69 * snd_soc_component_set_sysclk - configure COMPONENT system or master clock.
70 * @component: COMPONENT
78 int snd_soc_component_set_sysclk(struct snd_soc_component *component, in snd_soc_component_set_sysclk() argument
84 if (component->driver->set_sysclk) in snd_soc_component_set_sysclk()
85 ret = component->driver->set_sysclk(component, clk_id, source, in snd_soc_component_set_sysclk()
88 return soc_component_ret(component, ret); in snd_soc_component_set_sysclk()
93 * snd_soc_component_set_pll - configure component PLL.
94 * @component: COMPONENT
102 int snd_soc_component_set_pll(struct snd_soc_component *component, int pll_id, in snd_soc_component_set_pll() argument
108 if (component->driver->set_pll) in snd_soc_component_set_pll()
109 ret = component->driver->set_pll(component, pll_id, source, in snd_soc_component_set_pll()
112 return soc_component_ret(component, ret); in snd_soc_component_set_pll()
116 void snd_soc_component_seq_notifier(struct snd_soc_component *component, in snd_soc_component_seq_notifier() argument
119 if (component->driver->seq_notifier) in snd_soc_component_seq_notifier()
120 component->driver->seq_notifier(component, type, subseq); in snd_soc_component_seq_notifier()
123 int snd_soc_component_stream_event(struct snd_soc_component *component, in snd_soc_component_stream_event() argument
128 if (component->driver->stream_event) in snd_soc_component_stream_event()
129 ret = component->driver->stream_event(component, event); in snd_soc_component_stream_event()
131 return soc_component_ret(component, ret); in snd_soc_component_stream_event()
134 int snd_soc_component_set_bias_level(struct snd_soc_component *component, in snd_soc_component_set_bias_level() argument
139 if (component->driver->set_bias_level) in snd_soc_component_set_bias_level()
140 ret = component->driver->set_bias_level(component, level); in snd_soc_component_set_bias_level()
142 return soc_component_ret(component, ret); in snd_soc_component_set_bias_level()
145 int snd_soc_component_enable_pin(struct snd_soc_component *component, in snd_soc_component_enable_pin() argument
149 snd_soc_component_get_dapm(component); in snd_soc_component_enable_pin()
154 int snd_soc_component_enable_pin_unlocked(struct snd_soc_component *component, in snd_soc_component_enable_pin_unlocked() argument
158 snd_soc_component_get_dapm(component); in snd_soc_component_enable_pin_unlocked()
163 int snd_soc_component_disable_pin(struct snd_soc_component *component, in snd_soc_component_disable_pin() argument
167 snd_soc_component_get_dapm(component); in snd_soc_component_disable_pin()
172 int snd_soc_component_disable_pin_unlocked(struct snd_soc_component *component, in snd_soc_component_disable_pin_unlocked() argument
176 snd_soc_component_get_dapm(component); in snd_soc_component_disable_pin_unlocked()
181 int snd_soc_component_nc_pin(struct snd_soc_component *component, in snd_soc_component_nc_pin() argument
185 snd_soc_component_get_dapm(component); in snd_soc_component_nc_pin()
190 int snd_soc_component_nc_pin_unlocked(struct snd_soc_component *component, in snd_soc_component_nc_pin_unlocked() argument
194 snd_soc_component_get_dapm(component); in snd_soc_component_nc_pin_unlocked()
199 int snd_soc_component_get_pin_status(struct snd_soc_component *component, in snd_soc_component_get_pin_status() argument
203 snd_soc_component_get_dapm(component); in snd_soc_component_get_pin_status()
208 int snd_soc_component_force_enable_pin(struct snd_soc_component *component, in snd_soc_component_force_enable_pin() argument
212 snd_soc_component_get_dapm(component); in snd_soc_component_force_enable_pin()
218 struct snd_soc_component *component, in snd_soc_component_force_enable_pin_unlocked() argument
222 snd_soc_component_get_dapm(component); in snd_soc_component_force_enable_pin_unlocked()
227 static void soc_get_kcontrol_name(struct snd_soc_component *component, in soc_get_kcontrol_name() argument
231 if (component->name_prefix) in soc_get_kcontrol_name()
232 snprintf(buf, size, "%s %s", component->name_prefix, ctl); in soc_get_kcontrol_name()
237 struct snd_kcontrol *snd_soc_component_get_kcontrol(struct snd_soc_component *component, in snd_soc_component_get_kcontrol() argument
242 soc_get_kcontrol_name(component, name, ARRAY_SIZE(name), ctl); in snd_soc_component_get_kcontrol()
244 return snd_soc_card_get_kcontrol(component->card, name); in snd_soc_component_get_kcontrol()
248 int snd_soc_component_notify_control(struct snd_soc_component *component, in snd_soc_component_notify_control() argument
253 kctl = snd_soc_component_get_kcontrol(component, ctl); in snd_soc_component_notify_control()
255 return soc_component_ret(component, -EINVAL); in snd_soc_component_notify_control()
257 snd_ctl_notify(component->card->snd_card, in snd_soc_component_notify_control()
265 * snd_soc_component_set_jack - configure component jack.
266 * @component: COMPONENTs
272 int snd_soc_component_set_jack(struct snd_soc_component *component, in snd_soc_component_set_jack() argument
277 if (component->driver->set_jack) in snd_soc_component_set_jack()
278 ret = component->driver->set_jack(component, jack, data); in snd_soc_component_set_jack()
280 return soc_component_ret(component, ret); in snd_soc_component_set_jack()
286 * @component: COMPONENTs
288 * Returns the jack type of the component
293 struct snd_soc_component *component) in snd_soc_component_get_jack_type() argument
297 if (component->driver->get_jack_type) in snd_soc_component_get_jack_type()
298 ret = component->driver->get_jack_type(component); in snd_soc_component_get_jack_type()
300 return soc_component_ret(component, ret); in snd_soc_component_get_jack_type()
304 int snd_soc_component_module_get(struct snd_soc_component *component, in snd_soc_component_module_get() argument
309 if (component->driver->module_get_upon_open == !!upon_open && in snd_soc_component_module_get()
310 !try_module_get(component->dev->driver->owner)) in snd_soc_component_module_get()
315 soc_component_mark_push(component, mark, module); in snd_soc_component_module_get()
317 return soc_component_ret(component, ret); in snd_soc_component_module_get()
320 void snd_soc_component_module_put(struct snd_soc_component *component, in snd_soc_component_module_put() argument
323 if (rollback && !soc_component_mark_match(component, mark, module)) in snd_soc_component_module_put()
326 if (component->driver->module_get_upon_open == !!upon_open) in snd_soc_component_module_put()
327 module_put(component->dev->driver->owner); in snd_soc_component_module_put()
330 soc_component_mark_pop(component, module); in snd_soc_component_module_put()
333 int snd_soc_component_open(struct snd_soc_component *component, in snd_soc_component_open() argument
338 if (component->driver->open) in snd_soc_component_open()
339 ret = component->driver->open(component, substream); in snd_soc_component_open()
343 soc_component_mark_push(component, substream, open); in snd_soc_component_open()
345 return soc_component_ret(component, ret); in snd_soc_component_open()
348 int snd_soc_component_close(struct snd_soc_component *component, in snd_soc_component_close() argument
354 if (rollback && !soc_component_mark_match(component, substream, open)) in snd_soc_component_close()
357 if (component->driver->close) in snd_soc_component_close()
358 ret = component->driver->close(component, substream); in snd_soc_component_close()
361 soc_component_mark_pop(component, open); in snd_soc_component_close()
363 return soc_component_ret(component, ret); in snd_soc_component_close()
366 void snd_soc_component_suspend(struct snd_soc_component *component) in snd_soc_component_suspend() argument
368 if (component->driver->suspend) in snd_soc_component_suspend()
369 component->driver->suspend(component); in snd_soc_component_suspend()
370 component->suspended = 1; in snd_soc_component_suspend()
373 void snd_soc_component_resume(struct snd_soc_component *component) in snd_soc_component_resume() argument
375 if (component->driver->resume) in snd_soc_component_resume()
376 component->driver->resume(component); in snd_soc_component_resume()
377 component->suspended = 0; in snd_soc_component_resume()
380 int snd_soc_component_is_suspended(struct snd_soc_component *component) in snd_soc_component_is_suspended() argument
382 return component->suspended; in snd_soc_component_is_suspended()
385 int snd_soc_component_probe(struct snd_soc_component *component) in snd_soc_component_probe() argument
389 if (component->driver->probe) in snd_soc_component_probe()
390 ret = component->driver->probe(component); in snd_soc_component_probe()
392 return soc_component_ret(component, ret); in snd_soc_component_probe()
395 void snd_soc_component_remove(struct snd_soc_component *component) in snd_soc_component_remove() argument
397 if (component->driver->remove) in snd_soc_component_remove()
398 component->driver->remove(component); in snd_soc_component_remove()
401 int snd_soc_component_of_xlate_dai_id(struct snd_soc_component *component, in snd_soc_component_of_xlate_dai_id() argument
406 if (component->driver->of_xlate_dai_id) in snd_soc_component_of_xlate_dai_id()
407 ret = component->driver->of_xlate_dai_id(component, ep); in snd_soc_component_of_xlate_dai_id()
409 return soc_component_ret(component, ret); in snd_soc_component_of_xlate_dai_id()
412 int snd_soc_component_of_xlate_dai_name(struct snd_soc_component *component, in snd_soc_component_of_xlate_dai_name() argument
416 if (component->driver->of_xlate_dai_name) in snd_soc_component_of_xlate_dai_name()
417 return component->driver->of_xlate_dai_name(component, in snd_soc_component_of_xlate_dai_name()
421 * the error just yet. If a device has more than one component, the in snd_soc_component_of_xlate_dai_name()
427 void snd_soc_component_setup_regmap(struct snd_soc_component *component) in snd_soc_component_setup_regmap() argument
429 int val_bytes = regmap_get_val_bytes(component->regmap); in snd_soc_component_setup_regmap()
433 component->val_bytes = val_bytes; in snd_soc_component_setup_regmap()
440 * component
441 * @component: The component for which to initialize the regmap instance
442 * @regmap: The regmap instance that should be used by the component
445 * associated with the component. Only use this if the regmap instance is not
446 * yet ready when the component is registered. The function must also be called
447 * before the first IO attempt of the component.
449 void snd_soc_component_init_regmap(struct snd_soc_component *component, in snd_soc_component_init_regmap() argument
452 component->regmap = regmap; in snd_soc_component_init_regmap()
453 snd_soc_component_setup_regmap(component); in snd_soc_component_init_regmap()
459 * component
460 * @component: The component for which to de-initialize the regmap instance
462 * Calls regmap_exit() on the regmap instance associated to the component and
463 * removes the regmap instance from the component.
468 void snd_soc_component_exit_regmap(struct snd_soc_component *component) in snd_soc_component_exit_regmap() argument
470 regmap_exit(component->regmap); in snd_soc_component_exit_regmap()
471 component->regmap = NULL; in snd_soc_component_exit_regmap()
477 int snd_soc_component_compr_open(struct snd_soc_component *component, in snd_soc_component_compr_open() argument
482 if (component->driver->compress_ops && in snd_soc_component_compr_open()
483 component->driver->compress_ops->open) in snd_soc_component_compr_open()
484 ret = component->driver->compress_ops->open(component, cstream); in snd_soc_component_compr_open()
488 soc_component_mark_push(component, cstream, compr_open); in snd_soc_component_compr_open()
490 return soc_component_ret(component, ret); in snd_soc_component_compr_open()
494 void snd_soc_component_compr_free(struct snd_soc_component *component, in snd_soc_component_compr_free() argument
498 if (rollback && !soc_component_mark_match(component, cstream, compr_open)) in snd_soc_component_compr_free()
501 if (component->driver->compress_ops && in snd_soc_component_compr_free()
502 component->driver->compress_ops->free) in snd_soc_component_compr_free()
503 component->driver->compress_ops->free(component, cstream); in snd_soc_component_compr_free()
506 soc_component_mark_pop(component, compr_open); in snd_soc_component_compr_free()
513 struct snd_soc_component *component; in snd_soc_component_compr_trigger() local
516 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_trigger()
517 if (component->driver->compress_ops && in snd_soc_component_compr_trigger()
518 component->driver->compress_ops->trigger) { in snd_soc_component_compr_trigger()
519 ret = component->driver->compress_ops->trigger( in snd_soc_component_compr_trigger()
520 component, cstream, cmd); in snd_soc_component_compr_trigger()
522 return soc_component_ret(component, ret); in snd_soc_component_compr_trigger()
534 struct snd_soc_component *component; in snd_soc_component_compr_set_params() local
537 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_set_params()
538 if (component->driver->compress_ops && in snd_soc_component_compr_set_params()
539 component->driver->compress_ops->set_params) { in snd_soc_component_compr_set_params()
540 ret = component->driver->compress_ops->set_params( in snd_soc_component_compr_set_params()
541 component, cstream, params); in snd_soc_component_compr_set_params()
543 return soc_component_ret(component, ret); in snd_soc_component_compr_set_params()
555 struct snd_soc_component *component; in snd_soc_component_compr_get_params() local
558 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_get_params()
559 if (component->driver->compress_ops && in snd_soc_component_compr_get_params()
560 component->driver->compress_ops->get_params) { in snd_soc_component_compr_get_params()
561 ret = component->driver->compress_ops->get_params( in snd_soc_component_compr_get_params()
562 component, cstream, params); in snd_soc_component_compr_get_params()
563 return soc_component_ret(component, ret); in snd_soc_component_compr_get_params()
575 struct snd_soc_component *component; in snd_soc_component_compr_get_caps() local
580 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_get_caps()
581 if (component->driver->compress_ops && in snd_soc_component_compr_get_caps()
582 component->driver->compress_ops->get_caps) { in snd_soc_component_compr_get_caps()
583 ret = component->driver->compress_ops->get_caps( in snd_soc_component_compr_get_caps()
584 component, cstream, caps); in snd_soc_component_compr_get_caps()
591 return soc_component_ret(component, ret); in snd_soc_component_compr_get_caps()
599 struct snd_soc_component *component; in snd_soc_component_compr_get_codec_caps() local
604 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_get_codec_caps()
605 if (component->driver->compress_ops && in snd_soc_component_compr_get_codec_caps()
606 component->driver->compress_ops->get_codec_caps) { in snd_soc_component_compr_get_codec_caps()
607 ret = component->driver->compress_ops->get_codec_caps( in snd_soc_component_compr_get_codec_caps()
608 component, cstream, codec); in snd_soc_component_compr_get_codec_caps()
615 return soc_component_ret(component, ret); in snd_soc_component_compr_get_codec_caps()
622 struct snd_soc_component *component; in snd_soc_component_compr_ack() local
625 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_ack()
626 if (component->driver->compress_ops && in snd_soc_component_compr_ack()
627 component->driver->compress_ops->ack) { in snd_soc_component_compr_ack()
628 ret = component->driver->compress_ops->ack( in snd_soc_component_compr_ack()
629 component, cstream, bytes); in snd_soc_component_compr_ack()
631 return soc_component_ret(component, ret); in snd_soc_component_compr_ack()
643 struct snd_soc_component *component; in snd_soc_component_compr_pointer() local
646 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_pointer()
647 if (component->driver->compress_ops && in snd_soc_component_compr_pointer()
648 component->driver->compress_ops->pointer) { in snd_soc_component_compr_pointer()
649 ret = component->driver->compress_ops->pointer( in snd_soc_component_compr_pointer()
650 component, cstream, tstamp); in snd_soc_component_compr_pointer()
651 return soc_component_ret(component, ret); in snd_soc_component_compr_pointer()
663 struct snd_soc_component *component; in snd_soc_component_compr_copy() local
668 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_copy()
669 if (component->driver->compress_ops && in snd_soc_component_compr_copy()
670 component->driver->compress_ops->copy) { in snd_soc_component_compr_copy()
671 ret = component->driver->compress_ops->copy( in snd_soc_component_compr_copy()
672 component, cstream, buf, count); in snd_soc_component_compr_copy()
679 return soc_component_ret(component, ret); in snd_soc_component_compr_copy()
687 struct snd_soc_component *component; in snd_soc_component_compr_set_metadata() local
690 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_set_metadata()
691 if (component->driver->compress_ops && in snd_soc_component_compr_set_metadata()
692 component->driver->compress_ops->set_metadata) { in snd_soc_component_compr_set_metadata()
693 ret = component->driver->compress_ops->set_metadata( in snd_soc_component_compr_set_metadata()
694 component, cstream, metadata); in snd_soc_component_compr_set_metadata()
696 return soc_component_ret(component, ret); in snd_soc_component_compr_set_metadata()
708 struct snd_soc_component *component; in snd_soc_component_compr_get_metadata() local
711 for_each_rtd_components(rtd, i, component) { in snd_soc_component_compr_get_metadata()
712 if (component->driver->compress_ops && in snd_soc_component_compr_get_metadata()
713 component->driver->compress_ops->get_metadata) { in snd_soc_component_compr_get_metadata()
714 ret = component->driver->compress_ops->get_metadata( in snd_soc_component_compr_get_metadata()
715 component, cstream, metadata); in snd_soc_component_compr_get_metadata()
716 return soc_component_ret(component, ret); in snd_soc_component_compr_get_metadata()
725 struct snd_soc_component *component, in soc_component_read_no_lock() argument
731 if (component->regmap) in soc_component_read_no_lock()
732 ret = regmap_read(component->regmap, reg, &val); in soc_component_read_no_lock()
733 else if (component->driver->read) { in soc_component_read_no_lock()
735 val = component->driver->read(component, reg); in soc_component_read_no_lock()
741 return soc_component_ret_reg_rw(component, ret, reg); in soc_component_read_no_lock()
748 * @component: Component to read from
753 unsigned int snd_soc_component_read(struct snd_soc_component *component, in snd_soc_component_read() argument
758 mutex_lock(&component->io_mutex); in snd_soc_component_read()
759 val = soc_component_read_no_lock(component, reg); in snd_soc_component_read()
760 mutex_unlock(&component->io_mutex); in snd_soc_component_read()
767 struct snd_soc_component *component, in soc_component_write_no_lock() argument
772 if (component->regmap) in soc_component_write_no_lock()
773 ret = regmap_write(component->regmap, reg, val); in soc_component_write_no_lock()
774 else if (component->driver->write) in soc_component_write_no_lock()
775 ret = component->driver->write(component, reg, val); in soc_component_write_no_lock()
777 return soc_component_ret_reg_rw(component, ret, reg); in soc_component_write_no_lock()
782 * @component: Component to write to
788 int snd_soc_component_write(struct snd_soc_component *component, in snd_soc_component_write() argument
793 mutex_lock(&component->io_mutex); in snd_soc_component_write()
794 ret = soc_component_write_no_lock(component, reg, val); in snd_soc_component_write()
795 mutex_unlock(&component->io_mutex); in snd_soc_component_write()
802 struct snd_soc_component *component, unsigned int reg, in snd_soc_component_update_bits_legacy() argument
808 mutex_lock(&component->io_mutex); in snd_soc_component_update_bits_legacy()
810 old = soc_component_read_no_lock(component, reg); in snd_soc_component_update_bits_legacy()
815 ret = soc_component_write_no_lock(component, reg, new); in snd_soc_component_update_bits_legacy()
817 mutex_unlock(&component->io_mutex); in snd_soc_component_update_bits_legacy()
819 return soc_component_ret_reg_rw(component, ret, reg); in snd_soc_component_update_bits_legacy()
824 * @component: Component to update
833 int snd_soc_component_update_bits(struct snd_soc_component *component, in snd_soc_component_update_bits() argument
839 if (component->regmap) in snd_soc_component_update_bits()
840 ret = regmap_update_bits_check(component->regmap, reg, mask, in snd_soc_component_update_bits()
843 ret = snd_soc_component_update_bits_legacy(component, reg, in snd_soc_component_update_bits()
847 return soc_component_ret_reg_rw(component, ret, reg); in snd_soc_component_update_bits()
855 * @component: Component to update
869 int snd_soc_component_update_bits_async(struct snd_soc_component *component, in snd_soc_component_update_bits_async() argument
875 if (component->regmap) in snd_soc_component_update_bits_async()
876 ret = regmap_update_bits_check_async(component->regmap, reg, in snd_soc_component_update_bits_async()
879 ret = snd_soc_component_update_bits_legacy(component, reg, in snd_soc_component_update_bits_async()
883 return soc_component_ret_reg_rw(component, ret, reg); in snd_soc_component_update_bits_async()
890 * @component: Component to read from
896 unsigned int snd_soc_component_read_field(struct snd_soc_component *component, in snd_soc_component_read_field() argument
901 val = snd_soc_component_read(component, reg); in snd_soc_component_read_field()
903 val = (val & mask) >> soc_component_field_shift(component, mask); in snd_soc_component_read_field()
911 * @component: Component to write to
918 int snd_soc_component_write_field(struct snd_soc_component *component, in snd_soc_component_write_field() argument
923 val = (val << soc_component_field_shift(component, mask)) & mask; in snd_soc_component_write_field()
925 return snd_soc_component_update_bits(component, reg, mask, val); in snd_soc_component_write_field()
931 * @component: Component for which to wait
936 void snd_soc_component_async_complete(struct snd_soc_component *component) in snd_soc_component_async_complete() argument
938 if (component->regmap) in snd_soc_component_async_complete()
939 regmap_async_complete(component->regmap); in snd_soc_component_async_complete()
945 * @component: component
955 int snd_soc_component_test_bits(struct snd_soc_component *component, in snd_soc_component_test_bits() argument
960 old = snd_soc_component_read(component, reg); in snd_soc_component_test_bits()
969 struct snd_soc_component *component; in snd_soc_pcm_component_pointer() local
973 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_pointer()
974 if (component->driver->pointer) in snd_soc_pcm_component_pointer()
975 return component->driver->pointer(component, substream); in snd_soc_pcm_component_pointer()
981 struct snd_soc_component *component) in snd_soc_component_is_codec_on_rtd() argument
987 if (dai->component == component) in snd_soc_component_is_codec_on_rtd()
999 struct snd_soc_component *component; in snd_soc_pcm_component_delay() local
1009 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_delay()
1010 if (!component->driver->delay) in snd_soc_pcm_component_delay()
1013 delay = component->driver->delay(component, substream); in snd_soc_pcm_component_delay()
1015 if (snd_soc_component_is_codec_on_rtd(rtd, component)) in snd_soc_pcm_component_delay()
1026 struct snd_soc_component *component; in snd_soc_pcm_component_ioctl() local
1030 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_ioctl()
1031 if (component->driver->ioctl) in snd_soc_pcm_component_ioctl()
1033 component, in snd_soc_pcm_component_ioctl()
1034 component->driver->ioctl(component, in snd_soc_pcm_component_ioctl()
1043 struct snd_soc_component *component; in snd_soc_pcm_component_sync_stop() local
1046 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_sync_stop()
1047 if (component->driver->sync_stop) { in snd_soc_pcm_component_sync_stop()
1048 ret = component->driver->sync_stop(component, in snd_soc_pcm_component_sync_stop()
1051 return soc_component_ret(component, ret); in snd_soc_pcm_component_sync_stop()
1063 struct snd_soc_component *component; in snd_soc_pcm_component_copy() local
1067 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_copy()
1068 if (component->driver->copy) in snd_soc_pcm_component_copy()
1069 return soc_component_ret(component, in snd_soc_pcm_component_copy()
1070 component->driver->copy(component, substream, in snd_soc_pcm_component_copy()
1080 struct snd_soc_component *component; in snd_soc_pcm_component_page() local
1085 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_page()
1086 if (component->driver->page) { in snd_soc_pcm_component_page()
1087 page = component->driver->page(component, in snd_soc_pcm_component_page()
1101 struct snd_soc_component *component; in snd_soc_pcm_component_mmap() local
1105 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_mmap()
1106 if (component->driver->mmap) in snd_soc_pcm_component_mmap()
1108 component, in snd_soc_pcm_component_mmap()
1109 component->driver->mmap(component, in snd_soc_pcm_component_mmap()
1117 struct snd_soc_component *component; in snd_soc_pcm_component_new() local
1121 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_new()
1122 if (component->driver->pcm_construct) { in snd_soc_pcm_component_new()
1123 ret = component->driver->pcm_construct(component, rtd); in snd_soc_pcm_component_new()
1125 return soc_component_ret(component, ret); in snd_soc_pcm_component_new()
1134 struct snd_soc_component *component; in snd_soc_pcm_component_free() local
1140 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_free()
1141 if (component->driver->pcm_destruct) in snd_soc_pcm_component_free()
1142 component->driver->pcm_destruct(component, rtd->pcm); in snd_soc_pcm_component_free()
1148 struct snd_soc_component *component; in snd_soc_pcm_component_prepare() local
1151 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_prepare()
1152 if (component->driver->prepare) { in snd_soc_pcm_component_prepare()
1153 ret = component->driver->prepare(component, substream); in snd_soc_pcm_component_prepare()
1155 return soc_component_ret(component, ret); in snd_soc_pcm_component_prepare()
1166 struct snd_soc_component *component; in snd_soc_pcm_component_hw_params() local
1169 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_hw_params()
1170 if (component->driver->hw_params) { in snd_soc_pcm_component_hw_params()
1171 ret = component->driver->hw_params(component, in snd_soc_pcm_component_hw_params()
1174 return soc_component_ret(component, ret); in snd_soc_pcm_component_hw_params()
1177 soc_component_mark_push(component, substream, hw_params); in snd_soc_pcm_component_hw_params()
1187 struct snd_soc_component *component; in snd_soc_pcm_component_hw_free() local
1190 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_hw_free()
1191 if (rollback && !soc_component_mark_match(component, substream, hw_params)) in snd_soc_pcm_component_hw_free()
1194 if (component->driver->hw_free) { in snd_soc_pcm_component_hw_free()
1195 ret = component->driver->hw_free(component, substream); in snd_soc_pcm_component_hw_free()
1197 soc_component_ret(component, ret); in snd_soc_pcm_component_hw_free()
1201 soc_component_mark_pop(component, hw_params); in snd_soc_pcm_component_hw_free()
1205 static int soc_component_trigger(struct snd_soc_component *component, in soc_component_trigger() argument
1211 if (component->driver->trigger) in soc_component_trigger()
1212 ret = component->driver->trigger(component, substream, cmd); in soc_component_trigger()
1214 return soc_component_ret(component, ret); in soc_component_trigger()
1221 struct snd_soc_component *component; in snd_soc_pcm_component_trigger() local
1228 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_trigger()
1229 ret = soc_component_trigger(component, substream, cmd); in snd_soc_pcm_component_trigger()
1232 soc_component_mark_push(component, substream, trigger); in snd_soc_pcm_component_trigger()
1238 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_trigger()
1239 if (rollback && !soc_component_mark_match(component, substream, trigger)) in snd_soc_pcm_component_trigger()
1242 r = soc_component_trigger(component, substream, cmd); in snd_soc_pcm_component_trigger()
1245 soc_component_mark_pop(component, trigger); in snd_soc_pcm_component_trigger()
1255 struct snd_soc_component *component; in snd_soc_pcm_component_pm_runtime_get() local
1258 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_pm_runtime_get()
1259 int ret = pm_runtime_get_sync(component->dev); in snd_soc_pcm_component_pm_runtime_get()
1261 pm_runtime_put_noidle(component->dev); in snd_soc_pcm_component_pm_runtime_get()
1262 return soc_component_ret(component, ret); in snd_soc_pcm_component_pm_runtime_get()
1265 soc_component_mark_push(component, stream, pm); in snd_soc_pcm_component_pm_runtime_get()
1274 struct snd_soc_component *component; in snd_soc_pcm_component_pm_runtime_put() local
1277 for_each_rtd_components(rtd, i, component) { in snd_soc_pcm_component_pm_runtime_put()
1278 if (rollback && !soc_component_mark_match(component, stream, pm)) in snd_soc_pcm_component_pm_runtime_put()
1281 pm_runtime_mark_last_busy(component->dev); in snd_soc_pcm_component_pm_runtime_put()
1282 pm_runtime_put_autosuspend(component->dev); in snd_soc_pcm_component_pm_runtime_put()
1285 soc_component_mark_pop(component, pm); in snd_soc_pcm_component_pm_runtime_put()
1292 struct snd_soc_component *component; in snd_soc_pcm_component_ack() local
1296 for_each_rtd_components(rtd, i, component) in snd_soc_pcm_component_ack()
1297 if (component->driver->ack) in snd_soc_pcm_component_ack()
1298 return component->driver->ack(component, substream); in snd_soc_pcm_component_ack()