• Home
  • Raw
  • Download

Lines Matching refs:connector

90 	struct drm_connector *connector;  member
1354 static void drm_get_displayid(struct drm_connector *connector,
1560 static void connector_bad_edid(struct drm_connector *connector, in connector_bad_edid() argument
1565 if (connector->bad_edid_counter++ && !(drm_debug & DRM_UT_KMS)) in connector_bad_edid()
1568 dev_warn(connector->dev->dev, in connector_bad_edid()
1570 connector->name); in connector_bad_edid()
1589 static struct edid *drm_get_override_edid(struct drm_connector *connector) in drm_get_override_edid() argument
1593 if (connector->override_edid) in drm_get_override_edid()
1594 override = drm_edid_duplicate(connector->edid_blob_ptr->data); in drm_get_override_edid()
1597 override = drm_load_edid_firmware(connector); in drm_get_override_edid()
1613 int drm_add_override_edid_modes(struct drm_connector *connector) in drm_add_override_edid_modes() argument
1618 override = drm_get_override_edid(connector); in drm_add_override_edid_modes()
1620 drm_connector_update_edid_property(connector, override); in drm_add_override_edid_modes()
1621 num_modes = drm_add_edid_modes(connector, override); in drm_add_override_edid_modes()
1625 connector->base.id, connector->name, num_modes); in drm_add_override_edid_modes()
1652 struct edid *drm_do_get_edid(struct drm_connector *connector, in drm_do_get_edid() argument
1661 override = drm_get_override_edid(connector); in drm_do_get_edid()
1673 &connector->edid_corrupt)) in drm_do_get_edid()
1676 connector->null_edid_counter++; in drm_do_get_edid()
1710 connector_bad_edid(connector, edid, edid[0x7e] + 1); in drm_do_get_edid()
1738 connector_bad_edid(connector, edid, 1); in drm_do_get_edid()
1770 struct edid *drm_get_edid(struct drm_connector *connector, in drm_get_edid() argument
1775 if (connector->force == DRM_FORCE_OFF) in drm_get_edid()
1778 if (connector->force == DRM_FORCE_UNSPECIFIED && !drm_probe_ddc(adapter)) in drm_get_edid()
1781 edid = drm_do_get_edid(connector, drm_do_probe_ddc_edid, adapter); in drm_get_edid()
1783 drm_get_displayid(connector, edid); in drm_get_edid()
1799 struct edid *drm_get_edid_switcheroo(struct drm_connector *connector, in drm_get_edid_switcheroo() argument
1802 struct pci_dev *pdev = connector->dev->pdev; in drm_get_edid_switcheroo()
1806 edid = drm_get_edid(connector, adapter); in drm_get_edid_switcheroo()
1879 static void edid_fixup_preferred(struct drm_connector *connector, in edid_fixup_preferred() argument
1886 if (list_empty(&connector->probed_modes)) in edid_fixup_preferred()
1894 preferred_mode = list_first_entry(&connector->probed_modes, in edid_fixup_preferred()
1897 list_for_each_entry_safe(cur_mode, t, &connector->probed_modes, head) { in edid_fixup_preferred()
2130 drm_mode_std(struct drm_connector *connector, struct edid *edid, in drm_mode_std() argument
2133 struct drm_device *dev = connector->dev; in drm_mode_std()
2177 list_for_each_entry(m, &connector->probed_modes, head) in drm_mode_std()
2468 static bool valid_inferred_mode(const struct drm_connector *connector, in valid_inferred_mode() argument
2474 list_for_each_entry(m, &connector->probed_modes, head) { in valid_inferred_mode()
2487 drm_dmt_modes_for_range(struct drm_connector *connector, struct edid *edid, in drm_dmt_modes_for_range() argument
2492 struct drm_device *dev = connector->dev; in drm_dmt_modes_for_range()
2496 valid_inferred_mode(connector, drm_dmt_modes + i)) { in drm_dmt_modes_for_range()
2499 drm_mode_probed_add(connector, newmode); in drm_dmt_modes_for_range()
2522 drm_gtf_modes_for_range(struct drm_connector *connector, struct edid *edid, in drm_gtf_modes_for_range() argument
2527 struct drm_device *dev = connector->dev; in drm_gtf_modes_for_range()
2537 !valid_inferred_mode(connector, newmode)) { in drm_gtf_modes_for_range()
2542 drm_mode_probed_add(connector, newmode); in drm_gtf_modes_for_range()
2550 drm_cvt_modes_for_range(struct drm_connector *connector, struct edid *edid, in drm_cvt_modes_for_range() argument
2555 struct drm_device *dev = connector->dev; in drm_cvt_modes_for_range()
2566 !valid_inferred_mode(connector, newmode)) { in drm_cvt_modes_for_range()
2571 drm_mode_probed_add(connector, newmode); in drm_cvt_modes_for_range()
2588 closure->modes += drm_dmt_modes_for_range(closure->connector, in do_inferred_modes()
2598 closure->modes += drm_gtf_modes_for_range(closure->connector, in do_inferred_modes()
2606 closure->modes += drm_cvt_modes_for_range(closure->connector, in do_inferred_modes()
2617 add_inferred_modes(struct drm_connector *connector, struct edid *edid) in add_inferred_modes() argument
2620 .connector = connector, in add_inferred_modes()
2632 drm_est3_modes(struct drm_connector *connector, struct detailed_timing *timing) in drm_est3_modes() argument
2644 mode = drm_mode_find_dmt(connector->dev, in drm_est3_modes()
2650 drm_mode_probed_add(connector, mode); in drm_est3_modes()
2667 closure->modes += drm_est3_modes(closure->connector, timing); in do_established_modes()
2679 add_established_modes(struct drm_connector *connector, struct edid *edid) in add_established_modes() argument
2681 struct drm_device *dev = connector->dev; in add_established_modes()
2687 .connector = connector, in add_established_modes()
2696 drm_mode_probed_add(connector, newmode); in add_established_modes()
2714 struct drm_connector *connector = closure->connector; in do_standard_modes() local
2724 newmode = drm_mode_std(connector, edid, std); in do_standard_modes()
2726 drm_mode_probed_add(connector, newmode); in do_standard_modes()
2742 add_standard_modes(struct drm_connector *connector, struct edid *edid) in add_standard_modes() argument
2746 .connector = connector, in add_standard_modes()
2753 newmode = drm_mode_std(connector, edid, in add_standard_modes()
2756 drm_mode_probed_add(connector, newmode); in add_standard_modes()
2770 static int drm_cvt_modes(struct drm_connector *connector, in drm_cvt_modes() argument
2775 struct drm_device *dev = connector->dev; in drm_cvt_modes()
2809 drm_mode_probed_add(connector, newmode); in drm_cvt_modes()
2826 closure->modes += drm_cvt_modes(closure->connector, timing); in do_cvt_mode()
2830 add_cvt_modes(struct drm_connector *connector, struct edid *edid) in add_cvt_modes() argument
2833 .connector = connector, in add_cvt_modes()
2854 newmode = drm_mode_detailed(closure->connector->dev, in do_detailed_mode()
2870 drm_mode_probed_add(closure->connector, newmode); in do_detailed_mode()
2883 add_detailed_modes(struct drm_connector *connector, struct edid *edid, in add_detailed_modes() argument
2887 .connector = connector, in add_detailed_modes()
3219 add_alternate_cea_modes(struct drm_connector *connector, struct edid *edid) in add_alternate_cea_modes() argument
3221 struct drm_device *dev = connector->dev; in add_alternate_cea_modes()
3234 list_for_each_entry(mode, &connector->probed_modes, head) { in add_alternate_cea_modes()
3283 drm_mode_probed_add(connector, mode); in add_alternate_cea_modes()
3300 drm_display_mode_from_vic_index(struct drm_connector *connector, in drm_display_mode_from_vic_index() argument
3304 struct drm_device *dev = connector->dev; in drm_display_mode_from_vic_index()
3335 static int do_y420vdb_modes(struct drm_connector *connector, in do_y420vdb_modes() argument
3339 struct drm_device *dev = connector->dev; in do_y420vdb_modes()
3340 struct drm_display_info *info = &connector->display_info; in do_y420vdb_modes()
3354 drm_mode_probed_add(connector, newmode); in do_y420vdb_modes()
3371 drm_add_cmdb_modes(struct drm_connector *connector, u8 svd) in drm_add_cmdb_modes() argument
3374 struct drm_hdmi_info *hdmi = &connector->display_info.hdmi; in drm_add_cmdb_modes()
3383 do_cea_modes(struct drm_connector *connector, const u8 *db, u8 len) in do_cea_modes() argument
3386 struct drm_hdmi_info *hdmi = &connector->display_info.hdmi; in do_cea_modes()
3390 mode = drm_display_mode_from_vic_index(connector, db, len, i); in do_cea_modes()
3402 drm_add_cmdb_modes(connector, db[i]); in do_cea_modes()
3404 drm_mode_probed_add(connector, mode); in do_cea_modes()
3442 static int add_hdmi_mandatory_stereo_modes(struct drm_connector *connector) in add_hdmi_mandatory_stereo_modes() argument
3444 struct drm_device *dev = connector->dev; in add_hdmi_mandatory_stereo_modes()
3451 list_for_each_entry(mode, &connector->probed_modes, head) { in add_hdmi_mandatory_stereo_modes()
3471 list_splice_tail(&stereo_modes, &connector->probed_modes); in add_hdmi_mandatory_stereo_modes()
3476 static int add_hdmi_mode(struct drm_connector *connector, u8 vic) in add_hdmi_mode() argument
3478 struct drm_device *dev = connector->dev; in add_hdmi_mode()
3490 drm_mode_probed_add(connector, newmode); in add_hdmi_mode()
3495 static int add_3d_struct_modes(struct drm_connector *connector, u16 structure, in add_3d_struct_modes() argument
3502 newmode = drm_display_mode_from_vic_index(connector, video_db, in add_3d_struct_modes()
3507 drm_mode_probed_add(connector, newmode); in add_3d_struct_modes()
3512 newmode = drm_display_mode_from_vic_index(connector, video_db, in add_3d_struct_modes()
3517 drm_mode_probed_add(connector, newmode); in add_3d_struct_modes()
3522 newmode = drm_display_mode_from_vic_index(connector, video_db, in add_3d_struct_modes()
3527 drm_mode_probed_add(connector, newmode); in add_3d_struct_modes()
3545 do_hdmi_vsdb_modes(struct drm_connector *connector, const u8 *db, u8 len, in do_hdmi_vsdb_modes() argument
3548 struct drm_display_info *info = &connector->display_info; in do_hdmi_vsdb_modes()
3577 modes += add_hdmi_mandatory_stereo_modes(connector); in do_hdmi_vsdb_modes()
3591 modes += add_hdmi_mode(connector, vic); in do_hdmi_vsdb_modes()
3620 modes += add_3d_struct_modes(connector, in do_hdmi_vsdb_modes()
3659 newmode = drm_display_mode_from_vic_index(connector, in do_hdmi_vsdb_modes()
3666 drm_mode_probed_add(connector, newmode); in do_hdmi_vsdb_modes()
3818 static void drm_parse_y420cmdb_bitmap(struct drm_connector *connector, in drm_parse_y420cmdb_bitmap() argument
3821 struct drm_display_info *info = &connector->display_info; in drm_parse_y420cmdb_bitmap()
3859 add_cea_modes(struct drm_connector *connector, struct edid *edid) in add_cea_modes() argument
3879 modes += do_cea_modes(connector, video, dbl); in add_cea_modes()
3887 modes += do_y420vdb_modes(connector, in add_cea_modes()
3899 modes += do_hdmi_vsdb_modes(connector, hdmi, hdmi_len, video, in add_cea_modes()
3978 drm_parse_hdr_metadata_block(struct drm_connector *connector, const u8 *db) in drm_parse_hdr_metadata_block() argument
3984 connector->hdr_sink_metadata.hdmi_type1.eotf = in drm_parse_hdr_metadata_block()
3986 connector->hdr_sink_metadata.hdmi_type1.metadata_type = in drm_parse_hdr_metadata_block()
3990 connector->hdr_sink_metadata.hdmi_type1.max_cll = db[4]; in drm_parse_hdr_metadata_block()
3992 connector->hdr_sink_metadata.hdmi_type1.max_fall = db[5]; in drm_parse_hdr_metadata_block()
3994 connector->hdr_sink_metadata.hdmi_type1.min_cll = db[6]; in drm_parse_hdr_metadata_block()
3998 drm_parse_hdmi_vsdb_audio(struct drm_connector *connector, const u8 *db) in drm_parse_hdmi_vsdb_audio() argument
4003 connector->eld[DRM_ELD_SAD_COUNT_CONN_TYPE] |= DRM_ELD_SUPPORTS_AI; in drm_parse_hdmi_vsdb_audio()
4005 connector->latency_present[0] = db[8] >> 7; in drm_parse_hdmi_vsdb_audio()
4006 connector->latency_present[1] = (db[8] >> 6) & 1; in drm_parse_hdmi_vsdb_audio()
4009 connector->video_latency[0] = db[9]; in drm_parse_hdmi_vsdb_audio()
4011 connector->audio_latency[0] = db[10]; in drm_parse_hdmi_vsdb_audio()
4013 connector->video_latency[1] = db[11]; in drm_parse_hdmi_vsdb_audio()
4015 connector->audio_latency[1] = db[12]; in drm_parse_hdmi_vsdb_audio()
4020 connector->latency_present[0], in drm_parse_hdmi_vsdb_audio()
4021 connector->latency_present[1], in drm_parse_hdmi_vsdb_audio()
4022 connector->video_latency[0], in drm_parse_hdmi_vsdb_audio()
4023 connector->video_latency[1], in drm_parse_hdmi_vsdb_audio()
4024 connector->audio_latency[0], in drm_parse_hdmi_vsdb_audio()
4025 connector->audio_latency[1]); in drm_parse_hdmi_vsdb_audio()
4036 drm_extract_vcdb_info(struct drm_connector *connector, const u8 *db) in drm_extract_vcdb_info() argument
4046 connector->pt_scan_info = in drm_extract_vcdb_info()
4048 connector->it_scan_info = in drm_extract_vcdb_info()
4050 connector->ce_scan_info = in drm_extract_vcdb_info()
4054 (int) connector->pt_scan_info, in drm_extract_vcdb_info()
4055 (int) connector->it_scan_info, in drm_extract_vcdb_info()
4056 (int) connector->ce_scan_info); in drm_extract_vcdb_info()
4060 drm_parse_vsvdb_hdr_plus(struct drm_connector *connector, const u8 *db) in drm_parse_vsvdb_hdr_plus() argument
4062 connector->hdr_plus_app_ver = db[5] & VSVDB_HDR10_PLUS_APP_VER_MASK; in drm_parse_vsvdb_hdr_plus()
4066 drm_extract_vsvdb_info(struct drm_connector *connector, const u8 *db) in drm_extract_vsvdb_info() argument
4078 drm_parse_vsvdb_hdr_plus(connector, db); in drm_extract_vsvdb_info()
4095 drm_extract_clrmetry_db(struct drm_connector *connector, const u8 *db) in drm_extract_clrmetry_db() argument
4105 connector->color_enc_fmt |= DRM_EDID_CLRMETRY_xvYCC_601; in drm_extract_clrmetry_db()
4108 connector->color_enc_fmt |= DRM_EDID_CLRMETRY_xvYCC_709; in drm_extract_clrmetry_db()
4111 connector->color_enc_fmt |= DRM_EDID_CLRMETRY_sYCC_601; in drm_extract_clrmetry_db()
4114 connector->color_enc_fmt |= DRM_EDID_CLRMETRY_ADBYCC_601; in drm_extract_clrmetry_db()
4117 connector->color_enc_fmt |= DRM_EDID_CLRMETRY_ADB_RGB; in drm_extract_clrmetry_db()
4120 connector->color_enc_fmt |= DRM_EDID_CLRMETRY_BT2020_CYCC; in drm_extract_clrmetry_db()
4123 connector->color_enc_fmt |= DRM_EDID_CLRMETRY_BT2020_YCC; in drm_extract_clrmetry_db()
4126 connector->color_enc_fmt |= DRM_EDID_CLRMETRY_BT2020_RGB; in drm_extract_clrmetry_db()
4129 connector->color_enc_fmt |= DRM_EDID_CLRMETRY_DCI_P3; in drm_extract_clrmetry_db()
4131 DRM_DEBUG_KMS("colorimetry fmts = 0x%x\n", connector->color_enc_fmt); in drm_extract_clrmetry_db()
4142 drm_extract_hdr_db(struct drm_connector *connector, const u8 *db) in drm_extract_hdr_db() argument
4152 connector->hdr_eotf = db[2] & 0x3F; in drm_extract_hdr_db()
4155 connector->hdr_metadata_type_one = (db[3] & BIT(0)); in drm_extract_hdr_db()
4159 connector->hdr_max_luminance = in drm_extract_hdr_db()
4164 connector->hdr_avg_luminance = in drm_extract_hdr_db()
4169 connector->hdr_min_luminance = in drm_extract_hdr_db()
4172 connector->hdr_supported = true; in drm_extract_hdr_db()
4174 DRM_DEBUG_KMS("HDR electro-optical %d\n", connector->hdr_eotf); in drm_extract_hdr_db()
4175 DRM_DEBUG_KMS("metadata desc 1 %d\n", connector->hdr_metadata_type_one); in drm_extract_hdr_db()
4176 DRM_DEBUG_KMS("max luminance %d\n", connector->hdr_max_luminance); in drm_extract_hdr_db()
4177 DRM_DEBUG_KMS("avg luminance %d\n", connector->hdr_avg_luminance); in drm_extract_hdr_db()
4178 DRM_DEBUG_KMS("min luminance %d\n", connector->hdr_min_luminance); in drm_extract_hdr_db()
4187 drm_hdmi_extract_extended_blk_info(struct drm_connector *connector, in drm_hdmi_extract_extended_blk_info() argument
4207 drm_extract_vcdb_info(connector, db); in drm_hdmi_extract_extended_blk_info()
4210 drm_extract_vsvdb_info(connector, db); in drm_hdmi_extract_extended_blk_info()
4213 drm_extract_hdr_db(connector, db); in drm_hdmi_extract_extended_blk_info()
4216 drm_extract_clrmetry_db(connector, db); in drm_hdmi_extract_extended_blk_info()
4227 parse_hdmi_hf_vsdb(struct drm_connector *connector, const u8 *db) in parse_hdmi_hf_vsdb() argument
4237 connector->max_tmds_char = db[5] * 5; in parse_hdmi_hf_vsdb()
4238 connector->scdc_present = db[6] & (1 << 7); in parse_hdmi_hf_vsdb()
4239 connector->rr_capable = db[6] & (1 << 6); in parse_hdmi_hf_vsdb()
4240 connector->flags_3d = db[6] & 0x7; in parse_hdmi_hf_vsdb()
4241 connector->supports_scramble = connector->scdc_present && in parse_hdmi_hf_vsdb()
4246 connector->max_tmds_char, in parse_hdmi_hf_vsdb()
4247 connector->scdc_present ? "available" : "not available", in parse_hdmi_hf_vsdb()
4248 connector->rr_capable ? "capable" : "not capable", in parse_hdmi_hf_vsdb()
4249 connector->flags_3d, in parse_hdmi_hf_vsdb()
4250 connector->supports_scramble ? "supported" : "not supported"); in parse_hdmi_hf_vsdb()
4301 static void clear_eld(struct drm_connector *connector) in clear_eld() argument
4303 memset(connector->eld, 0, sizeof(connector->eld)); in clear_eld()
4305 connector->latency_present[0] = false; in clear_eld()
4306 connector->latency_present[1] = false; in clear_eld()
4307 connector->video_latency[0] = 0; in clear_eld()
4308 connector->audio_latency[0] = 0; in clear_eld()
4309 connector->video_latency[1] = 0; in clear_eld()
4310 connector->audio_latency[1] = 0; in clear_eld()
4321 static void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid) in drm_edid_to_eld() argument
4323 uint8_t *eld = connector->eld; in drm_edid_to_eld()
4330 clear_eld(connector); in drm_edid_to_eld()
4385 drm_parse_hdmi_vsdb_audio(connector, db); in drm_edid_to_eld()
4388 parse_hdmi_hf_vsdb(connector, db); in drm_edid_to_eld()
4397 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || in drm_edid_to_eld()
4398 connector->connector_type == DRM_MODE_CONNECTOR_eDP) in drm_edid_to_eld()
4533 int drm_av_sync_delay(struct drm_connector *connector, in drm_av_sync_delay() argument
4539 if (!connector->latency_present[0]) in drm_av_sync_delay()
4541 if (!connector->latency_present[1]) in drm_av_sync_delay()
4544 a = connector->audio_latency[i]; in drm_av_sync_delay()
4545 v = connector->video_latency[i]; in drm_av_sync_delay()
4667 static void drm_parse_vcdb(struct drm_connector *connector, const u8 *db) in drm_parse_vcdb() argument
4669 struct drm_display_info *info = &connector->display_info; in drm_parse_vcdb()
4677 static void drm_parse_ycbcr420_deep_color_info(struct drm_connector *connector, in drm_parse_ycbcr420_deep_color_info() argument
4681 struct drm_hdmi_info *hdmi = &connector->display_info.hdmi; in drm_parse_ycbcr420_deep_color_info()
4687 static void drm_parse_hdmi_forum_vsdb(struct drm_connector *connector, in drm_parse_hdmi_forum_vsdb() argument
4690 struct drm_display_info *display = &connector->display_info; in drm_parse_hdmi_forum_vsdb()
4730 drm_parse_ycbcr420_deep_color_info(connector, hf_vsdb); in drm_parse_hdmi_forum_vsdb()
4733 static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector, in drm_parse_hdmi_deep_color_info() argument
4736 struct drm_display_info *info = &connector->display_info; in drm_parse_hdmi_deep_color_info()
4749 connector->name); in drm_parse_hdmi_deep_color_info()
4756 connector->name); in drm_parse_hdmi_deep_color_info()
4763 connector->name); in drm_parse_hdmi_deep_color_info()
4768 connector->name); in drm_parse_hdmi_deep_color_info()
4773 connector->name, dc_bpc); in drm_parse_hdmi_deep_color_info()
4787 connector->name); in drm_parse_hdmi_deep_color_info()
4796 connector->name); in drm_parse_hdmi_deep_color_info()
4801 drm_parse_hdmi_vsdb_video(struct drm_connector *connector, const u8 *db) in drm_parse_hdmi_vsdb_video() argument
4803 struct drm_display_info *info = &connector->display_info; in drm_parse_hdmi_vsdb_video()
4816 drm_parse_hdmi_deep_color_info(connector, db); in drm_parse_hdmi_vsdb_video()
4819 static void drm_parse_cea_ext(struct drm_connector *connector, in drm_parse_cea_ext() argument
4822 struct drm_display_info *info = &connector->display_info; in drm_parse_cea_ext()
4846 drm_parse_hdmi_vsdb_video(connector, db); in drm_parse_cea_ext()
4848 drm_parse_hdmi_forum_vsdb(connector, db); in drm_parse_cea_ext()
4850 drm_parse_y420cmdb_bitmap(connector, db); in drm_parse_cea_ext()
4852 drm_parse_vcdb(connector, db); in drm_parse_cea_ext()
4854 drm_parse_hdr_metadata_block(connector, db); in drm_parse_cea_ext()
4862 drm_reset_display_info(struct drm_connector *connector) in drm_reset_display_info() argument
4864 struct drm_display_info *info = &connector->display_info; in drm_reset_display_info()
4882 drm_hdmi_extract_vsdbs_info(struct drm_connector *connector, in drm_hdmi_extract_vsdbs_info() argument
4901 connector, db); in drm_hdmi_extract_vsdbs_info()
4903 connector, db); in drm_hdmi_extract_vsdbs_info()
4907 parse_hdmi_hf_vsdb(connector, db); in drm_hdmi_extract_vsdbs_info()
4914 u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edid) in drm_add_display_info() argument
4916 struct drm_display_info *info = &connector->display_info; in drm_add_display_info()
4920 drm_reset_display_info(connector); in drm_add_display_info()
4935 drm_parse_cea_ext(connector, edid); in drm_add_display_info()
4948 connector->name, info->bpc); in drm_add_display_info()
4952 drm_hdmi_extract_vsdbs_info(connector, edid); in drm_add_display_info()
4954 drm_hdmi_extract_extended_blk_info(connector, edid); in drm_add_display_info()
4986 connector->name, info->bpc); in drm_add_display_info()
5064 static int add_displayid_detailed_1_modes(struct drm_connector *connector, in add_displayid_detailed_1_modes() argument
5080 newmode = drm_mode_displayid_detailed(connector->dev, timings); in add_displayid_detailed_1_modes()
5084 drm_mode_probed_add(connector, newmode); in add_displayid_detailed_1_modes()
5090 static int add_displayid_detailed_modes(struct drm_connector *connector, in add_displayid_detailed_modes() argument
5112 num_modes += add_displayid_detailed_1_modes(connector, block); in add_displayid_detailed_modes()
5130 int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid) in drm_add_edid_modes() argument
5136 clear_eld(connector); in drm_add_edid_modes()
5140 clear_eld(connector); in drm_add_edid_modes()
5141 dev_warn(connector->dev->dev, "%s: EDID invalid.\n", in drm_add_edid_modes()
5142 connector->name); in drm_add_edid_modes()
5146 drm_edid_to_eld(connector, edid); in drm_add_edid_modes()
5153 quirks = drm_add_display_info(connector, edid); in drm_add_edid_modes()
5169 num_modes += add_detailed_modes(connector, edid, quirks); in drm_add_edid_modes()
5170 num_modes += add_cvt_modes(connector, edid); in drm_add_edid_modes()
5171 num_modes += add_standard_modes(connector, edid); in drm_add_edid_modes()
5172 num_modes += add_established_modes(connector, edid); in drm_add_edid_modes()
5173 num_modes += add_cea_modes(connector, edid); in drm_add_edid_modes()
5174 num_modes += add_alternate_cea_modes(connector, edid); in drm_add_edid_modes()
5175 num_modes += add_displayid_detailed_modes(connector, edid); in drm_add_edid_modes()
5177 num_modes += add_inferred_modes(connector, edid); in drm_add_edid_modes()
5180 edid_fixup_preferred(connector, quirks); in drm_add_edid_modes()
5183 connector->display_info.bpc = 6; in drm_add_edid_modes()
5186 connector->display_info.bpc = 8; in drm_add_edid_modes()
5189 connector->display_info.bpc = 10; in drm_add_edid_modes()
5192 connector->display_info.bpc = 12; in drm_add_edid_modes()
5209 int drm_add_modes_noedid(struct drm_connector *connector, in drm_add_modes_noedid() argument
5214 struct drm_device *dev = connector->dev; in drm_add_modes_noedid()
5238 drm_mode_probed_add(connector, mode); in drm_add_modes_noedid()
5255 void drm_set_preferred_mode(struct drm_connector *connector, in drm_set_preferred_mode() argument
5260 list_for_each_entry(mode, &connector->probed_modes, head) { in drm_set_preferred_mode()
5268 static bool is_hdmi2_sink(struct drm_connector *connector) in is_hdmi2_sink() argument
5274 if (!connector) in is_hdmi2_sink()
5277 return connector->display_info.hdmi.scdc.supported || in is_hdmi2_sink()
5278 connector->display_info.color_formats & DRM_COLOR_FORMAT_YCRCB420; in is_hdmi2_sink()
5298 struct drm_connector *connector; in drm_hdmi_infoframe_set_hdr_metadata() local
5305 connector = conn_state->connector; in drm_hdmi_infoframe_set_hdr_metadata()
5312 if (!hdr_metadata || !connector) in drm_hdmi_infoframe_set_hdr_metadata()
5317 connector->hdr_sink_metadata.hdmi_type1.eotf)) { in drm_hdmi_infoframe_set_hdr_metadata()
5364 struct drm_connector *connector, in drm_hdmi_avi_infoframe_from_display_mode() argument
5387 if (!is_hdmi2_sink(connector) && frame->video_code > 64) in drm_hdmi_avi_infoframe_from_display_mode()
5522 struct drm_connector *connector, in drm_hdmi_avi_infoframe_quant_range() argument
5526 const struct drm_display_info *info = &connector->display_info; in drm_hdmi_avi_infoframe_quant_range()
5557 if (!is_hdmi2_sink(connector) || in drm_hdmi_avi_infoframe_quant_range()
5609 struct drm_connector *connector, in drm_hdmi_vendor_infoframe_from_display_mode() argument
5616 bool has_hdmi_infoframe = connector ? in drm_hdmi_vendor_infoframe_from_display_mode()
5617 connector->display_info.has_hdmi_infoframe : false; in drm_hdmi_vendor_infoframe_from_display_mode()
5655 static int drm_parse_tiled_block(struct drm_connector *connector, in drm_parse_tiled_block() argument
5672 connector->has_tile = true; in drm_parse_tiled_block()
5674 connector->tile_is_single_monitor = true; in drm_parse_tiled_block()
5676 connector->num_h_tile = num_h_tile + 1; in drm_parse_tiled_block()
5677 connector->num_v_tile = num_v_tile + 1; in drm_parse_tiled_block()
5678 connector->tile_h_loc = tile_h_loc; in drm_parse_tiled_block()
5679 connector->tile_v_loc = tile_v_loc; in drm_parse_tiled_block()
5680 connector->tile_h_size = w + 1; in drm_parse_tiled_block()
5681 connector->tile_v_size = h + 1; in drm_parse_tiled_block()
5689 tg = drm_mode_get_tile_group(connector->dev, tile->topology_id); in drm_parse_tiled_block()
5691 tg = drm_mode_create_tile_group(connector->dev, tile->topology_id); in drm_parse_tiled_block()
5696 if (connector->tile_group != tg) { in drm_parse_tiled_block()
5699 if (connector->tile_group) { in drm_parse_tiled_block()
5700 drm_mode_put_tile_group(connector->dev, connector->tile_group); in drm_parse_tiled_block()
5702 connector->tile_group = tg; in drm_parse_tiled_block()
5705 drm_mode_put_tile_group(connector->dev, tg); in drm_parse_tiled_block()
5709 static int drm_parse_display_id(struct drm_connector *connector, in drm_parse_display_id() argument
5732 ret = drm_parse_tiled_block(connector, block); in drm_parse_display_id()
5750 static void drm_get_displayid(struct drm_connector *connector, in drm_get_displayid() argument
5755 connector->has_tile = false; in drm_get_displayid()
5762 ret = drm_parse_display_id(connector, displayid, EDID_LENGTH, true); in drm_get_displayid()
5765 if (!connector->has_tile) in drm_get_displayid()
5769 if (connector->tile_group) { in drm_get_displayid()
5770 drm_mode_put_tile_group(connector->dev, connector->tile_group); in drm_get_displayid()
5771 connector->tile_group = NULL; in drm_get_displayid()