Lines Matching refs:dig_port

27 tc_cold_get_power_domain(struct intel_digital_port *dig_port)  in tc_cold_get_power_domain()  argument
29 if (intel_tc_cold_requires_aux_pw(dig_port)) in tc_cold_get_power_domain()
30 return intel_legacy_aux_to_power_domain(dig_port->aux_ch); in tc_cold_get_power_domain()
36 tc_cold_block(struct intel_digital_port *dig_port) in tc_cold_block() argument
38 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in tc_cold_block()
41 if (DISPLAY_VER(i915) == 11 && !dig_port->tc_legacy_port) in tc_cold_block()
44 domain = tc_cold_get_power_domain(dig_port); in tc_cold_block()
49 tc_cold_unblock(struct intel_digital_port *dig_port, intel_wakeref_t wakeref) in tc_cold_unblock() argument
51 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in tc_cold_unblock()
62 domain = tc_cold_get_power_domain(dig_port); in tc_cold_unblock()
67 assert_tc_cold_blocked(struct intel_digital_port *dig_port) in assert_tc_cold_blocked() argument
69 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in assert_tc_cold_blocked()
72 if (DISPLAY_VER(i915) == 11 && !dig_port->tc_legacy_port) in assert_tc_cold_blocked()
76 tc_cold_get_power_domain(dig_port)); in assert_tc_cold_blocked()
80 u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port) in intel_tc_port_get_lane_mask() argument
82 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_get_lane_mask()
87 PORT_TX_DFLEXDPSP(dig_port->tc_phy_fia)); in intel_tc_port_get_lane_mask()
90 assert_tc_cold_blocked(dig_port); in intel_tc_port_get_lane_mask()
92 lane_mask &= DP_LANE_ASSIGNMENT_MASK(dig_port->tc_phy_fia_idx); in intel_tc_port_get_lane_mask()
93 return lane_mask >> DP_LANE_ASSIGNMENT_SHIFT(dig_port->tc_phy_fia_idx); in intel_tc_port_get_lane_mask()
96 u32 intel_tc_port_get_pin_assignment_mask(struct intel_digital_port *dig_port) in intel_tc_port_get_pin_assignment_mask() argument
98 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_get_pin_assignment_mask()
103 PORT_TX_DFLEXPA1(dig_port->tc_phy_fia)); in intel_tc_port_get_pin_assignment_mask()
106 assert_tc_cold_blocked(dig_port); in intel_tc_port_get_pin_assignment_mask()
108 return (pin_mask & DP_PIN_ASSIGNMENT_MASK(dig_port->tc_phy_fia_idx)) >> in intel_tc_port_get_pin_assignment_mask()
109 DP_PIN_ASSIGNMENT_SHIFT(dig_port->tc_phy_fia_idx); in intel_tc_port_get_pin_assignment_mask()
112 int intel_tc_port_fia_max_lane_count(struct intel_digital_port *dig_port) in intel_tc_port_fia_max_lane_count() argument
114 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_fia_max_lane_count()
118 if (dig_port->tc_mode != TC_PORT_DP_ALT) in intel_tc_port_fia_max_lane_count()
121 assert_tc_cold_blocked(dig_port); in intel_tc_port_fia_max_lane_count()
125 lane_mask = intel_tc_port_get_lane_mask(dig_port); in intel_tc_port_fia_max_lane_count()
144 void intel_tc_port_set_fia_lane_count(struct intel_digital_port *dig_port, in intel_tc_port_set_fia_lane_count() argument
147 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_set_fia_lane_count()
148 bool lane_reversal = dig_port->saved_port_bits & DDI_BUF_PORT_REVERSAL; in intel_tc_port_set_fia_lane_count()
153 lane_reversal && dig_port->tc_mode != TC_PORT_LEGACY); in intel_tc_port_set_fia_lane_count()
155 assert_tc_cold_blocked(dig_port); in intel_tc_port_set_fia_lane_count()
158 PORT_TX_DFLEXDPMLE1(dig_port->tc_phy_fia)); in intel_tc_port_set_fia_lane_count()
159 val &= ~DFLEXDPMLE1_DPMLETC_MASK(dig_port->tc_phy_fia_idx); in intel_tc_port_set_fia_lane_count()
164 DFLEXDPMLE1_DPMLETC_ML3(dig_port->tc_phy_fia_idx) : in intel_tc_port_set_fia_lane_count()
165 DFLEXDPMLE1_DPMLETC_ML0(dig_port->tc_phy_fia_idx); in intel_tc_port_set_fia_lane_count()
169 DFLEXDPMLE1_DPMLETC_ML3_2(dig_port->tc_phy_fia_idx) : in intel_tc_port_set_fia_lane_count()
170 DFLEXDPMLE1_DPMLETC_ML1_0(dig_port->tc_phy_fia_idx); in intel_tc_port_set_fia_lane_count()
173 val |= DFLEXDPMLE1_DPMLETC_ML3_0(dig_port->tc_phy_fia_idx); in intel_tc_port_set_fia_lane_count()
180 PORT_TX_DFLEXDPMLE1(dig_port->tc_phy_fia), val); in intel_tc_port_set_fia_lane_count()
183 static void tc_port_fixup_legacy_flag(struct intel_digital_port *dig_port, in tc_port_fixup_legacy_flag() argument
186 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in tc_port_fixup_legacy_flag()
189 if (dig_port->tc_legacy_port) in tc_port_fixup_legacy_flag()
201 dig_port->tc_port_name, live_status_mask, valid_hpd_mask); in tc_port_fixup_legacy_flag()
203 dig_port->tc_legacy_port = !dig_port->tc_legacy_port; in tc_port_fixup_legacy_flag()
206 static u32 icl_tc_port_live_status_mask(struct intel_digital_port *dig_port) in icl_tc_port_live_status_mask() argument
208 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in icl_tc_port_live_status_mask()
210 u32 isr_bit = i915->hotplug.pch_hpd[dig_port->base.hpd_pin]; in icl_tc_port_live_status_mask()
215 PORT_TX_DFLEXDPSP(dig_port->tc_phy_fia)); in icl_tc_port_live_status_mask()
220 dig_port->tc_port_name); in icl_tc_port_live_status_mask()
224 if (val & TC_LIVE_STATE_TBT(dig_port->tc_phy_fia_idx)) in icl_tc_port_live_status_mask()
226 if (val & TC_LIVE_STATE_TC(dig_port->tc_phy_fia_idx)) in icl_tc_port_live_status_mask()
234 tc_port_fixup_legacy_flag(dig_port, mask); in icl_tc_port_live_status_mask()
239 static u32 adl_tc_port_live_status_mask(struct intel_digital_port *dig_port) in adl_tc_port_live_status_mask() argument
241 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in adl_tc_port_live_status_mask()
242 enum tc_port tc_port = intel_port_to_tc(i915, dig_port->base.port); in adl_tc_port_live_status_mask()
243 u32 isr_bit = i915->hotplug.pch_hpd[dig_port->base.hpd_pin]; in adl_tc_port_live_status_mask()
258 tc_port_fixup_legacy_flag(dig_port, mask); in adl_tc_port_live_status_mask()
263 static u32 tc_port_live_status_mask(struct intel_digital_port *dig_port) in tc_port_live_status_mask() argument
265 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in tc_port_live_status_mask()
268 return adl_tc_port_live_status_mask(dig_port); in tc_port_live_status_mask()
270 return icl_tc_port_live_status_mask(dig_port); in tc_port_live_status_mask()
273 static bool icl_tc_phy_status_complete(struct intel_digital_port *dig_port) in icl_tc_phy_status_complete() argument
275 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in icl_tc_phy_status_complete()
280 PORT_TX_DFLEXDPPMS(dig_port->tc_phy_fia)); in icl_tc_phy_status_complete()
284 dig_port->tc_port_name); in icl_tc_phy_status_complete()
288 return val & DP_PHY_MODE_STATUS_COMPLETED(dig_port->tc_phy_fia_idx); in icl_tc_phy_status_complete()
291 static bool adl_tc_phy_status_complete(struct intel_digital_port *dig_port) in adl_tc_phy_status_complete() argument
293 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in adl_tc_phy_status_complete()
297 val = intel_uncore_read(uncore, TCSS_DDI_STATUS(dig_port->tc_phy_fia_idx)); in adl_tc_phy_status_complete()
301 dig_port->tc_port_name); in adl_tc_phy_status_complete()
308 static bool tc_phy_status_complete(struct intel_digital_port *dig_port) in tc_phy_status_complete() argument
310 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in tc_phy_status_complete()
313 return adl_tc_phy_status_complete(dig_port); in tc_phy_status_complete()
315 return icl_tc_phy_status_complete(dig_port); in tc_phy_status_complete()
318 static bool icl_tc_phy_take_ownership(struct intel_digital_port *dig_port, in icl_tc_phy_take_ownership() argument
321 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in icl_tc_phy_take_ownership()
326 PORT_TX_DFLEXDPCSSS(dig_port->tc_phy_fia)); in icl_tc_phy_take_ownership()
330 dig_port->tc_port_name, take ? "take" : "release"); in icl_tc_phy_take_ownership()
335 val &= ~DP_PHY_MODE_STATUS_NOT_SAFE(dig_port->tc_phy_fia_idx); in icl_tc_phy_take_ownership()
337 val |= DP_PHY_MODE_STATUS_NOT_SAFE(dig_port->tc_phy_fia_idx); in icl_tc_phy_take_ownership()
340 PORT_TX_DFLEXDPCSSS(dig_port->tc_phy_fia), val); in icl_tc_phy_take_ownership()
342 if (!take && wait_for(!tc_phy_status_complete(dig_port), 10)) in icl_tc_phy_take_ownership()
345 dig_port->tc_port_name); in icl_tc_phy_take_ownership()
350 static bool adl_tc_phy_take_ownership(struct intel_digital_port *dig_port, in adl_tc_phy_take_ownership() argument
353 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in adl_tc_phy_take_ownership()
355 enum port port = dig_port->base.port; in adl_tc_phy_take_ownership()
368 static bool tc_phy_take_ownership(struct intel_digital_port *dig_port, bool take) in tc_phy_take_ownership() argument
370 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in tc_phy_take_ownership()
373 return adl_tc_phy_take_ownership(dig_port, take); in tc_phy_take_ownership()
375 return icl_tc_phy_take_ownership(dig_port, take); in tc_phy_take_ownership()
378 static bool icl_tc_phy_is_owned(struct intel_digital_port *dig_port) in icl_tc_phy_is_owned() argument
380 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in icl_tc_phy_is_owned()
385 PORT_TX_DFLEXDPCSSS(dig_port->tc_phy_fia)); in icl_tc_phy_is_owned()
389 dig_port->tc_port_name); in icl_tc_phy_is_owned()
393 return val & DP_PHY_MODE_STATUS_NOT_SAFE(dig_port->tc_phy_fia_idx); in icl_tc_phy_is_owned()
396 static bool adl_tc_phy_is_owned(struct intel_digital_port *dig_port) in adl_tc_phy_is_owned() argument
398 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in adl_tc_phy_is_owned()
400 enum port port = dig_port->base.port; in adl_tc_phy_is_owned()
407 static bool tc_phy_is_owned(struct intel_digital_port *dig_port) in tc_phy_is_owned() argument
409 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in tc_phy_is_owned()
412 return adl_tc_phy_is_owned(dig_port); in tc_phy_is_owned()
414 return icl_tc_phy_is_owned(dig_port); in tc_phy_is_owned()
428 static void icl_tc_phy_connect(struct intel_digital_port *dig_port, in icl_tc_phy_connect() argument
431 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in icl_tc_phy_connect()
434 if (!tc_phy_status_complete(dig_port)) { in icl_tc_phy_connect()
436 dig_port->tc_port_name); in icl_tc_phy_connect()
440 if (!tc_phy_take_ownership(dig_port, true) && in icl_tc_phy_connect()
441 !drm_WARN_ON(&i915->drm, dig_port->tc_legacy_port)) in icl_tc_phy_connect()
444 max_lanes = intel_tc_port_fia_max_lane_count(dig_port); in icl_tc_phy_connect()
445 if (dig_port->tc_legacy_port) { in icl_tc_phy_connect()
447 dig_port->tc_mode = TC_PORT_LEGACY; in icl_tc_phy_connect()
456 if (!(tc_port_live_status_mask(dig_port) & BIT(TC_PORT_DP_ALT))) { in icl_tc_phy_connect()
458 dig_port->tc_port_name); in icl_tc_phy_connect()
465 dig_port->tc_port_name, in icl_tc_phy_connect()
470 dig_port->tc_mode = TC_PORT_DP_ALT; in icl_tc_phy_connect()
475 tc_phy_take_ownership(dig_port, false); in icl_tc_phy_connect()
477 dig_port->tc_mode = TC_PORT_TBT_ALT; in icl_tc_phy_connect()
484 static void icl_tc_phy_disconnect(struct intel_digital_port *dig_port) in icl_tc_phy_disconnect() argument
486 switch (dig_port->tc_mode) { in icl_tc_phy_disconnect()
491 tc_phy_take_ownership(dig_port, false); in icl_tc_phy_disconnect()
492 dig_port->tc_mode = TC_PORT_TBT_ALT; in icl_tc_phy_disconnect()
498 MISSING_CASE(dig_port->tc_mode); in icl_tc_phy_disconnect()
502 static bool icl_tc_phy_is_connected(struct intel_digital_port *dig_port) in icl_tc_phy_is_connected() argument
504 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in icl_tc_phy_is_connected()
506 if (!tc_phy_status_complete(dig_port)) { in icl_tc_phy_is_connected()
508 dig_port->tc_port_name); in icl_tc_phy_is_connected()
509 return dig_port->tc_mode == TC_PORT_TBT_ALT; in icl_tc_phy_is_connected()
512 if (!tc_phy_is_owned(dig_port)) { in icl_tc_phy_is_connected()
514 dig_port->tc_port_name); in icl_tc_phy_is_connected()
519 return dig_port->tc_mode == TC_PORT_DP_ALT || in icl_tc_phy_is_connected()
520 dig_port->tc_mode == TC_PORT_LEGACY; in icl_tc_phy_is_connected()
524 intel_tc_port_get_current_mode(struct intel_digital_port *dig_port) in intel_tc_port_get_current_mode() argument
526 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_get_current_mode()
527 u32 live_status_mask = tc_port_live_status_mask(dig_port); in intel_tc_port_get_current_mode()
530 if (!tc_phy_is_owned(dig_port) || in intel_tc_port_get_current_mode()
531 drm_WARN_ON(&i915->drm, !tc_phy_status_complete(dig_port))) in intel_tc_port_get_current_mode()
534 mode = dig_port->tc_legacy_port ? TC_PORT_LEGACY : TC_PORT_DP_ALT; in intel_tc_port_get_current_mode()
546 intel_tc_port_get_target_mode(struct intel_digital_port *dig_port) in intel_tc_port_get_target_mode() argument
548 u32 live_status_mask = tc_port_live_status_mask(dig_port); in intel_tc_port_get_target_mode()
553 return tc_phy_status_complete(dig_port) && in intel_tc_port_get_target_mode()
554 dig_port->tc_legacy_port ? TC_PORT_LEGACY : in intel_tc_port_get_target_mode()
558 static void intel_tc_port_reset_mode(struct intel_digital_port *dig_port, in intel_tc_port_reset_mode() argument
561 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_reset_mode()
562 enum tc_port_mode old_tc_mode = dig_port->tc_mode; in intel_tc_port_reset_mode()
565 if (!intel_tc_cold_requires_aux_pw(dig_port)) { in intel_tc_port_reset_mode()
569 aux_domain = intel_aux_power_domain(dig_port); in intel_tc_port_reset_mode()
574 icl_tc_phy_disconnect(dig_port); in intel_tc_port_reset_mode()
576 icl_tc_phy_connect(dig_port, required_lanes); in intel_tc_port_reset_mode()
579 dig_port->tc_port_name, in intel_tc_port_reset_mode()
581 tc_port_mode_name(dig_port->tc_mode)); in intel_tc_port_reset_mode()
585 intel_tc_port_link_init_refcount(struct intel_digital_port *dig_port, in intel_tc_port_link_init_refcount() argument
588 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_link_init_refcount()
590 drm_WARN_ON(&i915->drm, dig_port->tc_link_refcount); in intel_tc_port_link_init_refcount()
591 dig_port->tc_link_refcount = refcount; in intel_tc_port_link_init_refcount()
594 void intel_tc_port_sanitize(struct intel_digital_port *dig_port) in intel_tc_port_sanitize() argument
596 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_sanitize()
597 struct intel_encoder *encoder = &dig_port->base; in intel_tc_port_sanitize()
601 mutex_lock(&dig_port->tc_lock); in intel_tc_port_sanitize()
602 tc_cold_wref = tc_cold_block(dig_port); in intel_tc_port_sanitize()
604 dig_port->tc_mode = intel_tc_port_get_current_mode(dig_port); in intel_tc_port_sanitize()
605 if (dig_port->dp.is_mst) in intel_tc_port_sanitize()
606 active_links = intel_dp_mst_encoder_active_links(dig_port); in intel_tc_port_sanitize()
611 if (!icl_tc_phy_is_connected(dig_port)) in intel_tc_port_sanitize()
614 dig_port->tc_port_name, active_links); in intel_tc_port_sanitize()
615 intel_tc_port_link_init_refcount(dig_port, active_links); in intel_tc_port_sanitize()
620 if (dig_port->tc_legacy_port) in intel_tc_port_sanitize()
621 icl_tc_phy_connect(dig_port, 1); in intel_tc_port_sanitize()
625 dig_port->tc_port_name, in intel_tc_port_sanitize()
626 tc_port_mode_name(dig_port->tc_mode)); in intel_tc_port_sanitize()
628 tc_cold_unblock(dig_port, tc_cold_wref); in intel_tc_port_sanitize()
629 mutex_unlock(&dig_port->tc_lock); in intel_tc_port_sanitize()
632 static bool intel_tc_port_needs_reset(struct intel_digital_port *dig_port) in intel_tc_port_needs_reset() argument
634 return intel_tc_port_get_target_mode(dig_port) != dig_port->tc_mode; in intel_tc_port_needs_reset()
649 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_tc_port_connected() local
653 intel_tc_port_lock(dig_port); in intel_tc_port_connected()
654 tc_cold_wref = tc_cold_block(dig_port); in intel_tc_port_connected()
656 is_connected = tc_port_live_status_mask(dig_port) & in intel_tc_port_connected()
657 BIT(dig_port->tc_mode); in intel_tc_port_connected()
659 tc_cold_unblock(dig_port, tc_cold_wref); in intel_tc_port_connected()
660 intel_tc_port_unlock(dig_port); in intel_tc_port_connected()
665 static void __intel_tc_port_lock(struct intel_digital_port *dig_port, in __intel_tc_port_lock() argument
668 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in __intel_tc_port_lock()
673 mutex_lock(&dig_port->tc_lock); in __intel_tc_port_lock()
675 if (!dig_port->tc_link_refcount) { in __intel_tc_port_lock()
678 tc_cold_wref = tc_cold_block(dig_port); in __intel_tc_port_lock()
680 if (force_disconnect || intel_tc_port_needs_reset(dig_port)) in __intel_tc_port_lock()
681 intel_tc_port_reset_mode(dig_port, required_lanes, in __intel_tc_port_lock()
684 tc_cold_unblock(dig_port, tc_cold_wref); in __intel_tc_port_lock()
687 drm_WARN_ON(&i915->drm, dig_port->tc_lock_wakeref); in __intel_tc_port_lock()
688 dig_port->tc_lock_wakeref = wakeref; in __intel_tc_port_lock()
691 void intel_tc_port_lock(struct intel_digital_port *dig_port) in intel_tc_port_lock() argument
693 __intel_tc_port_lock(dig_port, 1, false); in intel_tc_port_lock()
696 void intel_tc_port_unlock(struct intel_digital_port *dig_port) in intel_tc_port_unlock() argument
698 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_unlock()
699 intel_wakeref_t wakeref = fetch_and_zero(&dig_port->tc_lock_wakeref); in intel_tc_port_unlock()
701 mutex_unlock(&dig_port->tc_lock); in intel_tc_port_unlock()
719 void intel_tc_port_disconnect_phy(struct intel_digital_port *dig_port) in intel_tc_port_disconnect_phy() argument
721 __intel_tc_port_lock(dig_port, 1, true); in intel_tc_port_disconnect_phy()
722 intel_tc_port_unlock(dig_port); in intel_tc_port_disconnect_phy()
725 bool intel_tc_port_ref_held(struct intel_digital_port *dig_port) in intel_tc_port_ref_held() argument
727 return mutex_is_locked(&dig_port->tc_lock) || in intel_tc_port_ref_held()
728 dig_port->tc_link_refcount; in intel_tc_port_ref_held()
731 void intel_tc_port_get_link(struct intel_digital_port *dig_port, in intel_tc_port_get_link() argument
734 __intel_tc_port_lock(dig_port, required_lanes, false); in intel_tc_port_get_link()
735 dig_port->tc_link_refcount++; in intel_tc_port_get_link()
736 intel_tc_port_unlock(dig_port); in intel_tc_port_get_link()
739 void intel_tc_port_put_link(struct intel_digital_port *dig_port) in intel_tc_port_put_link() argument
741 mutex_lock(&dig_port->tc_lock); in intel_tc_port_put_link()
742 dig_port->tc_link_refcount--; in intel_tc_port_put_link()
743 mutex_unlock(&dig_port->tc_lock); in intel_tc_port_put_link()
747 tc_has_modular_fia(struct drm_i915_private *i915, struct intel_digital_port *dig_port) in tc_has_modular_fia() argument
755 mutex_lock(&dig_port->tc_lock); in tc_has_modular_fia()
756 wakeref = tc_cold_block(dig_port); in tc_has_modular_fia()
758 tc_cold_unblock(dig_port, wakeref); in tc_has_modular_fia()
759 mutex_unlock(&dig_port->tc_lock); in tc_has_modular_fia()
767 tc_port_load_fia_params(struct drm_i915_private *i915, struct intel_digital_port *dig_port) in tc_port_load_fia_params() argument
769 enum port port = dig_port->base.port; in tc_port_load_fia_params()
776 if (tc_has_modular_fia(i915, dig_port)) { in tc_port_load_fia_params()
777 dig_port->tc_phy_fia = tc_port / 2; in tc_port_load_fia_params()
778 dig_port->tc_phy_fia_idx = tc_port % 2; in tc_port_load_fia_params()
780 dig_port->tc_phy_fia = FIA1; in tc_port_load_fia_params()
781 dig_port->tc_phy_fia_idx = tc_port; in tc_port_load_fia_params()
785 void intel_tc_port_init(struct intel_digital_port *dig_port, bool is_legacy) in intel_tc_port_init() argument
787 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_port_init()
788 enum port port = dig_port->base.port; in intel_tc_port_init()
794 snprintf(dig_port->tc_port_name, sizeof(dig_port->tc_port_name), in intel_tc_port_init()
797 mutex_init(&dig_port->tc_lock); in intel_tc_port_init()
798 dig_port->tc_legacy_port = is_legacy; in intel_tc_port_init()
799 dig_port->tc_link_refcount = 0; in intel_tc_port_init()
800 tc_port_load_fia_params(i915, dig_port); in intel_tc_port_init()
803 bool intel_tc_cold_requires_aux_pw(struct intel_digital_port *dig_port) in intel_tc_cold_requires_aux_pw() argument
805 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_tc_cold_requires_aux_pw()
807 return (DISPLAY_VER(i915) == 11 && dig_port->tc_legacy_port) || in intel_tc_cold_requires_aux_pw()