Lines Matching refs:mout
2627 struct hda_multi_out *mout = snd_kcontrol_chip(kcontrol); in spdif_share_sw_get() local
2628 ucontrol->value.integer.value[0] = mout->share_spdif; in spdif_share_sw_get()
2635 struct hda_multi_out *mout = snd_kcontrol_chip(kcontrol); in spdif_share_sw_put() local
2636 mout->share_spdif = !!ucontrol->value.integer.value[0]; in spdif_share_sw_put()
2654 struct hda_multi_out *mout) in snd_hda_create_spdif_share_sw() argument
2658 if (!mout->dig_out_nid) in snd_hda_create_spdif_share_sw()
2661 kctl = snd_ctl_new1(&spdif_share_sw, mout); in snd_hda_create_spdif_share_sw()
2665 return snd_hda_ctl_add(codec, mout->dig_out_nid, kctl); in snd_hda_create_spdif_share_sw()
3628 struct hda_multi_out *mout) in snd_hda_multi_out_dig_open() argument
3631 if (mout->dig_out_used == HDA_DIG_ANALOG_DUP) in snd_hda_multi_out_dig_open()
3633 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_dig_open()
3634 mout->dig_out_used = HDA_DIG_EXCLUSIVE; in snd_hda_multi_out_dig_open()
3649 struct hda_multi_out *mout, in snd_hda_multi_out_dig_prepare() argument
3655 setup_dig_out_stream(codec, mout->dig_out_nid, stream_tag, format); in snd_hda_multi_out_dig_prepare()
3667 struct hda_multi_out *mout) in snd_hda_multi_out_dig_cleanup() argument
3670 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_dig_cleanup()
3682 struct hda_multi_out *mout) in snd_hda_multi_out_dig_close() argument
3685 mout->dig_out_used = 0; in snd_hda_multi_out_dig_close()
3703 struct hda_multi_out *mout, in snd_hda_multi_out_analog_open() argument
3708 runtime->hw.channels_max = mout->max_channels; in snd_hda_multi_out_analog_open()
3709 if (mout->dig_out_nid) { in snd_hda_multi_out_analog_open()
3710 if (!mout->analog_rates) { in snd_hda_multi_out_analog_open()
3711 mout->analog_rates = hinfo->rates; in snd_hda_multi_out_analog_open()
3712 mout->analog_formats = hinfo->formats; in snd_hda_multi_out_analog_open()
3713 mout->analog_maxbps = hinfo->maxbps; in snd_hda_multi_out_analog_open()
3715 runtime->hw.rates = mout->analog_rates; in snd_hda_multi_out_analog_open()
3716 runtime->hw.formats = mout->analog_formats; in snd_hda_multi_out_analog_open()
3717 hinfo->maxbps = mout->analog_maxbps; in snd_hda_multi_out_analog_open()
3719 if (!mout->spdif_rates) { in snd_hda_multi_out_analog_open()
3720 snd_hda_query_supported_pcm(codec, mout->dig_out_nid, in snd_hda_multi_out_analog_open()
3721 &mout->spdif_rates, in snd_hda_multi_out_analog_open()
3722 &mout->spdif_formats, in snd_hda_multi_out_analog_open()
3723 &mout->spdif_maxbps); in snd_hda_multi_out_analog_open()
3726 if (mout->share_spdif) { in snd_hda_multi_out_analog_open()
3727 if ((runtime->hw.rates & mout->spdif_rates) && in snd_hda_multi_out_analog_open()
3728 (runtime->hw.formats & mout->spdif_formats)) { in snd_hda_multi_out_analog_open()
3729 runtime->hw.rates &= mout->spdif_rates; in snd_hda_multi_out_analog_open()
3730 runtime->hw.formats &= mout->spdif_formats; in snd_hda_multi_out_analog_open()
3731 if (mout->spdif_maxbps < hinfo->maxbps) in snd_hda_multi_out_analog_open()
3732 hinfo->maxbps = mout->spdif_maxbps; in snd_hda_multi_out_analog_open()
3734 mout->share_spdif = 0; in snd_hda_multi_out_analog_open()
3757 struct hda_multi_out *mout, in snd_hda_multi_out_analog_prepare() argument
3762 const hda_nid_t *nids = mout->dac_nids; in snd_hda_multi_out_analog_prepare()
3768 spdif = snd_hda_spdif_out_of_nid(codec, mout->dig_out_nid); in snd_hda_multi_out_analog_prepare()
3769 if (mout->dig_out_nid && mout->share_spdif && in snd_hda_multi_out_analog_prepare()
3770 mout->dig_out_used != HDA_DIG_EXCLUSIVE) { in snd_hda_multi_out_analog_prepare()
3772 snd_hda_is_supported_format(codec, mout->dig_out_nid, in snd_hda_multi_out_analog_prepare()
3775 mout->dig_out_used = HDA_DIG_ANALOG_DUP; in snd_hda_multi_out_analog_prepare()
3776 setup_dig_out_stream(codec, mout->dig_out_nid, in snd_hda_multi_out_analog_prepare()
3779 mout->dig_out_used = 0; in snd_hda_multi_out_analog_prepare()
3780 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_analog_prepare()
3788 if (!mout->no_share_stream && in snd_hda_multi_out_analog_prepare()
3789 mout->hp_nid && mout->hp_nid != nids[HDA_FRONT]) in snd_hda_multi_out_analog_prepare()
3791 snd_hda_codec_setup_stream(codec, mout->hp_nid, stream_tag, in snd_hda_multi_out_analog_prepare()
3794 for (i = 0; i < ARRAY_SIZE(mout->hp_out_nid); i++) in snd_hda_multi_out_analog_prepare()
3795 if (!mout->no_share_stream && mout->hp_out_nid[i]) in snd_hda_multi_out_analog_prepare()
3797 mout->hp_out_nid[i], in snd_hda_multi_out_analog_prepare()
3801 for (i = 1; i < mout->num_dacs; i++) { in snd_hda_multi_out_analog_prepare()
3805 else if (!mout->no_share_stream) /* copy front */ in snd_hda_multi_out_analog_prepare()
3811 for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++) { in snd_hda_multi_out_analog_prepare()
3813 if (!mout->extra_out_nid[i]) in snd_hda_multi_out_analog_prepare()
3817 else if (!mout->no_share_stream) in snd_hda_multi_out_analog_prepare()
3819 snd_hda_codec_setup_stream(codec, mout->extra_out_nid[i], in snd_hda_multi_out_analog_prepare()
3833 struct hda_multi_out *mout) in snd_hda_multi_out_analog_cleanup() argument
3835 const hda_nid_t *nids = mout->dac_nids; in snd_hda_multi_out_analog_cleanup()
3838 for (i = 0; i < mout->num_dacs; i++) in snd_hda_multi_out_analog_cleanup()
3840 if (mout->hp_nid) in snd_hda_multi_out_analog_cleanup()
3841 snd_hda_codec_cleanup_stream(codec, mout->hp_nid); in snd_hda_multi_out_analog_cleanup()
3842 for (i = 0; i < ARRAY_SIZE(mout->hp_out_nid); i++) in snd_hda_multi_out_analog_cleanup()
3843 if (mout->hp_out_nid[i]) in snd_hda_multi_out_analog_cleanup()
3845 mout->hp_out_nid[i]); in snd_hda_multi_out_analog_cleanup()
3846 for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++) in snd_hda_multi_out_analog_cleanup()
3847 if (mout->extra_out_nid[i]) in snd_hda_multi_out_analog_cleanup()
3849 mout->extra_out_nid[i]); in snd_hda_multi_out_analog_cleanup()
3851 if (mout->dig_out_nid && mout->dig_out_used == HDA_DIG_ANALOG_DUP) { in snd_hda_multi_out_analog_cleanup()
3852 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_analog_cleanup()
3853 mout->dig_out_used = 0; in snd_hda_multi_out_analog_cleanup()