Lines Matching refs:per_pin
405 struct hdmi_spec_per_pin *per_pin; in hdmi_eld_ctl_info() local
412 per_pin = get_pin(spec, pin_idx); in hdmi_eld_ctl_info()
413 eld = &per_pin->sink_eld; in hdmi_eld_ctl_info()
415 mutex_lock(&per_pin->lock); in hdmi_eld_ctl_info()
417 mutex_unlock(&per_pin->lock); in hdmi_eld_ctl_info()
427 struct hdmi_spec_per_pin *per_pin; in hdmi_eld_ctl_get() local
432 per_pin = get_pin(spec, pin_idx); in hdmi_eld_ctl_get()
433 eld = &per_pin->sink_eld; in hdmi_eld_ctl_get()
435 mutex_lock(&per_pin->lock); in hdmi_eld_ctl_get()
438 mutex_unlock(&per_pin->lock); in hdmi_eld_ctl_get()
448 mutex_unlock(&per_pin->lock); in hdmi_eld_ctl_get()
557 struct hdmi_spec_per_pin *per_pin = entry->private_data; in print_eld_info() local
559 mutex_lock(&per_pin->lock); in print_eld_info()
560 snd_hdmi_print_eld_info(&per_pin->sink_eld, buffer); in print_eld_info()
561 mutex_unlock(&per_pin->lock); in print_eld_info()
567 struct hdmi_spec_per_pin *per_pin = entry->private_data; in write_eld_info() local
569 mutex_lock(&per_pin->lock); in write_eld_info()
570 snd_hdmi_write_eld_info(&per_pin->sink_eld, buffer); in write_eld_info()
571 mutex_unlock(&per_pin->lock); in write_eld_info()
574 static int eld_proc_new(struct hdmi_spec_per_pin *per_pin, int index) in eld_proc_new() argument
577 struct hda_codec *codec = per_pin->codec; in eld_proc_new()
586 snd_info_set_text_ops(entry, per_pin, print_eld_info); in eld_proc_new()
589 per_pin->proc_entry = entry; in eld_proc_new()
594 static void eld_proc_free(struct hdmi_spec_per_pin *per_pin) in eld_proc_free() argument
596 if (!per_pin->codec->bus->shutdown && per_pin->proc_entry) { in eld_proc_free()
597 snd_device_free(per_pin->codec->card, per_pin->proc_entry); in eld_proc_free()
598 per_pin->proc_entry = NULL; in eld_proc_free()
602 static inline int eld_proc_new(struct hdmi_spec_per_pin *per_pin, in eld_proc_new() argument
607 static inline void eld_proc_free(struct hdmi_spec_per_pin *per_pin) in eld_proc_free() argument
1116 struct hdmi_spec_per_pin *per_pin, in hdmi_setup_audio_infoframe() argument
1120 hda_nid_t pin_nid = per_pin->pin_nid; in hdmi_setup_audio_infoframe()
1121 int channels = per_pin->channels; in hdmi_setup_audio_infoframe()
1134 eld = &per_pin->sink_eld; in hdmi_setup_audio_infoframe()
1136 if (!non_pcm && per_pin->chmap_set) in hdmi_setup_audio_infoframe()
1137 ca = hdmi_manual_channel_allocation(channels, per_pin->chmap); in hdmi_setup_audio_infoframe()
1146 hdmi_set_channel_count(codec, per_pin->cvt_nid, active_channels); in hdmi_setup_audio_infoframe()
1153 channels, per_pin->chmap, in hdmi_setup_audio_infoframe()
1154 per_pin->chmap_set); in hdmi_setup_audio_infoframe()
1159 per_pin->non_pcm = non_pcm; in hdmi_setup_audio_infoframe()
1166 static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll);
1330 struct hdmi_spec_per_pin *per_pin; in hdmi_choose_cvt() local
1334 per_pin = get_pin(spec, pin_idx); in hdmi_choose_cvt()
1344 for (mux_idx = 0; mux_idx < per_pin->num_mux_nids; mux_idx++) in hdmi_choose_cvt()
1345 if (per_pin->mux_nids[mux_idx] == per_cvt->cvt_nid) in hdmi_choose_cvt()
1348 if (mux_idx == per_pin->num_mux_nids) in hdmi_choose_cvt()
1357 per_pin->mux_idx = mux_idx; in hdmi_choose_cvt()
1369 struct hdmi_spec_per_pin *per_pin) in intel_verify_pin_cvt_connect() argument
1371 hda_nid_t pin_nid = per_pin->pin_nid; in intel_verify_pin_cvt_connect()
1374 mux_idx = per_pin->mux_idx; in intel_verify_pin_cvt_connect()
1444 struct hdmi_spec_per_pin *per_pin; in hdmi_pcm_open() local
1453 per_pin = get_pin(spec, pin_idx); in hdmi_pcm_open()
1454 eld = &per_pin->sink_eld; in hdmi_pcm_open()
1463 per_pin->cvt_nid = per_cvt->cvt_nid; in hdmi_pcm_open()
1466 snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0, in hdmi_pcm_open()
1472 intel_not_share_assigned_cvt(codec, per_pin->pin_nid, mux_idx); in hdmi_pcm_open()
1512 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in hdmi_read_pin_conn() local
1513 hda_nid_t pin_nid = per_pin->pin_nid; in hdmi_read_pin_conn()
1522 per_pin->num_mux_nids = snd_hda_get_connections(codec, pin_nid, in hdmi_read_pin_conn()
1523 per_pin->mux_nids, in hdmi_read_pin_conn()
1533 struct hdmi_spec_per_pin *per_pin, in update_eld() argument
1536 struct hdmi_eld *pin_eld = &per_pin->sink_eld; in update_eld()
1563 if (eld->eld_valid && !old_eld_valid && per_pin->setup) { in update_eld()
1565 intel_verify_pin_cvt_connect(codec, per_pin); in update_eld()
1566 intel_not_share_assigned_cvt(codec, per_pin->pin_nid, in update_eld()
1567 per_pin->mux_idx); in update_eld()
1570 hdmi_setup_audio_infoframe(codec, per_pin, per_pin->non_pcm); in update_eld()
1577 &per_pin->eld_ctl->id); in update_eld()
1580 static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll) in hdmi_present_sense() argument
1583 struct hda_codec *codec = per_pin->codec; in hdmi_present_sense()
1586 struct hdmi_eld *pin_eld = &per_pin->sink_eld; in hdmi_present_sense()
1587 hda_nid_t pin_nid = per_pin->pin_nid; in hdmi_present_sense()
1602 mutex_lock(&per_pin->lock); in hdmi_present_sense()
1628 schedule_delayed_work(&per_pin->work, msecs_to_jiffies(300)); in hdmi_present_sense()
1630 update_eld(codec, per_pin, eld); in hdmi_present_sense()
1638 mutex_unlock(&per_pin->lock); in hdmi_present_sense()
1645 struct hdmi_spec_per_pin *per_pin = in hdmi_repoll_eld() local
1648 if (per_pin->repoll_count++ > 6) in hdmi_repoll_eld()
1649 per_pin->repoll_count = 0; in hdmi_repoll_eld()
1651 if (hdmi_present_sense(per_pin, per_pin->repoll_count)) in hdmi_repoll_eld()
1652 snd_hda_jack_report_sync(per_pin->codec); in hdmi_repoll_eld()
1663 struct hdmi_spec_per_pin *per_pin; in hdmi_add_pin() local
1678 per_pin = snd_array_new(&spec->pins); in hdmi_add_pin()
1679 if (!per_pin) in hdmi_add_pin()
1682 per_pin->pin_nid = pin_nid; in hdmi_add_pin()
1683 per_pin->non_pcm = false; in hdmi_add_pin()
1792 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_playback_pcm_prepare() local
1793 hda_nid_t pin_nid = per_pin->pin_nid; in generic_hdmi_playback_pcm_prepare()
1806 intel_verify_pin_cvt_connect(codec, per_pin); in generic_hdmi_playback_pcm_prepare()
1807 intel_not_share_assigned_cvt(codec, pin_nid, per_pin->mux_idx); in generic_hdmi_playback_pcm_prepare()
1811 mutex_lock(&per_pin->lock); in generic_hdmi_playback_pcm_prepare()
1812 per_pin->channels = substream->runtime->channels; in generic_hdmi_playback_pcm_prepare()
1813 per_pin->setup = true; in generic_hdmi_playback_pcm_prepare()
1815 hdmi_setup_audio_infoframe(codec, per_pin, non_pcm); in generic_hdmi_playback_pcm_prepare()
1816 mutex_unlock(&per_pin->lock); in generic_hdmi_playback_pcm_prepare()
1844 struct hdmi_spec_per_pin *per_pin; in hdmi_pcm_close() local
1860 per_pin = get_pin(spec, pin_idx); in hdmi_pcm_close()
1863 pinctl = snd_hda_codec_read(codec, per_pin->pin_nid, 0, in hdmi_pcm_close()
1865 snd_hda_codec_write(codec, per_pin->pin_nid, 0, in hdmi_pcm_close()
1872 mutex_lock(&per_pin->lock); in hdmi_pcm_close()
1873 per_pin->chmap_set = false; in hdmi_pcm_close()
1874 memset(per_pin->chmap, 0, sizeof(per_pin->chmap)); in hdmi_pcm_close()
1876 per_pin->setup = false; in hdmi_pcm_close()
1877 per_pin->channels = 0; in hdmi_pcm_close()
1878 mutex_unlock(&per_pin->lock); in hdmi_pcm_close()
1991 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in hdmi_chmap_ctl_get() local
1994 for (i = 0; i < ARRAY_SIZE(per_pin->chmap); i++) in hdmi_chmap_ctl_get()
1995 ucontrol->value.integer.value[i] = per_pin->chmap[i]; in hdmi_chmap_ctl_get()
2006 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in hdmi_chmap_ctl_put() local
2029 if (!memcmp(chmap, per_pin->chmap, sizeof(chmap))) in hdmi_chmap_ctl_put()
2039 mutex_lock(&per_pin->lock); in hdmi_chmap_ctl_put()
2040 per_pin->chmap_set = true; in hdmi_chmap_ctl_put()
2041 memcpy(per_pin->chmap, chmap, sizeof(chmap)); in hdmi_chmap_ctl_put()
2043 hdmi_setup_audio_infoframe(codec, per_pin, per_pin->non_pcm); in hdmi_chmap_ctl_put()
2044 mutex_unlock(&per_pin->lock); in hdmi_chmap_ctl_put()
2057 struct hdmi_spec_per_pin *per_pin; in generic_hdmi_build_pcms() local
2059 per_pin = get_pin(spec, pin_idx); in generic_hdmi_build_pcms()
2080 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_build_jack() local
2085 if (!is_jack_detectable(codec, per_pin->pin_nid)) in generic_hdmi_build_jack()
2089 return snd_hda_jack_add_kctl(codec, per_pin->pin_nid, hdmi_str, 0); in generic_hdmi_build_jack()
2099 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_build_controls() local
2106 per_pin->pin_nid, in generic_hdmi_build_controls()
2107 per_pin->mux_nids[0], in generic_hdmi_build_controls()
2120 hdmi_present_sense(per_pin, 0); in generic_hdmi_build_controls()
2158 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_init_per_pins() local
2160 per_pin->codec = codec; in generic_hdmi_init_per_pins()
2161 mutex_init(&per_pin->lock); in generic_hdmi_init_per_pins()
2162 INIT_DELAYED_WORK(&per_pin->work, hdmi_repoll_eld); in generic_hdmi_init_per_pins()
2163 eld_proc_new(per_pin, pin_idx); in generic_hdmi_init_per_pins()
2174 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_init() local
2175 hda_nid_t pin_nid = per_pin->pin_nid; in generic_hdmi_init()
2202 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_free() local
2204 cancel_delayed_work_sync(&per_pin->work); in generic_hdmi_free()
2205 eld_proc_free(per_pin); in generic_hdmi_free()
2222 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in generic_hdmi_resume() local
2223 hdmi_present_sense(per_pin, 1); in generic_hdmi_resume()
2425 struct hdmi_spec_per_pin *per_pin = get_pin(spec, 0); in simple_playback_init() local
2426 hda_nid_t pin = per_pin->pin_nid; in simple_playback_init()
2607 struct hdmi_spec_per_pin *per_pin; in patch_simple_hdmi() local
2621 per_pin = snd_array_new(&spec->pins); in patch_simple_hdmi()
2623 if (!per_pin || !per_cvt) { in patch_simple_hdmi()
2628 per_pin->pin_nid = pin_nid; in patch_simple_hdmi()
3228 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); in atihdmi_init() local
3231 snd_hda_codec_write(codec, per_pin->pin_nid, 0, ATI_VERB_SET_DOWNMIX_INFO, 0); in atihdmi_init()
3235 snd_hda_codec_write(codec, per_pin->pin_nid, 0, in atihdmi_init()