Lines Matching refs:dp_link
40 struct dp_link dp_link; member
124 struct dp_link_test_audio *req = &link->dp_link.test_audio; in dp_link_parse_audio_channel_period()
207 link->dp_link.test_audio.test_audio_pattern_type = data; in dp_link_parse_audio_pattern_type()
247 link->dp_link.test_audio.test_audio_sampling_rate = sampling_rate; in dp_link_parse_audio_mode()
248 link->dp_link.test_audio.test_audio_channel_count = channel_count; in dp_link_parse_audio_mode()
392 link->dp_link.test_video.test_video_pattern = bp; in dp_link_parse_video_pattern_params()
402 link->dp_link.test_video.test_dyn_range = in dp_link_parse_video_pattern_params()
413 link->dp_link.test_video.test_bit_depth = bp; in dp_link_parse_video_pattern_params()
417 &link->dp_link.test_video.test_h_total); in dp_link_parse_video_pattern_params()
424 &link->dp_link.test_video.test_v_total); in dp_link_parse_video_pattern_params()
431 &link->dp_link.test_video.test_h_start); in dp_link_parse_video_pattern_params()
438 &link->dp_link.test_video.test_v_start); in dp_link_parse_video_pattern_params()
445 &link->dp_link.test_video.test_hsync_pol, in dp_link_parse_video_pattern_params()
446 &link->dp_link.test_video.test_hsync_width); in dp_link_parse_video_pattern_params()
453 &link->dp_link.test_video.test_vsync_pol, in dp_link_parse_video_pattern_params()
454 &link->dp_link.test_video.test_vsync_width); in dp_link_parse_video_pattern_params()
461 &link->dp_link.test_video.test_h_width); in dp_link_parse_video_pattern_params()
468 &link->dp_link.test_video.test_v_height); in dp_link_parse_video_pattern_params()
475 &link->dp_link.test_video.test_rr_d); in dp_link_parse_video_pattern_params()
476 link->dp_link.test_video.test_rr_d &= DP_TEST_REFRESH_DENOMINATOR; in dp_link_parse_video_pattern_params()
483 &link->dp_link.test_video.test_rr_n); in dp_link_parse_video_pattern_params()
502 link->dp_link.test_video.test_video_pattern, in dp_link_parse_video_pattern_params()
503 link->dp_link.test_video.test_dyn_range, in dp_link_parse_video_pattern_params()
504 link->dp_link.test_video.test_bit_depth, in dp_link_parse_video_pattern_params()
505 link->dp_link.test_video.test_h_total, in dp_link_parse_video_pattern_params()
506 link->dp_link.test_video.test_v_total, in dp_link_parse_video_pattern_params()
507 link->dp_link.test_video.test_h_start, in dp_link_parse_video_pattern_params()
508 link->dp_link.test_video.test_v_start, in dp_link_parse_video_pattern_params()
509 link->dp_link.test_video.test_hsync_pol, in dp_link_parse_video_pattern_params()
510 link->dp_link.test_video.test_hsync_width, in dp_link_parse_video_pattern_params()
511 link->dp_link.test_video.test_vsync_pol, in dp_link_parse_video_pattern_params()
512 link->dp_link.test_video.test_vsync_width, in dp_link_parse_video_pattern_params()
513 link->dp_link.test_video.test_h_width, in dp_link_parse_video_pattern_params()
514 link->dp_link.test_video.test_v_height, in dp_link_parse_video_pattern_params()
515 link->dp_link.test_video.test_rr_d, in dp_link_parse_video_pattern_params()
516 link->dp_link.test_video.test_rr_n); in dp_link_parse_video_pattern_params()
584 link->dp_link.phy_params.phy_test_pattern_sel = data & 0x07; in dp_link_parse_phy_test_params()
695 link->dp_link.test_response = DP_TEST_NAK; in dp_link_parse_request()
698 link->dp_link.test_response = DP_TEST_ACK; in dp_link_parse_request()
700 link->dp_link.test_response = in dp_link_parse_request()
715 static int dp_link_parse_sink_count(struct dp_link *dp_link) in dp_link_parse_sink_count() argument
720 struct dp_link_private *link = container_of(dp_link, in dp_link_parse_sink_count()
721 struct dp_link_private, dp_link); in dp_link_parse_sink_count()
724 &link->dp_link.sink_count); in dp_link_parse_sink_count()
730 cp_ready = link->dp_link.sink_count & DP_SINK_CP_READY; in dp_link_parse_sink_count()
732 link->dp_link.sink_count = in dp_link_parse_sink_count()
733 DP_GET_SINK_COUNT(link->dp_link.sink_count); in dp_link_parse_sink_count()
736 link->dp_link.sink_count, cp_ready); in dp_link_parse_sink_count()
744 link->prev_sink_count = link->dp_link.sink_count; in dp_link_parse_sink_status_field()
745 dp_link_parse_sink_count(&link->dp_link); in dp_link_parse_sink_status_field()
775 link->dp_link.link_params.num_lanes = link->request.test_lane_count; in dp_link_process_link_training_request()
776 link->dp_link.link_params.rate = in dp_link_process_link_training_request()
782 bool dp_link_send_test_response(struct dp_link *dp_link) in dp_link_send_test_response() argument
787 if (!dp_link) { in dp_link_send_test_response()
792 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_send_test_response()
795 dp_link->test_response); in dp_link_send_test_response()
800 int dp_link_psm_config(struct dp_link *dp_link, in dp_link_psm_config() argument
806 if (!dp_link) { in dp_link_psm_config()
811 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_psm_config()
823 dp_link->psm_enabled = enable; in dp_link_psm_config()
829 bool dp_link_send_edid_checksum(struct dp_link *dp_link, u8 checksum) in dp_link_send_edid_checksum() argument
834 if (!dp_link) { in dp_link_send_edid_checksum()
839 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_send_edid_checksum()
865 link->dp_link.phy_params.v_level, in dp_link_parse_vx_px()
866 link->dp_link.phy_params.p_level); in dp_link_parse_vx_px()
867 link->dp_link.phy_params.v_level = in dp_link_parse_vx_px()
869 link->dp_link.phy_params.p_level = in dp_link_parse_vx_px()
872 link->dp_link.phy_params.p_level >>= DP_TRAIN_PRE_EMPHASIS_SHIFT; in dp_link_parse_vx_px()
875 link->dp_link.phy_params.v_level, in dp_link_parse_vx_px()
876 link->dp_link.phy_params.p_level); in dp_link_parse_vx_px()
904 link->dp_link.link_params.rate, in dp_link_process_phy_test_pattern_request()
905 link->dp_link.link_params.num_lanes); in dp_link_process_phy_test_pattern_request()
911 link->dp_link.link_params.num_lanes = link->request.test_lane_count; in dp_link_process_phy_test_pattern_request()
912 link->dp_link.link_params.rate = in dp_link_process_phy_test_pattern_request()
939 link->dp_link.link_params.num_lanes); in dp_link_process_link_status_update()
942 link->dp_link.link_params.num_lanes); in dp_link_process_link_status_update()
971 if (link->prev_sink_count == link->dp_link.sink_count) in dp_link_process_ds_port_status_change()
976 link->prev_sink_count = link->dp_link.sink_count; in dp_link_process_ds_port_status_change()
996 link->dp_link.test_video = (const struct dp_link_test_video){ 0 }; in dp_link_reset_data()
997 link->dp_link.test_video.test_bit_depth = DP_TEST_BIT_DEPTH_UNKNOWN; in dp_link_reset_data()
998 link->dp_link.test_audio = (const struct dp_link_test_audio){ 0 }; in dp_link_reset_data()
999 link->dp_link.phy_params.phy_test_pattern_sel = 0; in dp_link_reset_data()
1000 link->dp_link.sink_request = 0; in dp_link_reset_data()
1001 link->dp_link.test_response = 0; in dp_link_reset_data()
1012 int dp_link_process_request(struct dp_link *dp_link) in dp_link_process_request() argument
1017 if (!dp_link) { in dp_link_process_request()
1022 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_process_request()
1029 dp_link->sink_request |= DP_TEST_LINK_EDID_READ; in dp_link_process_request()
1031 dp_link->sink_request |= DS_PORT_STATUS_CHANGED; in dp_link_process_request()
1033 dp_link->sink_request |= DP_TEST_LINK_TRAINING; in dp_link_process_request()
1035 dp_link->sink_request |= DP_TEST_LINK_PHY_TEST_PATTERN; in dp_link_process_request()
1039 dp_link->sink_request |= DP_LINK_STATUS_UPDATED; in dp_link_process_request()
1043 dp_link->sink_request |= DP_TEST_LINK_VIDEO_PATTERN; in dp_link_process_request()
1046 dp_link->sink_request |= DP_TEST_LINK_AUDIO_PATTERN; in dp_link_process_request()
1052 DRM_DEBUG_DP("sink request=%#x", dp_link->sink_request); in dp_link_process_request()
1056 int dp_link_get_colorimetry_config(struct dp_link *dp_link) in dp_link_get_colorimetry_config() argument
1061 if (!dp_link) { in dp_link_get_colorimetry_config()
1066 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_get_colorimetry_config()
1073 cc = link->dp_link.test_video.test_dyn_range; in dp_link_get_colorimetry_config()
1080 int dp_link_adjust_levels(struct dp_link *dp_link, u8 *link_status) in dp_link_adjust_levels() argument
1085 if (!dp_link) { in dp_link_adjust_levels()
1091 for (i = 0; i < dp_link->link_params.num_lanes; i++) { in dp_link_adjust_levels()
1103 dp_link->phy_params.v_level = v_max >> DP_TRAIN_VOLTAGE_SWING_SHIFT; in dp_link_adjust_levels()
1104 dp_link->phy_params.p_level = p_max >> DP_TRAIN_PRE_EMPHASIS_SHIFT; in dp_link_adjust_levels()
1110 if (dp_link->phy_params.v_level > DP_TRAIN_VOLTAGE_SWING_MAX) { in dp_link_adjust_levels()
1112 dp_link->phy_params.v_level, in dp_link_adjust_levels()
1114 dp_link->phy_params.v_level = DP_TRAIN_VOLTAGE_SWING_MAX; in dp_link_adjust_levels()
1117 if (dp_link->phy_params.p_level > DP_TRAIN_PRE_EMPHASIS_MAX) { in dp_link_adjust_levels()
1119 dp_link->phy_params.p_level, in dp_link_adjust_levels()
1121 dp_link->phy_params.p_level = DP_TRAIN_PRE_EMPHASIS_MAX; in dp_link_adjust_levels()
1124 if ((dp_link->phy_params.p_level > DP_TRAIN_PRE_EMPHASIS_LVL_1) in dp_link_adjust_levels()
1125 && (dp_link->phy_params.v_level == in dp_link_adjust_levels()
1128 dp_link->phy_params.p_level, in dp_link_adjust_levels()
1130 dp_link->phy_params.p_level = DP_TRAIN_PRE_EMPHASIS_LVL_1; in dp_link_adjust_levels()
1134 dp_link->phy_params.v_level, dp_link->phy_params.p_level); in dp_link_adjust_levels()
1139 void dp_link_reset_phy_params_vx_px(struct dp_link *dp_link) in dp_link_reset_phy_params_vx_px() argument
1141 dp_link->phy_params.v_level = 0; in dp_link_reset_phy_params_vx_px()
1142 dp_link->phy_params.p_level = 0; in dp_link_reset_phy_params_vx_px()
1145 u32 dp_link_get_test_bits_depth(struct dp_link *dp_link, u32 bpp) in dp_link_get_test_bits_depth() argument
1175 struct dp_link *dp_link_get(struct device *dev, struct drm_dp_aux *aux) in dp_link_get()
1178 struct dp_link *dp_link; in dp_link_get() local
1193 dp_link = &link->dp_link; in dp_link_get()
1195 return dp_link; in dp_link_get()