Lines Matching refs:spec
82 struct hdmi_pcm *pcm; /* pointer to spec->pcm_rec[n] dynamically*/
199 struct hdmi_spec *spec = codec->spec;
200 return spec->use_acomp_notifier;
242 #define get_pin(spec, idx) \
243 ((struct hdmi_spec_per_pin *)snd_array_elem(&spec->pins, idx))
244 #define get_cvt(spec, idx) \
245 ((struct hdmi_spec_per_cvt *)snd_array_elem(&spec->cvts, idx))
247 #define get_hdmi_pcm(spec, idx) (&(spec)->pcm_rec[idx])
249 #define get_pcm_rec(spec, idx) (get_hdmi_pcm(spec, idx)->pcm)
254 struct hdmi_spec *spec = codec->spec;
265 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
266 per_pin = get_pin(spec, pin_idx);
279 struct hdmi_spec *spec = codec->spec;
282 for (pcm_idx = 0; pcm_idx < spec->pcm_used; pcm_idx++)
283 if (get_pcm_rec(spec, pcm_idx)->stream == hinfo)
293 struct hdmi_spec *spec = codec->spec;
297 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
298 per_pin = get_pin(spec, pin_idx);
309 static struct hdmi_spec_per_pin *pcm_idx_to_pin(struct hdmi_spec *spec,
315 for (i = 0; i < spec->num_pins; i++) {
316 per_pin = get_pin(spec, i);
325 struct hdmi_spec *spec = codec->spec;
328 for (cvt_idx = 0; cvt_idx < spec->num_cvts; cvt_idx++)
329 if (get_cvt(spec, cvt_idx)->cvt_nid == cvt_nid)
340 struct hdmi_spec *spec = codec->spec;
348 mutex_lock(&spec->pcm_lock);
349 per_pin = pcm_idx_to_pin(spec, pcm_idx);
359 mutex_unlock(&spec->pcm_lock);
367 struct hdmi_spec *spec = codec->spec;
374 mutex_lock(&spec->pcm_lock);
375 per_pin = pcm_idx_to_pin(spec, pcm_idx);
398 mutex_unlock(&spec->pcm_lock);
415 struct hdmi_spec *spec = codec->spec;
431 get_hdmi_pcm(spec, pcm_idx)->eld_ctl = kctl;
467 struct hdmi_spec *spec = codec->spec;
475 if (spec->dyn_pin_out)
686 struct hdmi_spec *spec = codec->spec;
692 (conn_type == 1 && spec->nv_dp_workaround)) {
742 struct hdmi_spec *spec = codec->spec;
743 struct hdac_chmap *chmap = &spec->chmap;
777 snd_hdac_setup_channel_mapping(&spec->chmap,
781 spec->ops.pin_setup_infoframe(codec, pin_nid, dev_id,
796 struct hdmi_spec *spec = codec->spec;
801 mutex_lock(&spec->pcm_lock);
802 hdmi_present_sense(get_pin(spec, pin_idx), 1);
803 mutex_unlock(&spec->pcm_lock);
951 struct hdmi_spec *spec = codec->spec;
955 err = spec->ops.pin_hbr_setup(codec, pin_nid, dev_id,
963 if (spec->intel_hsw_fixup) {
996 struct hdmi_spec *spec = codec->spec;
1005 per_pin = get_pin(spec, pin_idx);
1009 per_cvt = get_cvt(spec, cvt_idx);
1018 for (cvt_idx = 0; cvt_idx < spec->num_cvts; cvt_idx++) {
1019 per_cvt = get_cvt(spec, cvt_idx);
1037 if (cvt_idx == spec->num_cvts)
1068 static int intel_cvt_id_to_mux_idx(struct hdmi_spec *spec,
1073 for (i = 0; i < spec->num_cvts; i++)
1074 if (spec->cvt_nids[i] == cvt_nid)
1092 struct hdmi_spec *spec = codec->spec;
1100 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
1104 per_pin = get_pin(spec, pin_idx);
1147 for (cvt_idx = 0; cvt_idx < spec->num_cvts; cvt_idx++) {
1148 per_cvt = get_cvt(spec, cvt_idx);
1168 struct hdmi_spec *spec = codec->spec;
1175 mux_idx = intel_cvt_id_to_mux_idx(spec, cvt_nid);
1185 struct hdmi_spec *spec = codec->spec;
1187 if (spec->ops.pin_cvt_fixup)
1188 spec->ops.pin_cvt_fixup(codec, per_pin, cvt_nid);
1196 struct hdmi_spec *spec = codec->spec;
1210 per_cvt = get_cvt(spec, cvt_idx);
1216 set_bit(pcm_idx, &spec->pcm_in_use);
1244 struct hdmi_spec *spec = codec->spec;
1257 mutex_lock(&spec->pcm_lock);
1271 per_cvt = get_cvt(spec, cvt_idx);
1275 set_bit(pcm_idx, &spec->pcm_in_use);
1276 per_pin = get_pin(spec, pin_idx);
1324 mutex_unlock(&spec->pcm_lock);
1333 struct hdmi_spec *spec = codec->spec;
1334 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
1348 if (spec->intel_hsw_fixup) {
1349 conns = spec->num_cvts;
1350 memcpy(per_pin->mux_nids, spec->cvt_nids,
1364 static int hdmi_find_pcm_slot(struct hdmi_spec *spec,
1369 for (i = 0; i < spec->pcm_used; i++) {
1370 if (!test_bit(i, &spec->pcm_bitmap))
1376 static void hdmi_attach_hda_pcm(struct hdmi_spec *spec,
1387 if (!test_bit(idx, &spec->pcm_bitmap))
1391 idx = hdmi_find_pcm_slot(spec, per_pin);
1396 per_pin->pcm = get_hdmi_pcm(spec, idx);
1397 set_bit(idx, &spec->pcm_bitmap);
1400 static void hdmi_detach_hda_pcm(struct hdmi_spec *spec,
1412 if (idx >= 0 && idx < spec->pcm_used)
1413 clear_bit(idx, &spec->pcm_bitmap);
1416 static int hdmi_get_pin_cvt_mux(struct hdmi_spec *spec,
1429 static void hdmi_pcm_setup_pin(struct hdmi_spec *spec,
1439 if (per_pin->pcm_idx < 0 || per_pin->pcm_idx >= spec->pcm_used)
1441 pcm = get_pcm_rec(spec, per_pin->pcm_idx);
1444 if (!test_bit(per_pin->pcm_idx, &spec->pcm_in_use))
1453 mux_idx = hdmi_get_pin_cvt_mux(spec, per_pin, hinfo->nid);
1472 static void hdmi_pcm_reset_pin(struct hdmi_spec *spec,
1475 if (per_pin->pcm_idx >= 0 && per_pin->pcm_idx < spec->pcm_used)
1488 struct hdmi_spec *spec = codec->spec;
1491 return spec->pcm_rec[per_pin->pcm_idx].jack;
1506 struct hdmi_spec *spec = codec->spec;
1539 if (!spec->static_pcm_mapping) {
1541 hdmi_attach_hda_pcm(spec, per_pin);
1542 hdmi_pcm_setup_pin(spec, per_pin);
1544 hdmi_pcm_reset_pin(spec, per_pin);
1545 hdmi_detach_hda_pcm(spec, per_pin);
1593 &get_hdmi_pcm(spec, pcm_idx)->eld_ctl->id);
1606 struct hdmi_spec *spec = codec->spec;
1607 struct hdmi_eld *eld = &spec->temp_eld;
1645 if (spec->ops.pin_get_eld(codec, pin_nid, dev_id,
1704 struct hdmi_spec *spec = codec->spec;
1737 per_cvt = get_cvt(spec, cvt_idx);
1753 switch (spec->silent_stream_type) {
1776 struct hdmi_spec *spec = codec->spec;
1797 if (cvt_idx >= 0 && cvt_idx < spec->num_cvts) {
1798 per_cvt = get_cvt(spec, cvt_idx);
1802 if (spec->silent_stream_type == SILENT_STREAM_I915) {
1805 } else if (spec->silent_stream_type == SILENT_STREAM_KAE) {
1822 struct hdmi_spec *spec = codec->spec;
1823 struct hdmi_eld *eld = &spec->temp_eld;
1837 if (spec->silent_stream_type) {
1860 struct hdmi_spec *spec = codec->spec;
1871 mutex_lock(&spec->pcm_lock);
1873 mutex_unlock(&spec->pcm_lock);
1878 struct hdmi_spec *spec = codec->spec;
1895 !spec->force_connect)
1902 if (spec->intel_hsw_fixup) {
1909 dev_num = spec->dev_num;
1913 * spec->dev_num is the maxinum number of device entries
1916 spec->dev_num = (spec->dev_num > dev_num) ?
1917 spec->dev_num : dev_num;
1925 spec->dev_num = 1;
1929 pin_idx = spec->num_pins;
1930 per_pin = snd_array_new(&spec->pins);
1939 per_pin->pin_nid_idx = spec->num_nids;
1948 spec->num_pins++;
1950 spec->num_nids++;
1957 struct hdmi_spec *spec = codec->spec;
1965 per_cvt = snd_array_new(&spec->cvts);
1973 if (chans > spec->chmap.channels_max)
1974 spec->chmap.channels_max = chans;
1984 if (spec->num_cvts < ARRAY_SIZE(spec->cvt_nids))
1985 spec->cvt_nids[spec->num_cvts] = cvt_nid;
1986 spec->num_cvts++;
2006 struct hdmi_spec *spec = codec->spec;
2019 spec->force_connect = true;
2024 spec->force_connect = true;
2090 struct hdmi_spec *spec = codec->spec;
2098 mutex_lock(&spec->pcm_lock);
2110 per_pin = get_pin(spec, pin_idx);
2143 if (spec->dyn_pin_out) {
2154 err = spec->ops.setup_stream(codec, cvt_nid, per_pin->pin_nid,
2157 mutex_unlock(&spec->pcm_lock);
2173 struct hdmi_spec *spec = codec->spec;
2180 mutex_lock(&spec->pcm_lock);
2192 per_cvt = get_cvt(spec, cvt_idx);
2199 clear_bit(pcm_idx, &spec->pcm_in_use);
2208 per_pin = get_pin(spec, pin_idx);
2210 if (spec->dyn_pin_out) {
2230 mutex_unlock(&spec->pcm_lock);
2245 struct hdmi_spec *spec = codec->spec;
2246 struct hdmi_spec_per_pin *per_pin = pcm_idx_to_pin(spec, pcm_idx);
2258 struct hdmi_spec *spec = codec->spec;
2259 struct hdmi_spec_per_pin *per_pin = pcm_idx_to_pin(spec, pcm_idx);
2272 struct hdmi_spec *spec = codec->spec;
2273 struct hdmi_spec_per_pin *per_pin = pcm_idx_to_pin(spec, pcm_idx);
2288 struct hdmi_spec *spec = codec->spec;
2289 struct hdmi_spec_per_pin *per_pin = pcm_idx_to_pin(spec, pcm_idx);
2296 struct hdmi_spec *spec = codec->spec;
2300 pcm_num = min(spec->num_cvts, spec->num_pins);
2312 spec->pcm_rec[idx].pcm = info;
2313 spec->pcm_used++;
2321 per_cvt = get_cvt(spec, 0);
2326 if (spec->pcm_used >= ARRAY_SIZE(spec->pcm_rec))
2344 struct hdmi_spec *spec = codec->spec;
2346 int pcmdev = get_pcm_rec(spec, pcm_idx)->device;
2357 spec->pcm_rec[pcm_idx].jack = jack;
2358 jack->private_data = &spec->pcm_rec[pcm_idx];
2365 struct hdmi_spec *spec = codec->spec;
2369 for (pcm_idx = 0; pcm_idx < spec->pcm_used; pcm_idx++) {
2370 if (!get_pcm_rec(spec, pcm_idx)->pcm) {
2372 set_bit(pcm_idx, &spec->pcm_bitmap);
2384 0, spec->cvt_nids[0],
2390 dev = get_pcm_rec(spec, pcm_idx)->device;
2399 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
2400 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
2403 if (spec->static_pcm_mapping) {
2404 hdmi_attach_hda_pcm(spec, per_pin);
2405 hdmi_pcm_setup_pin(spec, per_pin);
2413 for (pcm_idx = 0; pcm_idx < spec->pcm_used; pcm_idx++) {
2416 pcm = get_pcm_rec(spec, pcm_idx);
2419 err = snd_hdac_add_chmap_ctls(pcm->pcm, pcm_idx, &spec->chmap);
2429 struct hdmi_spec *spec = codec->spec;
2432 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
2433 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
2445 struct hdmi_spec *spec = codec->spec;
2448 mutex_lock(&spec->bind_lock);
2449 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
2450 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
2461 mutex_unlock(&spec->bind_lock);
2465 static void hdmi_array_init(struct hdmi_spec *spec, int nums)
2467 snd_array_init(&spec->pins, sizeof(struct hdmi_spec_per_pin), nums);
2468 snd_array_init(&spec->cvts, sizeof(struct hdmi_spec_per_cvt), nums);
2471 static void hdmi_array_free(struct hdmi_spec *spec)
2473 snd_array_free(&spec->pins);
2474 snd_array_free(&spec->cvts);
2479 struct hdmi_spec *spec = codec->spec;
2481 if (spec) {
2482 hdmi_array_free(spec);
2483 kfree(spec);
2484 codec->spec = NULL;
2491 struct hdmi_spec *spec = codec->spec;
2494 if (spec->acomp_registered) {
2501 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
2502 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
2507 for (pcm_idx = 0; pcm_idx < spec->pcm_used; pcm_idx++) {
2508 if (spec->pcm_rec[pcm_idx].jack == NULL)
2510 snd_device_free(codec->card, spec->pcm_rec[pcm_idx].jack);
2519 struct hdmi_spec *spec = codec->spec;
2522 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
2523 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
2531 struct hdmi_spec *spec = codec->spec;
2537 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
2538 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
2564 /* allocate codec->spec and assign/initialize generic parser ops */
2567 struct hdmi_spec *spec;
2569 spec = kzalloc(sizeof(*spec), GFP_KERNEL);
2570 if (!spec)
2573 spec->codec = codec;
2574 spec->ops = generic_standard_hdmi_ops;
2575 spec->dev_num = 1; /* initialize to 1 */
2576 mutex_init(&spec->pcm_lock);
2577 mutex_init(&spec->bind_lock);
2578 snd_hdac_register_chmap_ops(&codec->core, &spec->chmap);
2580 spec->chmap.ops.get_chmap = hdmi_get_chmap;
2581 spec->chmap.ops.set_chmap = hdmi_set_chmap;
2582 spec->chmap.ops.is_pcm_attached = is_hdmi_pcm_attached;
2583 spec->chmap.ops.get_spk_alloc = hdmi_get_spk_alloc;
2585 codec->spec = spec;
2586 hdmi_array_init(spec, 4);
2637 struct hdmi_spec *spec;
2640 spec = container_of(acomp->audio_ops, struct hdmi_spec, drm_audio_ops);
2641 mutex_lock(&spec->bind_lock);
2642 spec->use_acomp_notifier = use_acomp;
2643 spec->codec->relaxed_resume = use_acomp;
2644 spec->codec->bus->keep_power = 0;
2646 for (i = 0; i < spec->num_pins; i++)
2647 reprogram_jack_detect(spec->codec,
2648 get_pin(spec, i)->pin_nid,
2649 get_pin(spec, i)->dev_id,
2651 mutex_unlock(&spec->bind_lock);
2685 struct hdmi_spec *spec = codec->spec;
2686 hda_nid_t pin_nid = spec->port2pin(codec, port);
2705 struct hdmi_spec *spec = codec->spec;
2707 spec->drm_audio_ops.audio_ptr = codec;
2713 spec->drm_audio_ops.pin2port = ops->pin2port;
2714 spec->drm_audio_ops.pin_eld_notify = ops->pin_eld_notify;
2715 spec->drm_audio_ops.master_bind = ops->master_bind;
2716 spec->drm_audio_ops.master_unbind = ops->master_unbind;
2724 struct hdmi_spec *spec = codec->spec;
2731 spec->port2pin = port2pin;
2733 if (!snd_hdac_acomp_init(&codec->bus->core, &spec->drm_audio_ops,
2735 spec->acomp_registered = true;
2752 struct hdmi_spec *spec = codec->spec;
2754 vendor_param = snd_hda_codec_read(codec, spec->vendor_nid, 0,
2760 vendor_param = snd_hda_codec_read(codec, spec->vendor_nid, 0,
2772 struct hdmi_spec *spec = codec->spec;
2774 vendor_param = snd_hda_codec_read(codec, spec->vendor_nid, 0,
2782 snd_hda_codec_write_cache(codec, spec->vendor_nid, 0,
2827 struct hdmi_spec *spec = codec->spec;
2830 if (!spec->port_num) {
2841 for (i = 0; i < spec->port_num; i++) {
2842 if (pin_nid == spec->port_map[i])
2852 struct hdmi_spec *spec = codec->spec;
2854 if (!spec->port_num) {
2861 if (port < 0 || port >= spec->port_num)
2863 return spec->port_map[port];
2893 struct hdmi_spec *spec = codec->spec;
2895 spec->use_acomp_notifier = true;
2896 spec->port2pin = intel_port2pin;
2899 &spec->drm_audio_ops);
2909 struct hdmi_spec *spec = codec->spec;
2917 per_pin = get_pin(spec, pin_idx);
2921 if (spec->silent_stream_type == SILENT_STREAM_KAE && per_pin && per_pin->silent_stream) {
2930 if (spec->silent_stream_type == SILENT_STREAM_KAE && per_pin && per_pin->silent_stream) {
2958 struct hdmi_spec *spec = codec->spec;
2964 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
2965 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
2973 if (silent_streams && spec->silent_stream_type == SILENT_STREAM_KAE) {
2997 struct hdmi_spec *spec = codec->spec;
3006 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
3007 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
3082 struct hdmi_spec *spec;
3088 spec = codec->spec;
3090 spec->vendor_nid = vendor_nid;
3091 spec->port_map = port_map;
3092 spec->port_num = port_num;
3093 spec->intel_hsw_fixup = true;
3094 spec->dev_num = dev_num;
3105 spec->ops.setup_stream = i915_hsw_setup_stream;
3106 spec->ops.pin_cvt_fixup = i915_pin_cvt_fixup;
3113 spec->silent_stream_type = SILENT_STREAM_I915;
3160 struct hdmi_spec *spec;
3165 spec = codec->spec;
3167 if (spec->silent_stream_type) {
3168 spec->silent_stream_type = SILENT_STREAM_KAE;
3183 struct hdmi_spec *spec;
3189 spec = codec->spec;
3199 spec->ops.pin_cvt_fixup = i915_pin_cvt_fixup;
3221 struct hdmi_spec *spec = codec->spec;
3227 per_cvt = get_cvt(spec, 0);
3234 spec->pcm_rec[0].pcm = info;
3237 *pstr = spec->pcm_playback;
3254 * as long as spec->pins[] is set correctly
3260 struct hdmi_spec *spec = codec->spec;
3264 per_cvt = get_cvt(spec, 0);
3275 struct hdmi_spec *spec = codec->spec;
3276 struct hdmi_spec_per_pin *per_pin = get_pin(spec, 0);
3291 struct hdmi_spec *spec = codec->spec;
3293 hdmi_array_free(spec);
3294 kfree(spec);
3386 struct hdmi_spec *spec = codec->spec;
3412 return snd_hda_multi_out_dig_open(codec, &spec->multiout);
3419 struct hdmi_spec *spec = codec->spec;
3420 return snd_hda_multi_out_dig_close(codec, &spec->multiout);
3429 struct hdmi_spec *spec = codec->spec;
3430 return snd_hda_multi_out_dig_prepare(codec, &spec->multiout,
3456 struct hdmi_spec *spec;
3460 spec = kzalloc(sizeof(*spec), GFP_KERNEL);
3461 if (!spec)
3464 spec->codec = codec;
3465 codec->spec = spec;
3466 hdmi_array_init(spec, 1);
3468 spec->multiout.num_dacs = 0; /* no analog */
3469 spec->multiout.max_channels = 2;
3470 spec->multiout.dig_out_nid = cvt_nid;
3471 spec->num_cvts = 1;
3472 spec->num_pins = 1;
3473 per_pin = snd_array_new(&spec->pins);
3474 per_cvt = snd_array_new(&spec->cvts);
3481 spec->pcm_playback = simple_pcm_playback;
3525 struct hdmi_spec *spec = codec->spec;
3543 return snd_hda_multi_out_dig_close(codec, &spec->multiout);
3555 struct hdmi_spec *spec = codec->spec;
3560 per_cvt = get_cvt(spec, 0);
3664 struct hdmi_spec *spec;
3672 spec = codec->spec;
3673 spec->pcm_playback.rates = SUPPORTED_RATES;
3674 spec->pcm_playback.maxbps = SUPPORTED_MAXBPS;
3675 spec->pcm_playback.formats = SUPPORTED_FORMATS;
3676 spec->nv_dp_workaround = true;
3682 struct hdmi_spec *spec = codec->spec;
3685 struct hda_pcm *info = get_pcm_rec(spec, 0);
3693 struct hdmi_spec *spec = codec->spec;
3703 info = get_pcm_rec(spec, 0);
3724 struct hdmi_spec *spec;
3728 spec = codec->spec;
3729 spec->multiout.max_channels = 8;
3730 spec->pcm_playback = nvhdmi_pcm_playback_8ch_7x;
3792 struct hdmi_spec *spec;
3800 spec = codec->spec;
3810 spec->dyn_pin_out = true;
3812 spec->chmap.ops.chmap_cea_alloc_validate_get_type =
3814 spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate;
3815 spec->nv_dp_workaround = true;
3826 struct hdmi_spec *spec;
3833 spec = codec->spec;
3834 spec->dyn_pin_out = true;
3836 spec->chmap.ops.chmap_cea_alloc_validate_get_type =
3838 spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate;
3839 spec->nv_dp_workaround = true;
3897 struct hdmi_spec *spec = codec->spec;
3934 if (spec->hdmi_intr_trig_ctrl) {
3989 struct hdmi_spec *spec = codec->spec;
3992 for (i = 0; i < spec->num_pins; i++) {
3993 struct hda_pcm *pcm = get_pcm_rec(spec, i);
4029 struct hdmi_spec *spec = codec->spec;
4038 for (i = 0; i < spec->num_cvts; i++)
4039 snd_hda_codec_write(codec, spec->cvt_nids[i], 0,
4047 spec->chmap.ops.chmap_cea_alloc_validate_get_type =
4049 spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate;
4051 spec->chmap.ops.chmap_cea_alloc_validate_get_type =
4053 spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate;
4054 spec->nv_dp_workaround = true;
4072 struct hdmi_spec *spec;
4080 spec = codec->spec;
4081 spec->dyn_pin_out = true;
4082 spec->hdmi_intr_trig_ctrl = true;
4373 int ramp_rate = 180; /* default as per AMD spec */
4374 /* disable ramp-up/down for non-pcm as per AMD spec */
4388 struct hdmi_spec *spec = codec->spec;
4396 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
4397 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
4435 struct hdmi_spec *spec;
4446 spec = codec->spec;
4448 spec->static_pcm_mapping = true;
4450 spec->ops.pin_get_eld = atihdmi_pin_get_eld;
4451 spec->ops.pin_setup_infoframe = atihdmi_pin_setup_infoframe;
4452 spec->ops.pin_hbr_setup = atihdmi_pin_hbr_setup;
4453 spec->ops.setup_stream = atihdmi_setup_stream;
4455 spec->chmap.ops.pin_get_slot_channel = atihdmi_pin_get_slot_channel;
4456 spec->chmap.ops.pin_set_slot_channel = atihdmi_pin_set_slot_channel;
4460 spec->chmap.ops.chmap_cea_alloc_validate_get_type =
4462 spec->chmap.ops.cea_alloc_to_tlv_chmap =
4464 spec->chmap.ops.chmap_validate = atihdmi_paired_chmap_validate;
4468 for (cvt_idx = 0; cvt_idx < spec->num_cvts; cvt_idx++) {
4469 per_cvt = get_cvt(spec, cvt_idx);
4476 spec->chmap.channels_max = max(spec->chmap.channels_max, 8u);