Lines Matching refs:mout
2572 struct hda_multi_out *mout = snd_kcontrol_chip(kcontrol); in spdif_share_sw_get() local
2573 ucontrol->value.integer.value[0] = mout->share_spdif; in spdif_share_sw_get()
2580 struct hda_multi_out *mout = snd_kcontrol_chip(kcontrol); in spdif_share_sw_put() local
2581 mout->share_spdif = !!ucontrol->value.integer.value[0]; in spdif_share_sw_put()
2599 struct hda_multi_out *mout) in snd_hda_create_spdif_share_sw() argument
2603 if (!mout->dig_out_nid) in snd_hda_create_spdif_share_sw()
2606 kctl = snd_ctl_new1(&spdif_share_sw, mout); in snd_hda_create_spdif_share_sw()
2610 return snd_hda_ctl_add(codec, mout->dig_out_nid, kctl); in snd_hda_create_spdif_share_sw()
3656 struct hda_multi_out *mout) in snd_hda_multi_out_dig_open() argument
3659 if (mout->dig_out_used == HDA_DIG_ANALOG_DUP) in snd_hda_multi_out_dig_open()
3661 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_dig_open()
3662 mout->dig_out_used = HDA_DIG_EXCLUSIVE; in snd_hda_multi_out_dig_open()
3677 struct hda_multi_out *mout, in snd_hda_multi_out_dig_prepare() argument
3683 setup_dig_out_stream(codec, mout->dig_out_nid, stream_tag, format); in snd_hda_multi_out_dig_prepare()
3695 struct hda_multi_out *mout) in snd_hda_multi_out_dig_cleanup() argument
3698 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_dig_cleanup()
3710 struct hda_multi_out *mout) in snd_hda_multi_out_dig_close() argument
3713 mout->dig_out_used = 0; in snd_hda_multi_out_dig_close()
3731 struct hda_multi_out *mout, in snd_hda_multi_out_analog_open() argument
3736 runtime->hw.channels_max = mout->max_channels; in snd_hda_multi_out_analog_open()
3737 if (mout->dig_out_nid) { in snd_hda_multi_out_analog_open()
3738 if (!mout->analog_rates) { in snd_hda_multi_out_analog_open()
3739 mout->analog_rates = hinfo->rates; in snd_hda_multi_out_analog_open()
3740 mout->analog_formats = hinfo->formats; in snd_hda_multi_out_analog_open()
3741 mout->analog_maxbps = hinfo->maxbps; in snd_hda_multi_out_analog_open()
3743 runtime->hw.rates = mout->analog_rates; in snd_hda_multi_out_analog_open()
3744 runtime->hw.formats = mout->analog_formats; in snd_hda_multi_out_analog_open()
3745 hinfo->maxbps = mout->analog_maxbps; in snd_hda_multi_out_analog_open()
3747 if (!mout->spdif_rates) { in snd_hda_multi_out_analog_open()
3748 snd_hda_query_supported_pcm(codec, mout->dig_out_nid, in snd_hda_multi_out_analog_open()
3749 &mout->spdif_rates, in snd_hda_multi_out_analog_open()
3750 &mout->spdif_formats, in snd_hda_multi_out_analog_open()
3751 &mout->spdif_maxbps); in snd_hda_multi_out_analog_open()
3754 if (mout->share_spdif) { in snd_hda_multi_out_analog_open()
3755 if ((runtime->hw.rates & mout->spdif_rates) && in snd_hda_multi_out_analog_open()
3756 (runtime->hw.formats & mout->spdif_formats)) { in snd_hda_multi_out_analog_open()
3757 runtime->hw.rates &= mout->spdif_rates; in snd_hda_multi_out_analog_open()
3758 runtime->hw.formats &= mout->spdif_formats; in snd_hda_multi_out_analog_open()
3759 if (mout->spdif_maxbps < hinfo->maxbps) in snd_hda_multi_out_analog_open()
3760 hinfo->maxbps = mout->spdif_maxbps; in snd_hda_multi_out_analog_open()
3762 mout->share_spdif = 0; in snd_hda_multi_out_analog_open()
3785 struct hda_multi_out *mout, in snd_hda_multi_out_analog_prepare() argument
3790 const hda_nid_t *nids = mout->dac_nids; in snd_hda_multi_out_analog_prepare()
3796 spdif = snd_hda_spdif_out_of_nid(codec, mout->dig_out_nid); in snd_hda_multi_out_analog_prepare()
3797 if (mout->dig_out_nid && mout->share_spdif && in snd_hda_multi_out_analog_prepare()
3798 mout->dig_out_used != HDA_DIG_EXCLUSIVE) { in snd_hda_multi_out_analog_prepare()
3800 snd_hda_is_supported_format(codec, mout->dig_out_nid, in snd_hda_multi_out_analog_prepare()
3803 mout->dig_out_used = HDA_DIG_ANALOG_DUP; in snd_hda_multi_out_analog_prepare()
3804 setup_dig_out_stream(codec, mout->dig_out_nid, in snd_hda_multi_out_analog_prepare()
3807 mout->dig_out_used = 0; in snd_hda_multi_out_analog_prepare()
3808 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_analog_prepare()
3816 if (!mout->no_share_stream && in snd_hda_multi_out_analog_prepare()
3817 mout->hp_nid && mout->hp_nid != nids[HDA_FRONT]) in snd_hda_multi_out_analog_prepare()
3819 snd_hda_codec_setup_stream(codec, mout->hp_nid, stream_tag, in snd_hda_multi_out_analog_prepare()
3822 for (i = 0; i < ARRAY_SIZE(mout->hp_out_nid); i++) in snd_hda_multi_out_analog_prepare()
3823 if (!mout->no_share_stream && mout->hp_out_nid[i]) in snd_hda_multi_out_analog_prepare()
3825 mout->hp_out_nid[i], in snd_hda_multi_out_analog_prepare()
3829 for (i = 1; i < mout->num_dacs; i++) { in snd_hda_multi_out_analog_prepare()
3833 else if (!mout->no_share_stream) /* copy front */ in snd_hda_multi_out_analog_prepare()
3839 for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++) { in snd_hda_multi_out_analog_prepare()
3841 if (!mout->extra_out_nid[i]) in snd_hda_multi_out_analog_prepare()
3845 else if (!mout->no_share_stream) in snd_hda_multi_out_analog_prepare()
3847 snd_hda_codec_setup_stream(codec, mout->extra_out_nid[i], in snd_hda_multi_out_analog_prepare()
3861 struct hda_multi_out *mout) in snd_hda_multi_out_analog_cleanup() argument
3863 const hda_nid_t *nids = mout->dac_nids; in snd_hda_multi_out_analog_cleanup()
3866 for (i = 0; i < mout->num_dacs; i++) in snd_hda_multi_out_analog_cleanup()
3868 if (mout->hp_nid) in snd_hda_multi_out_analog_cleanup()
3869 snd_hda_codec_cleanup_stream(codec, mout->hp_nid); in snd_hda_multi_out_analog_cleanup()
3870 for (i = 0; i < ARRAY_SIZE(mout->hp_out_nid); i++) in snd_hda_multi_out_analog_cleanup()
3871 if (mout->hp_out_nid[i]) in snd_hda_multi_out_analog_cleanup()
3873 mout->hp_out_nid[i]); in snd_hda_multi_out_analog_cleanup()
3874 for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++) in snd_hda_multi_out_analog_cleanup()
3875 if (mout->extra_out_nid[i]) in snd_hda_multi_out_analog_cleanup()
3877 mout->extra_out_nid[i]); in snd_hda_multi_out_analog_cleanup()
3879 if (mout->dig_out_nid && mout->dig_out_used == HDA_DIG_ANALOG_DUP) { in snd_hda_multi_out_analog_cleanup()
3880 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_analog_cleanup()
3881 mout->dig_out_used = 0; in snd_hda_multi_out_analog_cleanup()