Lines Matching refs:per_pin

410 	struct hdmi_spec_per_pin *per_pin;  in hdmi_eld_ctl_info()  local
417 per_pin = get_pin(spec, pin_idx); in hdmi_eld_ctl_info()
418 eld = &per_pin->sink_eld; in hdmi_eld_ctl_info()
420 mutex_lock(&per_pin->lock); in hdmi_eld_ctl_info()
422 mutex_unlock(&per_pin->lock); in hdmi_eld_ctl_info()
432 struct hdmi_spec_per_pin *per_pin; in hdmi_eld_ctl_get() local
437 per_pin = get_pin(spec, pin_idx); in hdmi_eld_ctl_get()
438 eld = &per_pin->sink_eld; in hdmi_eld_ctl_get()
440 mutex_lock(&per_pin->lock); in hdmi_eld_ctl_get()
443 mutex_unlock(&per_pin->lock); in hdmi_eld_ctl_get()
453 mutex_unlock(&per_pin->lock); in hdmi_eld_ctl_get()
562 struct hdmi_spec_per_pin *per_pin = entry->private_data; in print_eld_info() local
564 mutex_lock(&per_pin->lock); in print_eld_info()
565 snd_hdmi_print_eld_info(&per_pin->sink_eld, buffer); in print_eld_info()
566 mutex_unlock(&per_pin->lock); in print_eld_info()
572 struct hdmi_spec_per_pin *per_pin = entry->private_data; in write_eld_info() local
574 mutex_lock(&per_pin->lock); in write_eld_info()
575 snd_hdmi_write_eld_info(&per_pin->sink_eld, buffer); in write_eld_info()
576 mutex_unlock(&per_pin->lock); in write_eld_info()
579 static int eld_proc_new(struct hdmi_spec_per_pin *per_pin, int index) in eld_proc_new() argument
582 struct hda_codec *codec = per_pin->codec; in eld_proc_new()
591 snd_info_set_text_ops(entry, per_pin, print_eld_info); in eld_proc_new()
594 per_pin->proc_entry = entry; in eld_proc_new()
599 static void eld_proc_free(struct hdmi_spec_per_pin *per_pin) in eld_proc_free() argument
601 if (!per_pin->codec->bus->shutdown) { in eld_proc_free()
602 snd_info_free_entry(per_pin->proc_entry); in eld_proc_free()
603 per_pin->proc_entry = NULL; in eld_proc_free()
607 static inline int eld_proc_new(struct hdmi_spec_per_pin *per_pin, in eld_proc_new() argument
612 static inline void eld_proc_free(struct hdmi_spec_per_pin *per_pin) in eld_proc_free() argument
1121 struct hdmi_spec_per_pin *per_pin, in hdmi_setup_audio_infoframe() argument
1125 hda_nid_t pin_nid = per_pin->pin_nid; in hdmi_setup_audio_infoframe()
1126 int channels = per_pin->channels; in hdmi_setup_audio_infoframe()
1139 eld = &per_pin->sink_eld; in hdmi_setup_audio_infoframe()
1141 if (!non_pcm && per_pin->chmap_set) in hdmi_setup_audio_infoframe()
1142 ca = hdmi_manual_channel_allocation(channels, per_pin->chmap); in hdmi_setup_audio_infoframe()
1151 hdmi_set_channel_count(codec, per_pin->cvt_nid, active_channels); in hdmi_setup_audio_infoframe()
1158 channels, per_pin->chmap, in hdmi_setup_audio_infoframe()
1159 per_pin->chmap_set); in hdmi_setup_audio_infoframe()
1164 per_pin->non_pcm = non_pcm; in hdmi_setup_audio_infoframe()
1171 static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll);
1335 struct hdmi_spec_per_pin *per_pin; in hdmi_choose_cvt() local
1339 per_pin = get_pin(spec, pin_idx); in hdmi_choose_cvt()
1349 for (mux_idx = 0; mux_idx < per_pin->num_mux_nids; mux_idx++) in hdmi_choose_cvt()
1350 if (per_pin->mux_nids[mux_idx] == per_cvt->cvt_nid) in hdmi_choose_cvt()
1353 if (mux_idx == per_pin->num_mux_nids) in hdmi_choose_cvt()
1362 per_pin->mux_idx = mux_idx; in hdmi_choose_cvt()
1374 struct hdmi_spec_per_pin *per_pin) in intel_verify_pin_cvt_connect() argument
1376 hda_nid_t pin_nid = per_pin->pin_nid; in intel_verify_pin_cvt_connect()
1379 mux_idx = per_pin->mux_idx; in intel_verify_pin_cvt_connect()
1449 struct hdmi_spec_per_pin *per_pin; in hdmi_pcm_open() local
1458 per_pin = get_pin(spec, pin_idx); in hdmi_pcm_open()
1459 eld = &per_pin->sink_eld; in hdmi_pcm_open()
1468 per_pin->cvt_nid = per_cvt->cvt_nid; in hdmi_pcm_open()
1471 snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0, in hdmi_pcm_open()
1477 intel_not_share_assigned_cvt(codec, per_pin->pin_nid, mux_idx); in hdmi_pcm_open()
1517 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in hdmi_read_pin_conn() local
1518 hda_nid_t pin_nid = per_pin->pin_nid; in hdmi_read_pin_conn()
1527 per_pin->num_mux_nids = snd_hda_get_connections(codec, pin_nid, in hdmi_read_pin_conn()
1528 per_pin->mux_nids, in hdmi_read_pin_conn()
1534 static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll) in hdmi_present_sense() argument
1537 struct hda_codec *codec = per_pin->codec; in hdmi_present_sense()
1540 struct hdmi_eld *pin_eld = &per_pin->sink_eld; in hdmi_present_sense()
1541 hda_nid_t pin_nid = per_pin->pin_nid; in hdmi_present_sense()
1558 mutex_lock(&per_pin->lock); in hdmi_present_sense()
1585 schedule_delayed_work(&per_pin->work, in hdmi_present_sense()
1616 if (eld->eld_valid && !old_eld_valid && per_pin->setup) { in hdmi_present_sense()
1619 intel_verify_pin_cvt_connect(codec, per_pin); in hdmi_present_sense()
1621 per_pin->mux_idx); in hdmi_present_sense()
1624 hdmi_setup_audio_infoframe(codec, per_pin, in hdmi_present_sense()
1625 per_pin->non_pcm); in hdmi_present_sense()
1632 &per_pin->eld_ctl->id); in hdmi_present_sense()
1640 mutex_unlock(&per_pin->lock); in hdmi_present_sense()
1647 struct hdmi_spec_per_pin *per_pin = in hdmi_repoll_eld() local
1650 if (per_pin->repoll_count++ > 6) in hdmi_repoll_eld()
1651 per_pin->repoll_count = 0; in hdmi_repoll_eld()
1653 if (hdmi_present_sense(per_pin, per_pin->repoll_count)) in hdmi_repoll_eld()
1654 snd_hda_jack_report_sync(per_pin->codec); in hdmi_repoll_eld()
1665 struct hdmi_spec_per_pin *per_pin; in hdmi_add_pin() local
1680 per_pin = snd_array_new(&spec->pins); in hdmi_add_pin()
1681 if (!per_pin) in hdmi_add_pin()
1684 per_pin->pin_nid = pin_nid; in hdmi_add_pin()
1685 per_pin->non_pcm = false; in hdmi_add_pin()
1804 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_playback_pcm_prepare() local
1805 hda_nid_t pin_nid = per_pin->pin_nid; in generic_hdmi_playback_pcm_prepare()
1820 intel_verify_pin_cvt_connect(codec, per_pin); in generic_hdmi_playback_pcm_prepare()
1821 intel_not_share_assigned_cvt(codec, pin_nid, per_pin->mux_idx); in generic_hdmi_playback_pcm_prepare()
1832 mutex_lock(&per_pin->lock); in generic_hdmi_playback_pcm_prepare()
1833 per_pin->channels = substream->runtime->channels; in generic_hdmi_playback_pcm_prepare()
1834 per_pin->setup = true; in generic_hdmi_playback_pcm_prepare()
1836 hdmi_setup_audio_infoframe(codec, per_pin, non_pcm); in generic_hdmi_playback_pcm_prepare()
1837 mutex_unlock(&per_pin->lock); in generic_hdmi_playback_pcm_prepare()
1865 struct hdmi_spec_per_pin *per_pin; in hdmi_pcm_close() local
1881 per_pin = get_pin(spec, pin_idx); in hdmi_pcm_close()
1884 pinctl = snd_hda_codec_read(codec, per_pin->pin_nid, 0, in hdmi_pcm_close()
1886 snd_hda_codec_write(codec, per_pin->pin_nid, 0, in hdmi_pcm_close()
1893 mutex_lock(&per_pin->lock); in hdmi_pcm_close()
1894 per_pin->chmap_set = false; in hdmi_pcm_close()
1895 memset(per_pin->chmap, 0, sizeof(per_pin->chmap)); in hdmi_pcm_close()
1897 per_pin->setup = false; in hdmi_pcm_close()
1898 per_pin->channels = 0; in hdmi_pcm_close()
1899 mutex_unlock(&per_pin->lock); in hdmi_pcm_close()
2012 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in hdmi_chmap_ctl_get() local
2015 for (i = 0; i < ARRAY_SIZE(per_pin->chmap); i++) in hdmi_chmap_ctl_get()
2016 ucontrol->value.integer.value[i] = per_pin->chmap[i]; in hdmi_chmap_ctl_get()
2027 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in hdmi_chmap_ctl_put() local
2050 if (!memcmp(chmap, per_pin->chmap, sizeof(chmap))) in hdmi_chmap_ctl_put()
2060 mutex_lock(&per_pin->lock); in hdmi_chmap_ctl_put()
2061 per_pin->chmap_set = true; in hdmi_chmap_ctl_put()
2062 memcpy(per_pin->chmap, chmap, sizeof(chmap)); in hdmi_chmap_ctl_put()
2064 hdmi_setup_audio_infoframe(codec, per_pin, per_pin->non_pcm); in hdmi_chmap_ctl_put()
2065 mutex_unlock(&per_pin->lock); in hdmi_chmap_ctl_put()
2099 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_build_jack() local
2105 phantom_jack = !is_jack_detectable(codec, per_pin->pin_nid); in generic_hdmi_build_jack()
2110 return snd_hda_jack_add_kctl(codec, per_pin->pin_nid, hdmi_str, in generic_hdmi_build_jack()
2121 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_build_controls() local
2128 per_pin->pin_nid, in generic_hdmi_build_controls()
2129 per_pin->mux_nids[0], in generic_hdmi_build_controls()
2142 hdmi_present_sense(per_pin, 0); in generic_hdmi_build_controls()
2180 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_init_per_pins() local
2182 per_pin->codec = codec; in generic_hdmi_init_per_pins()
2183 mutex_init(&per_pin->lock); in generic_hdmi_init_per_pins()
2184 INIT_DELAYED_WORK(&per_pin->work, hdmi_repoll_eld); in generic_hdmi_init_per_pins()
2185 eld_proc_new(per_pin, pin_idx); in generic_hdmi_init_per_pins()
2196 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_init() local
2197 hda_nid_t pin_nid = per_pin->pin_nid; in generic_hdmi_init()
2227 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_free() local
2229 cancel_delayed_work_sync(&per_pin->work); in generic_hdmi_free()
2230 eld_proc_free(per_pin); in generic_hdmi_free()
2247 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_resume() local
2248 hdmi_present_sense(per_pin, 1); in generic_hdmi_resume()
2486 struct hdmi_spec_per_pin *per_pin = get_pin(spec, 0); in simple_playback_init() local
2487 hda_nid_t pin = per_pin->pin_nid; in simple_playback_init()
2668 struct hdmi_spec_per_pin *per_pin; in patch_simple_hdmi() local
2682 per_pin = snd_array_new(&spec->pins); in patch_simple_hdmi()
2684 if (!per_pin || !per_cvt) { in patch_simple_hdmi()
2689 per_pin->pin_nid = pin_nid; in patch_simple_hdmi()
3454 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in atihdmi_init() local
3457 snd_hda_codec_write(codec, per_pin->pin_nid, 0, ATI_VERB_SET_DOWNMIX_INFO, 0); in atihdmi_init()
3461 snd_hda_codec_write(codec, per_pin->pin_nid, 0, in atihdmi_init()