Lines Matching refs:mout
2571 struct hda_multi_out *mout = snd_kcontrol_chip(kcontrol); in spdif_share_sw_get() local
2572 ucontrol->value.integer.value[0] = mout->share_spdif; in spdif_share_sw_get()
2579 struct hda_multi_out *mout = snd_kcontrol_chip(kcontrol); in spdif_share_sw_put() local
2580 mout->share_spdif = !!ucontrol->value.integer.value[0]; in spdif_share_sw_put()
2598 struct hda_multi_out *mout) in snd_hda_create_spdif_share_sw() argument
2602 if (!mout->dig_out_nid) in snd_hda_create_spdif_share_sw()
2605 kctl = snd_ctl_new1(&spdif_share_sw, mout); in snd_hda_create_spdif_share_sw()
2609 return snd_hda_ctl_add(codec, mout->dig_out_nid, kctl); in snd_hda_create_spdif_share_sw()
3663 struct hda_multi_out *mout) in snd_hda_multi_out_dig_open() argument
3666 if (mout->dig_out_used == HDA_DIG_ANALOG_DUP) in snd_hda_multi_out_dig_open()
3668 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_dig_open()
3669 mout->dig_out_used = HDA_DIG_EXCLUSIVE; in snd_hda_multi_out_dig_open()
3684 struct hda_multi_out *mout, in snd_hda_multi_out_dig_prepare() argument
3690 setup_dig_out_stream(codec, mout->dig_out_nid, stream_tag, format); in snd_hda_multi_out_dig_prepare()
3702 struct hda_multi_out *mout) in snd_hda_multi_out_dig_cleanup() argument
3705 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_dig_cleanup()
3717 struct hda_multi_out *mout) in snd_hda_multi_out_dig_close() argument
3720 mout->dig_out_used = 0; in snd_hda_multi_out_dig_close()
3738 struct hda_multi_out *mout, in snd_hda_multi_out_analog_open() argument
3743 runtime->hw.channels_max = mout->max_channels; in snd_hda_multi_out_analog_open()
3744 if (mout->dig_out_nid) { in snd_hda_multi_out_analog_open()
3745 if (!mout->analog_rates) { in snd_hda_multi_out_analog_open()
3746 mout->analog_rates = hinfo->rates; in snd_hda_multi_out_analog_open()
3747 mout->analog_formats = hinfo->formats; in snd_hda_multi_out_analog_open()
3748 mout->analog_maxbps = hinfo->maxbps; in snd_hda_multi_out_analog_open()
3750 runtime->hw.rates = mout->analog_rates; in snd_hda_multi_out_analog_open()
3751 runtime->hw.formats = mout->analog_formats; in snd_hda_multi_out_analog_open()
3752 hinfo->maxbps = mout->analog_maxbps; in snd_hda_multi_out_analog_open()
3754 if (!mout->spdif_rates) { in snd_hda_multi_out_analog_open()
3755 snd_hda_query_supported_pcm(codec, mout->dig_out_nid, in snd_hda_multi_out_analog_open()
3756 &mout->spdif_rates, in snd_hda_multi_out_analog_open()
3757 &mout->spdif_formats, in snd_hda_multi_out_analog_open()
3758 &mout->spdif_maxbps); in snd_hda_multi_out_analog_open()
3761 if (mout->share_spdif) { in snd_hda_multi_out_analog_open()
3762 if ((runtime->hw.rates & mout->spdif_rates) && in snd_hda_multi_out_analog_open()
3763 (runtime->hw.formats & mout->spdif_formats)) { in snd_hda_multi_out_analog_open()
3764 runtime->hw.rates &= mout->spdif_rates; in snd_hda_multi_out_analog_open()
3765 runtime->hw.formats &= mout->spdif_formats; in snd_hda_multi_out_analog_open()
3766 if (mout->spdif_maxbps < hinfo->maxbps) in snd_hda_multi_out_analog_open()
3767 hinfo->maxbps = mout->spdif_maxbps; in snd_hda_multi_out_analog_open()
3769 mout->share_spdif = 0; in snd_hda_multi_out_analog_open()
3792 struct hda_multi_out *mout, in snd_hda_multi_out_analog_prepare() argument
3797 const hda_nid_t *nids = mout->dac_nids; in snd_hda_multi_out_analog_prepare()
3803 spdif = snd_hda_spdif_out_of_nid(codec, mout->dig_out_nid); in snd_hda_multi_out_analog_prepare()
3804 if (mout->dig_out_nid && mout->share_spdif && in snd_hda_multi_out_analog_prepare()
3805 mout->dig_out_used != HDA_DIG_EXCLUSIVE) { in snd_hda_multi_out_analog_prepare()
3807 snd_hda_is_supported_format(codec, mout->dig_out_nid, in snd_hda_multi_out_analog_prepare()
3810 mout->dig_out_used = HDA_DIG_ANALOG_DUP; in snd_hda_multi_out_analog_prepare()
3811 setup_dig_out_stream(codec, mout->dig_out_nid, in snd_hda_multi_out_analog_prepare()
3814 mout->dig_out_used = 0; in snd_hda_multi_out_analog_prepare()
3815 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_analog_prepare()
3823 if (!mout->no_share_stream && in snd_hda_multi_out_analog_prepare()
3824 mout->hp_nid && mout->hp_nid != nids[HDA_FRONT]) in snd_hda_multi_out_analog_prepare()
3826 snd_hda_codec_setup_stream(codec, mout->hp_nid, stream_tag, in snd_hda_multi_out_analog_prepare()
3829 for (i = 0; i < ARRAY_SIZE(mout->hp_out_nid); i++) in snd_hda_multi_out_analog_prepare()
3830 if (!mout->no_share_stream && mout->hp_out_nid[i]) in snd_hda_multi_out_analog_prepare()
3832 mout->hp_out_nid[i], in snd_hda_multi_out_analog_prepare()
3836 for (i = 1; i < mout->num_dacs; i++) { in snd_hda_multi_out_analog_prepare()
3840 else if (!mout->no_share_stream) /* copy front */ in snd_hda_multi_out_analog_prepare()
3846 for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++) { in snd_hda_multi_out_analog_prepare()
3848 if (!mout->extra_out_nid[i]) in snd_hda_multi_out_analog_prepare()
3852 else if (!mout->no_share_stream) in snd_hda_multi_out_analog_prepare()
3854 snd_hda_codec_setup_stream(codec, mout->extra_out_nid[i], in snd_hda_multi_out_analog_prepare()
3868 struct hda_multi_out *mout) in snd_hda_multi_out_analog_cleanup() argument
3870 const hda_nid_t *nids = mout->dac_nids; in snd_hda_multi_out_analog_cleanup()
3873 for (i = 0; i < mout->num_dacs; i++) in snd_hda_multi_out_analog_cleanup()
3875 if (mout->hp_nid) in snd_hda_multi_out_analog_cleanup()
3876 snd_hda_codec_cleanup_stream(codec, mout->hp_nid); in snd_hda_multi_out_analog_cleanup()
3877 for (i = 0; i < ARRAY_SIZE(mout->hp_out_nid); i++) in snd_hda_multi_out_analog_cleanup()
3878 if (mout->hp_out_nid[i]) in snd_hda_multi_out_analog_cleanup()
3880 mout->hp_out_nid[i]); in snd_hda_multi_out_analog_cleanup()
3881 for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++) in snd_hda_multi_out_analog_cleanup()
3882 if (mout->extra_out_nid[i]) in snd_hda_multi_out_analog_cleanup()
3884 mout->extra_out_nid[i]); in snd_hda_multi_out_analog_cleanup()
3886 if (mout->dig_out_nid && mout->dig_out_used == HDA_DIG_ANALOG_DUP) { in snd_hda_multi_out_analog_cleanup()
3887 cleanup_dig_out_stream(codec, mout->dig_out_nid); in snd_hda_multi_out_analog_cleanup()
3888 mout->dig_out_used = 0; in snd_hda_multi_out_analog_cleanup()