Lines Matching full:connector

288 	struct intel_connector *connector = intel_dp->attached_connector;  in intel_dp_set_sink_rates()  local
298 "[CONNECTOR:%d:%s][ENCODER:%d:%s] Invalid DPCD with no link rates, using defaults\n", in intel_dp_set_sink_rates()
299 connector->base.base.id, connector->base.name, in intel_dp_set_sink_rates()
313 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_set_max_sink_lane_count() local
327 "[CONNECTOR:%d:%s][ENCODER:%d:%s] Invalid DPCD max lane count (%d), using default\n", in intel_dp_set_max_sink_lane_count()
328 connector->base.base.id, connector->base.name, in intel_dp_set_max_sink_lane_count()
546 struct intel_connector *connector = intel_dp->attached_connector; in vbt_max_link_rate() local
547 int edp_max_rate = connector->panel.vbt.edp.max_link_rate; in vbt_max_link_rate()
1015 u8 intel_dp_dsc_get_slice_count(const struct intel_connector *connector, in intel_dp_dsc_get_slice_count() argument
1019 struct intel_display *display = to_intel_display(connector); in intel_dp_dsc_get_slice_count()
1037 max_slice_width = drm_dp_dsc_sink_max_slice_width(connector->dp.dsc_dpcd); in intel_dp_dsc_get_slice_count()
1062 drm_dp_dsc_sink_max_slice_count(connector->dp.dsc_dpcd, false)) in intel_dp_dsc_get_slice_count()
1161 intel_dp_output_format(struct intel_connector *connector, in intel_dp_output_format() argument
1164 struct intel_display *display = to_intel_display(connector); in intel_dp_output_format()
1165 struct intel_dp *intel_dp = intel_attached_dp(connector); in intel_dp_output_format()
1217 intel_dp_sink_format(struct intel_connector *connector, in intel_dp_sink_format() argument
1220 const struct drm_display_info *info = &connector->base.display_info; in intel_dp_sink_format()
1229 intel_dp_mode_min_output_bpp(struct intel_connector *connector, in intel_dp_mode_min_output_bpp() argument
1234 sink_format = intel_dp_sink_format(connector, mode); in intel_dp_mode_min_output_bpp()
1236 output_format = intel_dp_output_format(connector, sink_format); in intel_dp_mode_min_output_bpp()
1262 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_max_tmds_clock() local
1263 const struct drm_display_info *info = &connector->base.display_info; in intel_dp_max_tmds_clock()
1299 intel_dp_mode_valid_downstream(struct intel_connector *connector, in intel_dp_mode_valid_downstream() argument
1303 struct intel_dp *intel_dp = intel_attached_dp(connector); in intel_dp_mode_valid_downstream()
1304 const struct drm_display_info *info = &connector->base.display_info; in intel_dp_mode_valid_downstream()
1312 int bpp = intel_dp_mode_min_output_bpp(connector, mode); in intel_dp_mode_valid_downstream()
1331 sink_format = intel_dp_sink_format(connector, mode); in intel_dp_mode_valid_downstream()
1339 !connector->base.ycbcr_420_allowed || in intel_dp_mode_valid_downstream()
1354 struct intel_connector *connector, in intel_dp_needs_joiner() argument
1373 struct intel_connector *connector, in intel_dp_num_joined_pipes() argument
1378 if (connector->force_joined_pipes) in intel_dp_num_joined_pipes()
1379 return connector->force_joined_pipes; in intel_dp_num_joined_pipes()
1382 intel_dp_needs_joiner(intel_dp, connector, hdisplay, clock, 4)) in intel_dp_num_joined_pipes()
1386 intel_dp_needs_joiner(intel_dp, connector, hdisplay, clock, 2)) in intel_dp_num_joined_pipes()
1392 bool intel_dp_has_dsc(const struct intel_connector *connector) in intel_dp_has_dsc() argument
1394 struct intel_display *display = to_intel_display(connector); in intel_dp_has_dsc()
1399 if (connector->mst.dp && !HAS_DSC_MST(display)) in intel_dp_has_dsc()
1402 if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP && in intel_dp_has_dsc()
1403 connector->panel.vbt.edp.dsc_disable) in intel_dp_has_dsc()
1406 if (!drm_dp_sink_supports_dsc(connector->dp.dsc_dpcd)) in intel_dp_has_dsc()
1417 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_mode_valid() local
1418 struct intel_dp *intel_dp = intel_attached_dp(connector); in intel_dp_mode_valid()
1439 fixed_mode = intel_panel_fixed_mode(connector, mode); in intel_dp_mode_valid()
1441 status = intel_panel_mode_valid(connector, mode); in intel_dp_mode_valid()
1448 num_joined_pipes = intel_dp_num_joined_pipes(intel_dp, connector, in intel_dp_mode_valid()
1464 intel_dp_mode_min_output_bpp(connector, mode)); in intel_dp_mode_valid()
1466 if (intel_dp_has_dsc(connector)) { in intel_dp_mode_valid()
1470 sink_format = intel_dp_sink_format(connector, mode); in intel_dp_mode_valid()
1471 output_format = intel_dp_output_format(connector, sink_format); in intel_dp_mode_valid()
1473 * TBD pass the connector BPC, in intel_dp_mode_valid()
1476 pipe_bpp = intel_dp_dsc_compute_max_bpp(connector, U8_MAX); in intel_dp_mode_valid()
1484 drm_edp_dsc_sink_output_bpp(connector->dp.dsc_dpcd) >> 4; in intel_dp_mode_valid()
1486 drm_dp_dsc_sink_max_slice_count(connector->dp.dsc_dpcd, in intel_dp_mode_valid()
1488 } else if (drm_dp_sink_supports_fec(connector->dp.fec_capability)) { in intel_dp_mode_valid()
1499 intel_dp_dsc_get_slice_count(connector, in intel_dp_mode_valid()
1514 status = intel_dp_mode_valid_downstream(connector, mode, target_clock); in intel_dp_mode_valid()
1620 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_has_hdmi_sink() local
1622 return connector->base.display_info.is_hdmi; in intel_dp_has_hdmi_sink()
1642 const struct intel_connector *connector, in intel_dp_supports_fec() argument
1646 drm_dp_sink_supports_fec(connector->dp.fec_capability); in intel_dp_supports_fec()
1650 const struct intel_connector *connector, in intel_dp_supports_dsc() argument
1653 if (!intel_dp_has_dsc(connector)) in intel_dp_supports_dsc()
1657 !intel_dp_supports_fec(intel_dp, connector, crtc_state)) in intel_dp_supports_dsc()
1700 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_max_bpp() local
1722 if (connector->base.display_info.bpc == 0 && in intel_dp_max_bpp()
1723 connector->panel.vbt.edp.bpp && in intel_dp_max_bpp()
1724 connector->panel.vbt.edp.bpp < bpp) { in intel_dp_max_bpp()
1727 connector->panel.vbt.edp.bpp); in intel_dp_max_bpp()
1728 bpp = connector->panel.vbt.edp.bpp; in intel_dp_max_bpp()
1735 static bool has_seamless_m_n(struct intel_connector *connector) in has_seamless_m_n() argument
1737 struct intel_display *display = to_intel_display(connector); in has_seamless_m_n()
1744 intel_panel_drrs_type(connector) == DRRS_TYPE_SEAMLESS; in has_seamless_m_n()
1750 struct intel_connector *connector = to_intel_connector(conn_state->connector); in intel_dp_mode_clock() local
1754 if (has_seamless_m_n(connector)) in intel_dp_mode_clock()
1755 return intel_panel_highest_mode(connector, adjusted_mode)->clock; in intel_dp_mode_clock()
1816 int intel_dp_dsc_compute_max_bpp(const struct intel_connector *connector, in intel_dp_dsc_compute_max_bpp() argument
1819 struct intel_display *display = to_intel_display(connector); in intel_dp_dsc_compute_max_bpp()
1831 num_bpc = drm_dp_dsc_sink_supported_input_bpcs(connector->dp.dsc_dpcd, in intel_dp_dsc_compute_max_bpp()
1874 static int intel_dp_dsc_compute_params(const struct intel_connector *connector, in intel_dp_dsc_compute_params() argument
1877 struct intel_display *display = to_intel_display(connector); in intel_dp_dsc_compute_params()
1897 (connector->dp.dsc_dpcd[DP_DSC_REV - DP_DSC_SUPPORT] & in intel_dp_dsc_compute_params()
1901 intel_dp_sink_dsc_version_minor(connector->dp.dsc_dpcd)); in intel_dp_dsc_compute_params()
1904 connector->dp.dsc_dpcd[DP_DSC_DEC_COLOR_FORMAT_CAP - DP_DSC_SUPPORT] & in intel_dp_dsc_compute_params()
1908 drm_dp_dsc_sink_line_buf_depth(connector->dp.dsc_dpcd)); in intel_dp_dsc_compute_params()
1916 connector->dp.dsc_dpcd[DP_DSC_BLK_PREDICTION_SUPPORT - DP_DSC_SUPPORT] & in intel_dp_dsc_compute_params()
1922 static bool intel_dp_dsc_supports_format(const struct intel_connector *connector, in intel_dp_dsc_supports_format() argument
1925 struct intel_display *display = to_intel_display(connector); in intel_dp_dsc_supports_format()
1937 intel_dp_sink_dsc_version_minor(connector->dp.dsc_dpcd)) < 2) in intel_dp_dsc_supports_format()
1945 return drm_dp_dsc_sink_supports_format(connector->dp.dsc_dpcd, sink_dsc_format); in intel_dp_dsc_supports_format()
2019 u16 intel_dp_dsc_max_sink_compressed_bppx16(const struct intel_connector *connector, in intel_dp_dsc_max_sink_compressed_bppx16() argument
2023 u16 max_bppx16 = drm_edp_dsc_sink_output_bpp(connector->dp.dsc_dpcd); in intel_dp_dsc_max_sink_compressed_bppx16()
2062 int intel_dp_dsc_sink_max_compressed_bpp(const struct intel_connector *connector, in intel_dp_dsc_sink_max_compressed_bpp() argument
2066 return intel_dp_dsc_max_sink_compressed_bppx16(connector, in intel_dp_dsc_sink_max_compressed_bpp()
2102 static int intel_dp_dsc_bpp_step_x16(const struct intel_connector *connector) in intel_dp_dsc_bpp_step_x16() argument
2104 struct intel_display *display = to_intel_display(connector); in intel_dp_dsc_bpp_step_x16()
2105 u8 incr = drm_dp_dsc_sink_bpp_incr(connector->dp.dsc_dpcd); in intel_dp_dsc_bpp_step_x16()
2150 const struct intel_connector *connector = to_intel_connector(conn_state->connector); in dsc_compute_compressed_bpp() local
2172 bpp_step_x16 = intel_dp_dsc_bpp_step_x16(connector); in dsc_compute_compressed_bpp()
2247 const struct intel_connector *connector = in intel_dp_dsc_compute_pipe_bpp() local
2248 to_intel_connector(conn_state->connector); in intel_dp_dsc_compute_pipe_bpp()
2268 num_bpc = drm_dp_dsc_sink_supported_input_bpcs(connector->dp.dsc_dpcd, dsc_bpc); in intel_dp_dsc_compute_pipe_bpp()
2291 struct intel_connector *connector = in intel_edp_dsc_compute_pipe_bpp() local
2292 to_intel_connector(conn_state->connector); in intel_edp_dsc_compute_pipe_bpp()
2305 pipe_bpp = intel_dp_dsc_compute_max_bpp(connector, max_bpc); in intel_edp_dsc_compute_pipe_bpp()
2357 const struct intel_connector *connector = in intel_dp_dsc_compute_config() local
2358 to_intel_connector(conn_state->connector); in intel_dp_dsc_compute_config()
2367 if (!intel_dp_dsc_supports_format(connector, pipe_config->output_format)) in intel_dp_dsc_compute_config()
2391 drm_dp_dsc_sink_max_slice_count(connector->dp.dsc_dpcd, in intel_dp_dsc_compute_config()
2403 intel_dp_dsc_get_slice_count(connector, in intel_dp_dsc_compute_config()
2430 ret = intel_dp_dsc_compute_params(connector, pipe_config); in intel_dp_dsc_compute_config()
2456 const struct intel_connector *connector, in intel_dp_compute_config_link_bpp_limits() argument
2488 dsc_sink_max_bpp = intel_dp_dsc_sink_max_compressed_bpp(connector, in intel_dp_compute_config_link_bpp_limits()
2527 struct intel_connector *connector, in intel_dp_compute_config_limits() argument
2581 connector, in intel_dp_compute_config_limits()
2619 struct intel_connector *connector = in intel_dp_compute_link_config() local
2620 to_intel_connector(conn_state->connector); in intel_dp_compute_link_config()
2630 !intel_dp_supports_fec(intel_dp, connector, pipe_config)) in intel_dp_compute_link_config()
2633 num_joined_pipes = intel_dp_num_joined_pipes(intel_dp, connector, in intel_dp_compute_link_config()
2642 !intel_dp_compute_config_limits(intel_dp, connector, pipe_config, in intel_dp_compute_link_config()
2665 if (dsc_needed && !intel_dp_supports_dsc(intel_dp, connector, pipe_config)) { in intel_dp_compute_link_config()
2676 if (!intel_dp_compute_config_limits(intel_dp, connector, pipe_config, in intel_dp_compute_link_config()
2932 static bool can_enable_drrs(struct intel_connector *connector, in can_enable_drrs() argument
2936 struct intel_display *display = to_intel_display(connector); in can_enable_drrs()
2958 intel_panel_drrs_type(connector) == DRRS_TYPE_SEAMLESS; in can_enable_drrs()
2962 intel_dp_drrs_compute_config(struct intel_connector *connector, in intel_dp_drrs_compute_config() argument
2966 struct intel_display *display = to_intel_display(connector); in intel_dp_drrs_compute_config()
2968 intel_panel_downclock_mode(connector, &pipe_config->hw.adjusted_mode); in intel_dp_drrs_compute_config()
2975 if (has_seamless_m_n(connector) && !pipe_config->joiner_pipes) in intel_dp_drrs_compute_config()
2978 if (!can_enable_drrs(connector, pipe_config, downclock_mode)) { in intel_dp_drrs_compute_config()
2986 pipe_config->msa_timing_delay = connector->panel.vbt.edp.drrs_msa_timing_delay; in intel_dp_drrs_compute_config()
3010 struct intel_connector *connector = in intel_dp_has_audio() local
3011 to_intel_connector(conn_state->connector); in intel_dp_has_audio()
3017 return connector->base.display_info.has_audio; in intel_dp_has_audio()
3030 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_compute_output_format() local
3031 const struct drm_display_info *info = &connector->base.display_info; in intel_dp_compute_output_format()
3038 if (ycbcr_420_only && !connector->base.ycbcr_420_allowed) { in intel_dp_compute_output_format()
3043 crtc_state->sink_format = intel_dp_sink_format(connector, adjusted_mode); in intel_dp_compute_output_format()
3046 crtc_state->output_format = intel_dp_output_format(connector, crtc_state->sink_format); in intel_dp_compute_output_format()
3052 !connector->base.ycbcr_420_allowed || in intel_dp_compute_output_format()
3057 crtc_state->output_format = intel_dp_output_format(connector, in intel_dp_compute_output_format()
3084 struct intel_connector *connector; in intel_dp_queue_modeset_retry_for_link() local
3100 for_each_new_intel_connector_in_state(state, connector, conn_state, i) { in intel_dp_queue_modeset_retry_for_link()
3104 if (connector->mst.dp == intel_dp) in intel_dp_queue_modeset_retry_for_link()
3105 intel_connector_queue_modeset_retry_work(connector); in intel_dp_queue_modeset_retry_for_link()
3115 struct intel_connector *connector = to_intel_connector(conn_state->connector); in intel_dp_compute_min_hblank() local
3138 dsc_slices = intel_dp_dsc_get_slice_count(connector, in intel_dp_compute_min_hblank()
3189 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_compute_config() local
3192 fixed_mode = intel_panel_fixed_mode(connector, adjusted_mode); in intel_dp_compute_config()
3194 ret = intel_panel_compute_config(connector, adjusted_mode); in intel_dp_compute_config()
3202 if (!connector->base.interlace_allowed && in intel_dp_compute_config()
3290 intel_dp_drrs_compute_config(connector, pipe_config, link_bpp_x16); in intel_dp_compute_config()
3294 return intel_dp_tunnel_atomic_compute_stream_bw(state, intel_dp, connector, in intel_dp_compute_config()
3383 intel_dp_sink_set_dsc_decompression(struct intel_connector *connector, in intel_dp_sink_set_dsc_decompression() argument
3386 struct intel_display *display = to_intel_display(connector); in intel_dp_sink_set_dsc_decompression()
3388 if (write_dsc_decompression_flag(connector->dp.dsc_decompression_aux, in intel_dp_sink_set_dsc_decompression()
3396 intel_dp_sink_set_dsc_passthrough(const struct intel_connector *connector, in intel_dp_sink_set_dsc_passthrough() argument
3399 struct intel_display *display = to_intel_display(connector); in intel_dp_sink_set_dsc_passthrough()
3400 struct drm_dp_aux *aux = connector->mst.port ? in intel_dp_sink_set_dsc_passthrough()
3401 connector->mst.port->passthrough_aux : NULL; in intel_dp_sink_set_dsc_passthrough()
3414 const struct intel_connector *connector, in intel_dp_dsc_aux_ref_count() argument
3425 * On SST the decompression AUX device won't be shared, each connector in intel_dp_dsc_aux_ref_count()
3428 if (!connector->mst.dp) in intel_dp_dsc_aux_ref_count()
3429 return connector->dp.dsc_decompression_enabled ? 1 : 0; in intel_dp_dsc_aux_ref_count()
3436 if (connector_iter->mst.dp != connector->mst.dp) in intel_dp_dsc_aux_ref_count()
3447 connector->dp.dsc_decompression_aux) in intel_dp_dsc_aux_ref_count()
3455 struct intel_connector *connector) in intel_dp_dsc_aux_get_ref() argument
3457 bool ret = intel_dp_dsc_aux_ref_count(state, connector, true) == 0; in intel_dp_dsc_aux_get_ref()
3459 connector->dp.dsc_decompression_enabled = true; in intel_dp_dsc_aux_get_ref()
3465 struct intel_connector *connector) in intel_dp_dsc_aux_put_ref() argument
3467 connector->dp.dsc_decompression_enabled = false; in intel_dp_dsc_aux_put_ref()
3469 return intel_dp_dsc_aux_ref_count(state, connector, false) == 0; in intel_dp_dsc_aux_put_ref()
3475 * @connector: connector to enable the decompression for
3476 * @new_crtc_state: new state for the CRTC driving @connector
3486 struct intel_connector *connector, in intel_dp_sink_enable_decompression() argument
3495 !connector->dp.dsc_decompression_aux || in intel_dp_sink_enable_decompression()
3496 connector->dp.dsc_decompression_enabled)) in intel_dp_sink_enable_decompression()
3499 if (!intel_dp_dsc_aux_get_ref(state, connector)) in intel_dp_sink_enable_decompression()
3502 intel_dp_sink_set_dsc_passthrough(connector, true); in intel_dp_sink_enable_decompression()
3503 intel_dp_sink_set_dsc_decompression(connector, true); in intel_dp_sink_enable_decompression()
3509 * @connector: connector to disable the decompression for
3510 * @old_crtc_state: old state for the CRTC driving @connector
3517 struct intel_connector *connector, in intel_dp_sink_disable_decompression() argument
3526 !connector->dp.dsc_decompression_aux || in intel_dp_sink_disable_decompression()
3527 !connector->dp.dsc_decompression_enabled)) in intel_dp_sink_disable_decompression()
3530 if (!intel_dp_dsc_aux_put_ref(state, connector)) in intel_dp_sink_disable_decompression()
3533 intel_dp_sink_set_dsc_decompression(connector, false); in intel_dp_sink_disable_decompression()
3534 intel_dp_sink_set_dsc_passthrough(connector, false); in intel_dp_sink_disable_decompression()
3578 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_wait_source_oui() local
3581 "[CONNECTOR:%d:%s] Performing OUI wait (%u ms)\n", in intel_dp_wait_source_oui()
3582 connector->base.base.id, connector->base.name, in intel_dp_wait_source_oui()
3583 connector->panel.vbt.backlight.hdr_dpcd_refresh_timeout); in intel_dp_wait_source_oui()
3586 connector->panel.vbt.backlight.hdr_dpcd_refresh_timeout); in intel_dp_wait_source_oui()
3768 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_hdmi_sink_max_frl() local
3769 const struct drm_display_info *info = &connector->base.display_info; in intel_dp_hdmi_sink_max_frl()
3942 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_pcon_dsc_enc_slices() local
3943 const struct drm_display_info *info = &connector->base.display_info; in intel_dp_pcon_dsc_enc_slices()
3959 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_pcon_dsc_enc_bpp() local
3960 const struct drm_display_info *info = &connector->base.display_info; in intel_dp_pcon_dsc_enc_bpp()
3977 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_pcon_dsc_configure() local
3990 if (!connector) in intel_dp_pcon_dsc_configure()
3993 info = &connector->base.display_info; in intel_dp_pcon_dsc_configure()
4121 void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_connector *connector) in intel_dp_get_dsc_sink_cap() argument
4123 struct intel_display *display = to_intel_display(connector); in intel_dp_get_dsc_sink_cap()
4129 memset(connector->dp.dsc_dpcd, 0, sizeof(connector->dp.dsc_dpcd)); in intel_dp_get_dsc_sink_cap()
4132 connector->dp.fec_capability = 0; in intel_dp_get_dsc_sink_cap()
4137 intel_dp_read_dsc_dpcd(connector->dp.dsc_decompression_aux, in intel_dp_get_dsc_sink_cap()
4138 connector->dp.dsc_dpcd); in intel_dp_get_dsc_sink_cap()
4140 if (drm_dp_dpcd_readb(connector->dp.dsc_decompression_aux, DP_FEC_CAPABILITY, in intel_dp_get_dsc_sink_cap()
4141 &connector->dp.fec_capability) < 0) { in intel_dp_get_dsc_sink_cap()
4147 connector->dp.fec_capability); in intel_dp_get_dsc_sink_cap()
4150 static void intel_edp_get_dsc_sink_cap(u8 edp_dpcd_rev, struct intel_connector *connector) in intel_edp_get_dsc_sink_cap() argument
4155 intel_dp_read_dsc_dpcd(connector->dp.dsc_decompression_aux, connector->dp.dsc_dpcd); in intel_edp_get_dsc_sink_cap()
4159 intel_dp_detect_dsc_caps(struct intel_dp *intel_dp, struct intel_connector *connector) in intel_dp_detect_dsc_caps() argument
4169 connector); in intel_dp_detect_dsc_caps()
4172 connector); in intel_dp_detect_dsc_caps()
4175 static void intel_edp_mso_mode_fixup(struct intel_connector *connector, in intel_edp_mso_mode_fixup() argument
4178 struct intel_display *display = to_intel_display(connector); in intel_edp_mso_mode_fixup()
4179 struct intel_dp *intel_dp = intel_attached_dp(connector); in intel_edp_mso_mode_fixup()
4195 "[CONNECTOR:%d:%s] using generated MSO mode: " DRM_MODE_FMT "\n", in intel_edp_mso_mode_fixup()
4196 connector->base.base.id, connector->base.name, in intel_edp_mso_mode_fixup()
4204 struct intel_connector *connector = intel_dp->attached_connector; in intel_edp_fixup_vbt_bpp() local
4206 if (connector->panel.vbt.edp.bpp && pipe_bpp > connector->panel.vbt.edp.bpp) { in intel_edp_fixup_vbt_bpp()
4222 pipe_bpp, connector->panel.vbt.edp.bpp); in intel_edp_fixup_vbt_bpp()
4223 connector->panel.vbt.edp.bpp = pipe_bpp; in intel_edp_fixup_vbt_bpp()
4230 struct intel_connector *connector = intel_dp->attached_connector; in intel_edp_mso_init() local
4231 struct drm_display_info *info = &connector->base.display_info; in intel_edp_mso_init()
4322 intel_edp_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *connector) in intel_edp_init_dpcd() argument
4374 intel_dp_detect_dsc_caps(intel_dp, connector); in intel_edp_init_dpcd()
5247 struct intel_connector *connector = to_intel_connector(conn_state->connector); in wait_for_connector_hw_done() local
5248 struct intel_display *display = to_intel_display(connector); in wait_for_connector_hw_done()
5266 struct intel_connector *connector; in intel_dp_get_active_pipes() local
5272 for_each_intel_connector_iter(connector, &conn_iter) { in intel_dp_get_active_pipes()
5274 connector->base.state; in intel_dp_get_active_pipes()
5306 void intel_dp_flush_connector_commits(struct intel_connector *connector) in intel_dp_flush_connector_commits() argument
5308 wait_for_connector_hw_done(connector->base.state); in intel_dp_flush_connector_commits()
5313 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_is_connected() local
5315 return connector->base.status == connector_status_connected || in intel_dp_is_connected()
5581 * In cases where there's a connector physically connected but it can't be used
5627 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_get_edid() local
5628 const struct drm_edid *fixed_edid = connector->panel.fixed_edid; in intel_dp_get_edid()
5639 return drm_edid_read_ddc(&connector->base, &intel_dp->aux.ddc); in intel_dp_get_edid()
5647 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_update_dfp() local
5671 … "[CONNECTOR:%d:%s] DFP max bpc %d, max dotclock %d, TMDS clock %d-%d, PCON Max FRL BW %dGbps\n", in intel_dp_update_dfp()
5672 connector->base.base.id, connector->base.name, in intel_dp_update_dfp()
5704 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_update_420() local
5719 connector->base.ycbcr_420_allowed = intel_dp_can_ycbcr420(intel_dp); in intel_dp_update_420()
5722 …"[CONNECTOR:%d:%s] RGB->YcbCr conversion? %s, YCbCr 4:2:0 allowed? %s, YCbCr 4:4:4->4:2:0 conversi… in intel_dp_update_420()
5723 connector->base.base.id, connector->base.name, in intel_dp_update_420()
5725 str_yes_no(connector->base.ycbcr_420_allowed), in intel_dp_update_420()
5733 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_set_edid() local
5739 connector->detect_edid = drm_edid; in intel_dp_set_edid()
5742 drm_edid_connector_update(&connector->base, drm_edid); in intel_dp_set_edid()
5744 vrr_capable = intel_vrr_is_capable(connector); in intel_dp_set_edid()
5745 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] VRR capable: %s\n", in intel_dp_set_edid()
5746 connector->base.base.id, connector->base.name, str_yes_no(vrr_capable)); in intel_dp_set_edid()
5747 drm_connector_set_vrr_capable_property(&connector->base, vrr_capable); in intel_dp_set_edid()
5753 connector->base.display_info.source_physical_address); in intel_dp_set_edid()
5759 struct intel_connector *connector = intel_dp->attached_connector; in intel_dp_unset_edid() local
5762 drm_edid_free(connector->detect_edid); in intel_dp_unset_edid()
5763 connector->detect_edid = NULL; in intel_dp_unset_edid()
5773 connector->base.ycbcr_420_allowed = false; in intel_dp_unset_edid()
5775 drm_connector_set_vrr_capable_property(&connector->base, in intel_dp_unset_edid()
5794 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_detect() local
5795 struct intel_dp *intel_dp = intel_attached_dp(connector); in intel_dp_detect()
5801 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s]\n", in intel_dp_detect()
5802 connector->base.base.id, connector->base.name); in intel_dp_detect()
5810 return connector->base.status; in intel_dp_detect()
5812 intel_dp_flush_connector_commits(connector); in intel_dp_detect()
5830 * ensured by setting the connector here to SST/disconnected, in intel_dp_detect()
5831 * or via a userspace connector probing in response to the in intel_dp_detect()
5838 memset(connector->dp.dsc_dpcd, 0, sizeof(connector->dp.dsc_dpcd)); in intel_dp_detect()
5859 connector->base.epoch_counter++; in intel_dp_detect()
5864 intel_dp_detect_dsc_caps(intel_dp, connector); in intel_dp_detect()
5879 * If we are in MST mode then this connector in intel_dp_detect()
5907 if (intel_dp_is_edp(intel_dp) || connector->detect_edid) in intel_dp_detect()
5917 drm_dp_set_subconnector_property(&connector->base, in intel_dp_detect()
5930 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_force() local
5931 struct intel_display *display = to_intel_display(connector); in intel_dp_force()
5932 struct intel_dp *intel_dp = intel_attached_dp(connector); in intel_dp_force()
5934 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s]\n", in intel_dp_force()
5935 connector->base.base.id, connector->base.name); in intel_dp_force()
5942 if (connector->base.status != connector_status_connected) in intel_dp_force()
5951 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_get_modes() local
5952 struct intel_dp *intel_dp = intel_attached_dp(connector); in intel_dp_get_modes()
5956 num_modes = drm_edid_connector_add_modes(&connector->base); in intel_dp_get_modes()
5960 num_modes += intel_panel_get_modes(connector); in intel_dp_get_modes()
5965 if (!connector->detect_edid) { in intel_dp_get_modes()
5972 drm_mode_probed_add(&connector->base, mode); in intel_dp_get_modes()
5983 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_connector_register() local
5984 struct intel_display *display = to_intel_display(connector); in intel_dp_connector_register()
5985 struct intel_dp *intel_dp = intel_attached_dp(connector); in intel_dp_connector_register()
5989 ret = intel_connector_register(&connector->base); in intel_dp_connector_register()
5994 intel_dp->aux.name, connector->base.kdev->kobj.name); in intel_dp_connector_register()
5996 intel_dp->aux.dev = connector->base.kdev; in intel_dp_connector_register()
5999 drm_dp_cec_register_connector(&intel_dp->aux, &connector->base); in intel_dp_connector_register()
6010 drm_connector_attach_hdr_output_metadata_property(&connector->base); in intel_dp_connector_register()
6019 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_connector_unregister() local
6020 struct intel_dp *intel_dp = intel_attached_dp(connector); in intel_dp_connector_unregister()
6024 intel_connector_unregister(&connector->base); in intel_dp_connector_unregister()
6027 void intel_dp_connector_sync_state(struct intel_connector *connector, in intel_dp_connector_sync_state() argument
6030 struct intel_display *display = to_intel_display(connector); in intel_dp_connector_sync_state()
6034 !connector->dp.dsc_decompression_aux); in intel_dp_connector_sync_state()
6035 connector->dp.dsc_decompression_enabled = true; in intel_dp_connector_sync_state()
6037 connector->dp.dsc_decompression_enabled = false; in intel_dp_connector_sync_state()
6085 struct intel_connector *connector; in intel_modeset_tile_group() local
6089 for_each_intel_connector_iter(connector, &conn_iter) { in intel_modeset_tile_group()
6094 if (!connector->base.has_tile || in intel_modeset_tile_group()
6095 connector->base.tile_group->id != tile_group_id) in intel_modeset_tile_group()
6099 &connector->base); in intel_modeset_tile_group()
6165 struct intel_connector *connector = to_intel_connector(_connector); in intel_modeset_synced_crtcs() local
6167 drm_atomic_get_old_connector_state(&state->base, &connector->base); in intel_modeset_synced_crtcs()
6192 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_connector_atomic_check() local
6193 struct intel_display *display = to_intel_display(connector); in intel_dp_connector_atomic_check()
6196 drm_atomic_get_new_connector_state(_state, &connector->base); in intel_dp_connector_atomic_check()
6197 struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); in intel_dp_connector_atomic_check()
6200 ret = intel_digital_connector_atomic_check(&connector->base, &state->base); in intel_dp_connector_atomic_check()
6210 if (!intel_connector_needs_modeset(state, &connector->base)) in intel_dp_connector_atomic_check()
6215 connector); in intel_dp_connector_atomic_check()
6226 if (connector->base.has_tile) { in intel_dp_connector_atomic_check()
6227 ret = intel_modeset_tile_group(state, connector->base.tile_group->id); in intel_dp_connector_atomic_check()
6232 return intel_modeset_synced_crtcs(state, &connector->base); in intel_dp_connector_atomic_check()
6238 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_oob_hotplug_event() local
6239 struct intel_display *display = to_intel_display(connector); in intel_dp_oob_hotplug_event()
6240 struct intel_encoder *encoder = intel_attached_encoder(connector); in intel_dp_oob_hotplug_event()
6314 * connector's/encoder's hotplug handler. Since the TBT CM may not in intel_dp_hpd_pulse()
6315 * complete the DP tunnel BW request for the latter connector/encoder in intel_dp_hpd_pulse()
6388 struct intel_connector *connector = to_intel_connector(_connector); in intel_dp_add_properties() local
6393 drm_connector_attach_dp_subconnector_property(&connector->base); in intel_dp_add_properties()
6396 intel_attach_force_audio_property(&connector->base); in intel_dp_add_properties()
6398 intel_attach_broadcast_rgb_property(&connector->base); in intel_dp_add_properties()
6400 drm_connector_attach_max_bpc_property(&connector->base, 6, 10); in intel_dp_add_properties()
6402 drm_connector_attach_max_bpc_property(&connector->base, 6, 12); in intel_dp_add_properties()
6406 drm_connector_attach_content_type_property(&connector->base); in intel_dp_add_properties()
6407 intel_attach_hdmi_colorspace_property(&connector->base); in intel_dp_add_properties()
6409 intel_attach_dp_colorspace_property(&connector->base); in intel_dp_add_properties()
6413 drm_connector_attach_hdr_output_metadata_property(&connector->base); in intel_dp_add_properties()
6416 drm_connector_attach_vrr_capable_property(&connector->base); in intel_dp_add_properties()
6423 struct intel_connector *connector = intel_dp->attached_connector; in intel_edp_add_properties() local
6425 intel_panel_preferred_fixed_mode(connector); in intel_edp_add_properties()
6427 intel_attach_scaling_mode_property(&connector->base); in intel_edp_add_properties()
6429 drm_connector_set_panel_orientation_with_quirk(&connector->base, in intel_edp_add_properties()
6436 struct intel_connector *connector) in intel_edp_backlight_setup() argument
6444 intel_backlight_setup(connector, pipe); in intel_edp_backlight_setup()
6448 struct intel_connector *connector) in intel_edp_init_connector() argument
6474 intel_bios_init_panel_early(display, &connector->panel, in intel_edp_init_connector()
6501 has_dpcd = intel_edp_init_dpcd(intel_dp, connector); in intel_edp_init_connector()
6551 drm_edid = drm_edid_read_ddc(&connector->base, connector->base.ddc); in intel_edp_init_connector()
6554 drm_edid = intel_opregion_get_edid(connector); in intel_edp_init_connector()
6557 "[CONNECTOR:%d:%s] Using OpRegion EDID\n", in intel_edp_init_connector()
6558 connector->base.base.id, connector->base.name); in intel_edp_init_connector()
6561 if (drm_edid_connector_update(&connector->base, drm_edid) || in intel_edp_init_connector()
6562 !drm_edid_connector_add_modes(&connector->base)) { in intel_edp_init_connector()
6563 drm_edid_connector_update(&connector->base, NULL); in intel_edp_init_connector()
6571 intel_bios_init_panel_late(display, &connector->panel, encoder->devdata, in intel_edp_init_connector()
6574 intel_panel_add_edid_fixed_modes(connector, true); in intel_edp_init_connector()
6580 list_for_each_entry(fixed_mode, &connector->panel.fixed_modes, head) in intel_edp_init_connector()
6581 intel_edp_mso_mode_fixup(connector, fixed_mode); in intel_edp_init_connector()
6584 if (!intel_panel_preferred_fixed_mode(connector)) in intel_edp_init_connector()
6585 intel_panel_add_vbt_lfp_fixed_mode(connector); in intel_edp_init_connector()
6589 if (!intel_panel_preferred_fixed_mode(connector)) { in intel_edp_init_connector()
6596 intel_panel_init(connector, drm_edid); in intel_edp_init_connector()
6598 intel_edp_backlight_setup(intel_dp, connector); in intel_edp_init_connector()
6608 intel_bios_fini_panel(&connector->panel); in intel_edp_init_connector()
6615 struct intel_connector *connector) in intel_dp_init_connector() argument
6634 intel_dp->attached_connector = connector; in intel_dp_init_connector()
6662 connector->dp.dsc_decompression_aux = &intel_dp->aux; in intel_dp_init_connector()
6665 "Adding %s connector on [ENCODER:%d:%s]\n", in intel_dp_init_connector()
6669 drm_connector_init_with_ddc(dev, &connector->base, &intel_dp_connector_funcs, in intel_dp_init_connector()
6671 drm_connector_helper_add(&connector->base, &intel_dp_connector_helper_funcs); in intel_dp_init_connector()
6674 connector->base.interlace_allowed = true; in intel_dp_init_connector()
6677 connector->polled = DRM_CONNECTOR_POLL_HPD; in intel_dp_init_connector()
6678 connector->base.polled = connector->polled; in intel_dp_init_connector()
6680 intel_connector_attach_encoder(connector, encoder); in intel_dp_init_connector()
6683 connector->get_hw_state = intel_ddi_connector_get_hw_state; in intel_dp_init_connector()
6685 connector->get_hw_state = intel_connector_get_hw_state; in intel_dp_init_connector()
6686 connector->sync_state = intel_dp_connector_sync_state; in intel_dp_init_connector()
6688 if (!intel_edp_init_connector(intel_dp, connector)) { in intel_dp_init_connector()
6698 intel_dp_mst_encoder_init(dig_port, connector->base.base.id); in intel_dp_init_connector()
6700 intel_dp_add_properties(intel_dp, &connector->base); in intel_dp_init_connector()
6703 int ret = intel_dp_hdcp_init(dig_port, connector); in intel_dp_init_connector()
6718 drm_connector_cleanup(&connector->base); in intel_dp_init_connector()