Lines Matching refs:pcm
146 struct hdac_hdmi_pcm *pcm;
148 list_for_each_entry(pcm, &hdmi->pcm_list, head) {
149 if (pcm->cvt == cvt)
150 return pcm;
156 static void hdac_hdmi_jack_report(struct hdac_hdmi_pcm *pcm,
168 if (pcm->jack_event == 0) {
170 "jack report for pcm=%d\n",
171 pcm->pcm_id);
172 snd_soc_jack_report(pcm->jack, SND_JACK_AVOUT,
175 pcm->jack_event++;
182 if (pcm->jack_event == 1)
183 snd_soc_jack_report(pcm->jack, 0, SND_JACK_AVOUT);
184 if (pcm->jack_event > 0)
185 pcm->jack_event--;
206 static void hdac_hdmi_jack_report_sync(struct hdac_hdmi_pcm *pcm,
209 hdac_hdmi_jack_report(pcm, port, is_connect);
284 struct hdac_hdmi_pcm *pcm;
286 list_for_each_entry(pcm, &hdmi->pcm_list, head) {
287 if (pcm->pcm_id == pcm_idx)
288 return pcm;
356 struct hdac_hdmi_pcm *pcm, struct hdac_hdmi_port *port)
363 struct hdac_hdmi_cvt *cvt = pcm->cvt;
372 pcm->channels, pcm->chmap_set, true, pcm->chmap);
378 pcm->channels, pcm->chmap, pcm->chmap_set);
444 struct hdac_hdmi_pcm *pcm;
456 pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, dai_map->cvt);
458 if (pcm)
459 pcm->stream_tag = (hstream->stream_tag << 4);
469 struct hdac_hdmi_pcm *pcm;
479 pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, dai_map->cvt);
480 if (!pcm)
483 pcm->format = format;
484 pcm->channels = params_channels(hparams);
517 * Query pcm list and return port to which stream is routed.
530 struct hdac_hdmi_pcm *pcm;
534 list_for_each_entry(pcm, &hdmi->pcm_list, head) {
535 if (pcm->cvt == cvt) {
536 if (list_empty(&pcm->port_list))
539 list_for_each_entry(port, &pcm->port_list, head) {
540 mutex_lock(&pcm->lock);
543 mutex_unlock(&pcm->lock);
636 struct hdac_hdmi_pcm *pcm;
640 pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, dai_map->cvt);
642 if (pcm) {
643 mutex_lock(&pcm->lock);
644 pcm->chmap_set = false;
645 memset(pcm->chmap, 0, sizeof(pcm->chmap));
646 pcm->channels = 0;
647 mutex_unlock(&pcm->lock);
677 "Failed to query pcm params for nid %d: %d\n",
722 struct hdac_hdmi_pcm *pcm;
725 list_for_each_entry(pcm, &hdmi->pcm_list, head) {
726 if (list_empty(&pcm->port_list))
729 list_for_each_entry(p, &pcm->port_list, head) {
731 return pcm;
773 struct hdac_hdmi_pcm *pcm;
778 pcm = hdac_hdmi_get_pcm(hdev, port);
779 if (!pcm)
796 return hdac_hdmi_setup_audio_infoframe(hdev, pcm, port);
819 struct hdac_hdmi_pcm *pcm;
824 pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, cvt);
825 if (!pcm)
841 AC_VERB_SET_CHANNEL_STREAMID, pcm->stream_tag);
843 AC_VERB_SET_STREAM_FORMAT, pcm->format);
909 struct hdac_hdmi_pcm *pcm;
920 list_for_each_entry(pcm, &hdmi->pcm_list, head) {
921 if (list_empty(&pcm->port_list))
924 list_for_each_entry_safe(p, p_next, &pcm->port_list, head) {
927 hdac_hdmi_jack_report_sync(pcm, port, false);
937 list_for_each_entry(pcm, &hdmi->pcm_list, head) {
938 if (!strcmp(cvt_name, pcm->cvt->name)) {
939 list_add_tail(&port->head, &pcm->port_list);
941 hdac_hdmi_jack_report_sync(pcm, port, true);
1257 struct hdac_hdmi_pcm *pcm;
1298 pcm = hdac_hdmi_get_pcm(hdev, port);
1310 if (pcm) {
1311 hdac_hdmi_jack_report(pcm, port, false);
1320 if (pcm) {
1321 hdac_hdmi_jack_report(pcm, port, true);
1331 if (eld_changed && pcm)
1335 &pcm->eld_ctl->id);
1773 struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx);
1775 memcpy(chmap, pcm->chmap, ARRAY_SIZE(pcm->chmap));
1782 struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx);
1785 if (!pcm)
1788 if (list_empty(&pcm->port_list))
1791 mutex_lock(&pcm->lock);
1792 pcm->chmap_set = true;
1793 memcpy(pcm->chmap, chmap, ARRAY_SIZE(pcm->chmap));
1794 list_for_each_entry(port, &pcm->port_list, head)
1796 hdac_hdmi_setup_audio_infoframe(hdev, pcm, port);
1797 mutex_unlock(&pcm->lock);
1803 struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx);
1805 if (!pcm)
1808 if (list_empty(&pcm->port_list))
1817 struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx);
1820 if (!pcm)
1823 if (list_empty(&pcm->port_list))
1826 port = list_first_entry(&pcm->port_list, struct hdac_hdmi_port, head);