Lines Matching full:connector
91 const struct intel_connector *connector, in intel_dp_mst_bw_overhead() argument
120 const struct intel_connector *connector, in intel_dp_mst_compute_m_n() argument
150 static int intel_dp_mst_dsc_get_slice_count(const struct intel_connector *connector, in intel_dp_mst_dsc_get_slice_count() argument
157 return intel_dp_dsc_get_slice_count(connector, in intel_dp_mst_dsc_get_slice_count()
176 struct intel_connector *connector = in intel_dp_mst_find_vcpi_slots_for_bpp() local
177 to_intel_connector(conn_state->connector); in intel_dp_mst_find_vcpi_slots_for_bpp()
178 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_dp_mst_find_vcpi_slots_for_bpp()
194 if (!intel_dp_supports_fec(intel_dp, connector, crtc_state)) in intel_dp_mst_find_vcpi_slots_for_bpp()
215 dsc_slice_count = intel_dp_mst_dsc_get_slice_count(connector, crtc_state); in intel_dp_mst_find_vcpi_slots_for_bpp()
235 local_bw_overhead = intel_dp_mst_bw_overhead(crtc_state, connector, in intel_dp_mst_find_vcpi_slots_for_bpp()
237 remote_bw_overhead = intel_dp_mst_bw_overhead(crtc_state, connector, in intel_dp_mst_find_vcpi_slots_for_bpp()
240 intel_dp_mst_compute_m_n(crtc_state, connector, in intel_dp_mst_find_vcpi_slots_for_bpp()
287 connector->port, in intel_dp_mst_find_vcpi_slots_for_bpp()
345 struct intel_connector *connector = in intel_dp_dsc_mst_compute_link_config() local
346 to_intel_connector(conn_state->connector); in intel_dp_dsc_mst_compute_link_config()
347 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_dp_dsc_mst_compute_link_config()
364 num_bpc = drm_dp_dsc_sink_supported_input_bpcs(connector->dp.dsc_dpcd, in intel_dp_dsc_mst_compute_link_config()
391 max_compressed_bpp = intel_dp_dsc_sink_max_compressed_bpp(connector, in intel_dp_dsc_mst_compute_link_config()
450 hblank_expansion_quirk_needs_dsc(const struct intel_connector *connector, in hblank_expansion_quirk_needs_dsc() argument
456 bool is_uhbr_sink = connector->mst_port && in hblank_expansion_quirk_needs_dsc()
457 drm_dp_128b132b_supported(connector->mst_port->dpcd); in hblank_expansion_quirk_needs_dsc()
460 if (!connector->dp.dsc_hblank_expansion_quirk) in hblank_expansion_quirk_needs_dsc()
469 if (!intel_dp_mst_dsc_get_slice_count(connector, crtc_state)) in hblank_expansion_quirk_needs_dsc()
476 adjust_limits_for_dsc_hblank_expansion_quirk(const struct intel_connector *connector, in adjust_limits_for_dsc_hblank_expansion_quirk() argument
481 struct drm_i915_private *i915 = to_i915(connector->base.dev); in adjust_limits_for_dsc_hblank_expansion_quirk()
485 if (!hblank_expansion_quirk_needs_dsc(connector, crtc_state, limits)) in adjust_limits_for_dsc_hblank_expansion_quirk()
489 if (intel_dp_supports_dsc(connector, crtc_state)) { in adjust_limits_for_dsc_hblank_expansion_quirk()
491 "[CRTC:%d:%s][CONNECTOR:%d:%s] DSC needed by hblank expansion quirk\n", in adjust_limits_for_dsc_hblank_expansion_quirk()
493 connector->base.base.id, connector->base.name); in adjust_limits_for_dsc_hblank_expansion_quirk()
498 … "[CRTC:%d:%s][CONNECTOR:%d:%s] Increasing link min bpp to 24 due to hblank expansion quirk\n", in adjust_limits_for_dsc_hblank_expansion_quirk()
500 connector->base.base.id, connector->base.name); in adjust_limits_for_dsc_hblank_expansion_quirk()
521 …"[CRTC:%d:%s][CONNECTOR:%d:%s] Increasing link min bpp to " FXP_Q4_FMT " in DSC mode due to hblank… in adjust_limits_for_dsc_hblank_expansion_quirk()
523 connector->base.base.id, connector->base.name, in adjust_limits_for_dsc_hblank_expansion_quirk()
536 const struct intel_connector *connector, in intel_dp_mst_compute_config_limits() argument
570 return adjust_limits_for_dsc_hblank_expansion_quirk(connector, in intel_dp_mst_compute_config_limits()
585 struct intel_connector *connector = in intel_dp_mst_compute_config() local
586 to_intel_connector(conn_state->connector); in intel_dp_mst_compute_config()
594 !intel_dp_supports_fec(intel_dp, connector, pipe_config)) in intel_dp_mst_compute_config()
600 if (intel_dp_need_joiner(intel_dp, connector, in intel_dp_mst_compute_config()
613 connector, in intel_dp_mst_compute_config()
635 if (!intel_dp_supports_dsc(connector, pipe_config)) in intel_dp_mst_compute_config()
639 connector, in intel_dp_mst_compute_config()
686 return intel_dp_tunnel_atomic_compute_stream_bw(state, intel_dp, connector, in intel_dp_mst_compute_config()
700 struct intel_connector *connector; in intel_dp_mst_transcoder_mask() local
707 for_each_new_intel_connector_in_state(state, connector, conn_state, i) { in intel_dp_mst_transcoder_mask()
711 if (connector->mst_port != mst_port || !conn_state->base.crtc) in intel_dp_mst_transcoder_mask()
731 struct intel_connector *connector; in get_pipes_downstream_of_mst_port() local
735 for_each_new_intel_connector_in_state(state, connector, conn_state, i) { in get_pipes_downstream_of_mst_port()
739 if (&connector->mst_port->mst_mgr != mst_mgr) in get_pipes_downstream_of_mst_port()
742 if (connector->port != parent_port && in get_pipes_downstream_of_mst_port()
744 connector->port, in get_pipes_downstream_of_mst_port()
770 /* Atomic connector check should've added all the MST CRTCs. */ in intel_dp_mst_check_fec_change()
879 intel_dp_mst_atomic_topology_check(struct intel_connector *connector, in intel_dp_mst_atomic_topology_check() argument
887 if (!intel_connector_needs_modeset(state, &connector->base)) in intel_dp_mst_atomic_topology_check()
896 if (connector_iter->mst_port != connector->mst_port || in intel_dp_mst_atomic_topology_check()
897 connector_iter == connector) in intel_dp_mst_atomic_topology_check()
928 intel_dp_mst_atomic_check(struct drm_connector *connector, in intel_dp_mst_atomic_check() argument
933 to_intel_connector(connector); in intel_dp_mst_atomic_check()
936 ret = intel_digital_connector_atomic_check(connector, &state->base); in intel_dp_mst_atomic_check()
944 if (intel_connector_needs_modeset(state, connector)) { in intel_dp_mst_atomic_check()
988 struct intel_connector *connector = in intel_mst_disable_dp() local
989 to_intel_connector(old_conn_state->connector); in intel_mst_disable_dp()
990 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_mst_disable_dp()
998 intel_hdcp_disable(intel_mst->connector); in intel_mst_disable_dp()
1000 intel_dp_sink_disable_decompression(state, connector, old_crtc_state); in intel_mst_disable_dp()
1011 struct intel_connector *connector = in intel_mst_post_disable_dp() local
1012 to_intel_connector(old_conn_state->connector); in intel_mst_post_disable_dp()
1018 drm_atomic_get_mst_payload_state(old_mst_state, connector->port); in intel_mst_post_disable_dp()
1020 drm_atomic_get_mst_payload_state(new_mst_state, connector->port); in intel_mst_post_disable_dp()
1021 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_mst_post_disable_dp()
1073 drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port, in intel_mst_post_disable_dp()
1093 intel_mst->connector = NULL; in intel_mst_post_disable_dp()
1173 struct intel_connector *connector = in intel_mst_pre_enable_dp() local
1174 to_intel_connector(conn_state->connector); in intel_mst_pre_enable_dp()
1180 /* MST encoders are bound to a crtc, not to a connector, in intel_mst_pre_enable_dp()
1183 connector->encoder = encoder; in intel_mst_pre_enable_dp()
1184 intel_mst->connector = connector; in intel_mst_pre_enable_dp()
1196 drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port, true); in intel_mst_pre_enable_dp()
1198 intel_dp_sink_enable_decompression(state, connector, pipe_config); in intel_mst_pre_enable_dp()
1210 drm_atomic_get_mst_payload_state(mst_state, connector->port)); in intel_mst_pre_enable_dp()
1269 struct intel_connector *connector = to_intel_connector(conn_state->connector); in intel_mst_enable_dp() local
1310 connector->port)); in intel_mst_enable_dp()
1339 if (intel_mst->connector) in intel_dp_mst_enc_get_hw_state()
1362 static int intel_dp_mst_get_ddc_modes(struct drm_connector *connector) in intel_dp_mst_get_ddc_modes() argument
1364 struct intel_connector *intel_connector = to_intel_connector(connector); in intel_dp_mst_get_ddc_modes()
1370 if (drm_connector_is_unregistered(connector)) in intel_dp_mst_get_ddc_modes()
1371 return intel_connector_update_modes(connector, NULL); in intel_dp_mst_get_ddc_modes()
1374 return drm_edid_connector_add_modes(connector); in intel_dp_mst_get_ddc_modes()
1376 drm_edid = drm_dp_mst_edid_read(connector, &intel_dp->mst_mgr, intel_connector->port); in intel_dp_mst_get_ddc_modes()
1378 ret = intel_connector_update_modes(connector, drm_edid); in intel_dp_mst_get_ddc_modes()
1386 intel_dp_mst_connector_late_register(struct drm_connector *connector) in intel_dp_mst_connector_late_register() argument
1388 struct intel_connector *intel_connector = to_intel_connector(connector); in intel_dp_mst_connector_late_register()
1391 ret = drm_dp_mst_connector_late_register(connector, in intel_dp_mst_connector_late_register()
1396 ret = intel_connector_register(connector); in intel_dp_mst_connector_late_register()
1398 drm_dp_mst_connector_early_unregister(connector, in intel_dp_mst_connector_late_register()
1405 intel_dp_mst_connector_early_unregister(struct drm_connector *connector) in intel_dp_mst_connector_early_unregister() argument
1407 struct intel_connector *intel_connector = to_intel_connector(connector); in intel_dp_mst_connector_early_unregister()
1409 intel_connector_unregister(connector); in intel_dp_mst_connector_early_unregister()
1410 drm_dp_mst_connector_early_unregister(connector, in intel_dp_mst_connector_early_unregister()
1425 static int intel_dp_mst_get_modes(struct drm_connector *connector) in intel_dp_mst_get_modes() argument
1427 return intel_dp_mst_get_ddc_modes(connector); in intel_dp_mst_get_modes()
1431 intel_dp_mst_mode_valid_ctx(struct drm_connector *connector, in intel_dp_mst_mode_valid_ctx() argument
1436 struct drm_i915_private *dev_priv = to_i915(connector->dev); in intel_dp_mst_mode_valid_ctx()
1437 struct intel_connector *intel_connector = to_intel_connector(connector); in intel_dp_mst_mode_valid_ctx()
1442 int max_dotclk = to_i915(connector->dev)->display.cdclk.max_dotclk_freq; in intel_dp_mst_mode_valid_ctx()
1450 if (drm_connector_is_unregistered(connector)) { in intel_dp_mst_mode_valid_ctx()
1506 * TBD pass the connector BPC, in intel_dp_mst_mode_valid_ctx()
1545 static struct drm_encoder *intel_mst_atomic_best_encoder(struct drm_connector *connector, in intel_mst_atomic_best_encoder() argument
1549 connector); in intel_mst_atomic_best_encoder()
1550 struct intel_connector *intel_connector = to_intel_connector(connector); in intel_mst_atomic_best_encoder()
1558 intel_dp_mst_detect(struct drm_connector *connector, in intel_dp_mst_detect() argument
1561 struct drm_i915_private *i915 = to_i915(connector->dev); in intel_dp_mst_detect()
1562 struct intel_connector *intel_connector = to_intel_connector(connector); in intel_dp_mst_detect()
1568 if (drm_connector_is_unregistered(connector)) in intel_dp_mst_detect()
1572 return connector->status; in intel_dp_mst_detect()
1574 return drm_dp_mst_detect_port(connector, ctx, &intel_dp->mst_mgr, in intel_dp_mst_detect()
1598 static bool intel_dp_mst_get_hw_state(struct intel_connector *connector) in intel_dp_mst_get_hw_state() argument
1600 if (intel_attached_encoder(connector) && connector->base.state->crtc) { in intel_dp_mst_get_hw_state()
1602 if (!intel_attached_encoder(connector)->get_hw_state(intel_attached_encoder(connector), &pipe)) in intel_dp_mst_get_hw_state()
1610 struct drm_connector *connector, in intel_dp_mst_add_properties() argument
1613 struct drm_i915_private *i915 = to_i915(connector->dev); in intel_dp_mst_add_properties()
1615 drm_object_attach_property(&connector->base, in intel_dp_mst_add_properties()
1617 drm_object_attach_property(&connector->base, in intel_dp_mst_add_properties()
1620 intel_attach_force_audio_property(connector); in intel_dp_mst_add_properties()
1621 intel_attach_broadcast_rgb_property(connector); in intel_dp_mst_add_properties()
1624 * Reuse the prop from the SST connector because we're in intel_dp_mst_add_properties()
1627 connector->max_bpc_property = in intel_dp_mst_add_properties()
1629 if (connector->max_bpc_property) in intel_dp_mst_add_properties()
1630 drm_connector_attach_max_bpc_property(connector, 6, 12); in intel_dp_mst_add_properties()
1632 return drm_connector_set_path_property(connector, pathprop); in intel_dp_mst_add_properties()
1637 struct intel_connector *connector) in intel_dp_mst_read_decompression_port_dsc_caps() argument
1641 if (!connector->dp.dsc_decompression_aux) in intel_dp_mst_read_decompression_port_dsc_caps()
1644 if (drm_dp_read_dpcd_caps(connector->dp.dsc_decompression_aux, dpcd_caps) < 0) in intel_dp_mst_read_decompression_port_dsc_caps()
1647 intel_dp_get_dsc_sink_cap(dpcd_caps[DP_DPCD_REV], connector); in intel_dp_mst_read_decompression_port_dsc_caps()
1650 static bool detect_dsc_hblank_expansion_quirk(const struct intel_connector *connector) in detect_dsc_hblank_expansion_quirk() argument
1652 struct drm_i915_private *i915 = to_i915(connector->base.dev); in detect_dsc_hblank_expansion_quirk()
1653 struct drm_dp_aux *aux = connector->dp.dsc_decompression_aux; in detect_dsc_hblank_expansion_quirk()
1664 if (drm_dp_mst_port_is_logical(connector->port)) { in detect_dsc_hblank_expansion_quirk()
1665 aux = drm_dp_mst_aux_for_parent(connector->port); in detect_dsc_hblank_expansion_quirk()
1667 aux = &connector->mst_port->aux; in detect_dsc_hblank_expansion_quirk()
1691 "[CONNECTOR:%d:%s] DSC HBLANK expansion quirk detected\n", in detect_dsc_hblank_expansion_quirk()
1692 connector->base.base.id, connector->base.name); in detect_dsc_hblank_expansion_quirk()
1706 struct drm_connector *connector; in intel_dp_add_mst_connector() local
1727 connector = &intel_connector->base; in intel_dp_add_mst_connector()
1728 ret = drm_connector_init(dev, connector, &intel_dp_mst_connector_funcs, in intel_dp_add_mst_connector()
1736 drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs); in intel_dp_add_mst_connector()
1747 ret = intel_dp_mst_add_properties(intel_dp, connector, pathprop); in intel_dp_add_mst_connector()
1754 connector->name, connector->base.id); in intel_dp_add_mst_connector()
1756 return connector; in intel_dp_add_mst_connector()
1759 drm_connector_cleanup(connector); in intel_dp_add_mst_connector()
1801 * of possible_crtcs of all the encoders of a given connector in intel_dp_create_fake_mst_encoder()
1802 * to figure out which crtcs can drive said connector. What in intel_dp_create_fake_mst_encoder()
1908 * intel_dp_mst_add_topology_state_for_connector - add MST topology state for a connector
1910 * @connector: connector to add the state for
1911 * @crtc: the CRTC @connector is attached to
1913 * Add the MST topology state for @connector to @state.
1919 struct intel_connector *connector, in intel_dp_mst_add_topology_state_for_connector() argument
1924 if (!connector->mst_port) in intel_dp_mst_add_topology_state_for_connector()
1928 &connector->mst_port->mst_mgr); in intel_dp_mst_add_topology_state_for_connector()
1954 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_mst_add_topology_state_for_crtc() local
1960 ret = intel_dp_mst_add_topology_state_for_connector(state, connector, crtc); in intel_dp_mst_add_topology_state_for_crtc()
1979 struct intel_connector *connector = in get_connector_in_state_for_crtc() local
1984 return connector; in get_connector_in_state_for_crtc()
2020 const struct intel_connector *connector = in intel_dp_mst_crtc_needs_modeset() local
2026 if (connector->mst_port != crtc_connector->mst_port || in intel_dp_mst_crtc_needs_modeset()
2048 if (connector->dp.dsc_decompression_aux == in intel_dp_mst_crtc_needs_modeset()
2049 &connector->mst_port->aux) in intel_dp_mst_crtc_needs_modeset()
2101 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_mst_verify_dpcd_state() local
2115 … "[CONNECTOR:%d:%s][ENCODER:%d:%s] MST mode got reset, removing topology (ret=%d, ctrl=0x%02x)\n", in intel_dp_mst_verify_dpcd_state()
2116 connector->base.base.id, connector->base.name, in intel_dp_mst_verify_dpcd_state()