Lines Matching refs:dp_link

41 	struct dp_link dp_link;  member
128 struct dp_link_test_audio *req = &link->dp_link.test_audio; in dp_link_parse_audio_channel_period()
211 link->dp_link.test_audio.test_audio_pattern_type = data; in dp_link_parse_audio_pattern_type()
251 link->dp_link.test_audio.test_audio_sampling_rate = sampling_rate; in dp_link_parse_audio_mode()
252 link->dp_link.test_audio.test_audio_channel_count = channel_count; in dp_link_parse_audio_mode()
397 link->dp_link.test_video.test_video_pattern = bp; in dp_link_parse_video_pattern_params()
407 link->dp_link.test_video.test_dyn_range = in dp_link_parse_video_pattern_params()
418 link->dp_link.test_video.test_bit_depth = bp; in dp_link_parse_video_pattern_params()
422 &link->dp_link.test_video.test_h_total); in dp_link_parse_video_pattern_params()
429 &link->dp_link.test_video.test_v_total); in dp_link_parse_video_pattern_params()
436 &link->dp_link.test_video.test_h_start); in dp_link_parse_video_pattern_params()
443 &link->dp_link.test_video.test_v_start); in dp_link_parse_video_pattern_params()
450 &link->dp_link.test_video.test_hsync_pol, in dp_link_parse_video_pattern_params()
451 &link->dp_link.test_video.test_hsync_width); in dp_link_parse_video_pattern_params()
458 &link->dp_link.test_video.test_vsync_pol, in dp_link_parse_video_pattern_params()
459 &link->dp_link.test_video.test_vsync_width); in dp_link_parse_video_pattern_params()
466 &link->dp_link.test_video.test_h_width); in dp_link_parse_video_pattern_params()
473 &link->dp_link.test_video.test_v_height); in dp_link_parse_video_pattern_params()
480 &link->dp_link.test_video.test_rr_d); in dp_link_parse_video_pattern_params()
481 link->dp_link.test_video.test_rr_d &= DP_TEST_REFRESH_DENOMINATOR; in dp_link_parse_video_pattern_params()
488 &link->dp_link.test_video.test_rr_n); in dp_link_parse_video_pattern_params()
508 link->dp_link.test_video.test_video_pattern, in dp_link_parse_video_pattern_params()
509 link->dp_link.test_video.test_dyn_range, in dp_link_parse_video_pattern_params()
510 link->dp_link.test_video.test_bit_depth, in dp_link_parse_video_pattern_params()
511 link->dp_link.test_video.test_h_total, in dp_link_parse_video_pattern_params()
512 link->dp_link.test_video.test_v_total, in dp_link_parse_video_pattern_params()
513 link->dp_link.test_video.test_h_start, in dp_link_parse_video_pattern_params()
514 link->dp_link.test_video.test_v_start, in dp_link_parse_video_pattern_params()
515 link->dp_link.test_video.test_hsync_pol, in dp_link_parse_video_pattern_params()
516 link->dp_link.test_video.test_hsync_width, in dp_link_parse_video_pattern_params()
517 link->dp_link.test_video.test_vsync_pol, in dp_link_parse_video_pattern_params()
518 link->dp_link.test_video.test_vsync_width, in dp_link_parse_video_pattern_params()
519 link->dp_link.test_video.test_h_width, in dp_link_parse_video_pattern_params()
520 link->dp_link.test_video.test_v_height, in dp_link_parse_video_pattern_params()
521 link->dp_link.test_video.test_rr_d, in dp_link_parse_video_pattern_params()
522 link->dp_link.test_video.test_rr_n); in dp_link_parse_video_pattern_params()
592 link->dp_link.phy_params.phy_test_pattern_sel = data & 0x07; in dp_link_parse_phy_test_params()
703 link->dp_link.test_response = DP_TEST_NAK; in dp_link_parse_request()
706 link->dp_link.test_response = DP_TEST_ACK; in dp_link_parse_request()
708 link->dp_link.test_response = in dp_link_parse_request()
723 static int dp_link_parse_sink_count(struct dp_link *dp_link) in dp_link_parse_sink_count() argument
728 struct dp_link_private *link = container_of(dp_link, in dp_link_parse_sink_count()
729 struct dp_link_private, dp_link); in dp_link_parse_sink_count()
732 &link->dp_link.sink_count); in dp_link_parse_sink_count()
738 cp_ready = link->dp_link.sink_count & DP_SINK_CP_READY; in dp_link_parse_sink_count()
740 link->dp_link.sink_count = in dp_link_parse_sink_count()
741 DP_GET_SINK_COUNT(link->dp_link.sink_count); in dp_link_parse_sink_count()
744 link->dp_link.sink_count, cp_ready); in dp_link_parse_sink_count()
752 link->prev_sink_count = link->dp_link.sink_count; in dp_link_parse_sink_status_field()
753 len = dp_link_parse_sink_count(&link->dp_link); in dp_link_parse_sink_status_field()
791 link->dp_link.link_params.num_lanes = link->request.test_lane_count; in dp_link_process_link_training_request()
792 link->dp_link.link_params.rate = in dp_link_process_link_training_request()
798 bool dp_link_send_test_response(struct dp_link *dp_link) in dp_link_send_test_response() argument
803 if (!dp_link) { in dp_link_send_test_response()
808 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_send_test_response()
811 dp_link->test_response); in dp_link_send_test_response()
816 int dp_link_psm_config(struct dp_link *dp_link, in dp_link_psm_config() argument
822 if (!dp_link) { in dp_link_psm_config()
827 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_psm_config()
839 dp_link->psm_enabled = enable; in dp_link_psm_config()
845 bool dp_link_send_edid_checksum(struct dp_link *dp_link, u8 checksum) in dp_link_send_edid_checksum() argument
850 if (!dp_link) { in dp_link_send_edid_checksum()
855 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_send_edid_checksum()
882 link->dp_link.phy_params.v_level, in dp_link_parse_vx_px()
883 link->dp_link.phy_params.p_level); in dp_link_parse_vx_px()
884 link->dp_link.phy_params.v_level = in dp_link_parse_vx_px()
886 link->dp_link.phy_params.p_level = in dp_link_parse_vx_px()
889 link->dp_link.phy_params.p_level >>= DP_TRAIN_PRE_EMPHASIS_SHIFT; in dp_link_parse_vx_px()
893 link->dp_link.phy_params.v_level, in dp_link_parse_vx_px()
894 link->dp_link.phy_params.p_level); in dp_link_parse_vx_px()
923 link->dp_link.link_params.rate, in dp_link_process_phy_test_pattern_request()
924 link->dp_link.link_params.num_lanes); in dp_link_process_phy_test_pattern_request()
931 link->dp_link.link_params.num_lanes = link->request.test_lane_count; in dp_link_process_phy_test_pattern_request()
932 link->dp_link.link_params.rate = in dp_link_process_phy_test_pattern_request()
991 link->dp_link.link_params.num_lanes); in dp_link_process_link_status_update()
994 link->dp_link.link_params.num_lanes); in dp_link_process_link_status_update()
1023 if (link->prev_sink_count == link->dp_link.sink_count) in dp_link_process_ds_port_status_change()
1028 link->prev_sink_count = link->dp_link.sink_count; in dp_link_process_ds_port_status_change()
1048 link->dp_link.test_video = (const struct dp_link_test_video){ 0 }; in dp_link_reset_data()
1049 link->dp_link.test_video.test_bit_depth = DP_TEST_BIT_DEPTH_UNKNOWN; in dp_link_reset_data()
1050 link->dp_link.test_audio = (const struct dp_link_test_audio){ 0 }; in dp_link_reset_data()
1051 link->dp_link.phy_params.phy_test_pattern_sel = 0; in dp_link_reset_data()
1052 link->dp_link.sink_request = 0; in dp_link_reset_data()
1053 link->dp_link.test_response = 0; in dp_link_reset_data()
1064 int dp_link_process_request(struct dp_link *dp_link) in dp_link_process_request() argument
1069 if (!dp_link) { in dp_link_process_request()
1074 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_process_request()
1083 dp_link->sink_request |= DP_TEST_LINK_EDID_READ; in dp_link_process_request()
1085 dp_link->sink_request |= DS_PORT_STATUS_CHANGED; in dp_link_process_request()
1087 dp_link->sink_request |= DP_TEST_LINK_TRAINING; in dp_link_process_request()
1089 dp_link->sink_request |= DP_TEST_LINK_PHY_TEST_PATTERN; in dp_link_process_request()
1097 dp_link->sink_request |= DP_LINK_STATUS_UPDATED; in dp_link_process_request()
1101 dp_link->sink_request |= DP_TEST_LINK_VIDEO_PATTERN; in dp_link_process_request()
1104 dp_link->sink_request |= DP_TEST_LINK_AUDIO_PATTERN; in dp_link_process_request()
1111 dp_link->sink_request); in dp_link_process_request()
1115 int dp_link_get_colorimetry_config(struct dp_link *dp_link) in dp_link_get_colorimetry_config() argument
1120 if (!dp_link) { in dp_link_get_colorimetry_config()
1125 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_get_colorimetry_config()
1132 cc = link->dp_link.test_video.test_dyn_range; in dp_link_get_colorimetry_config()
1139 int dp_link_adjust_levels(struct dp_link *dp_link, u8 *link_status) in dp_link_adjust_levels() argument
1145 if (!dp_link) { in dp_link_adjust_levels()
1150 link = container_of(dp_link, struct dp_link_private, dp_link); in dp_link_adjust_levels()
1153 for (i = 0; i < dp_link->link_params.num_lanes; i++) { in dp_link_adjust_levels()
1166 dp_link->phy_params.v_level = v_max >> DP_TRAIN_VOLTAGE_SWING_SHIFT; in dp_link_adjust_levels()
1167 dp_link->phy_params.p_level = p_max >> DP_TRAIN_PRE_EMPHASIS_SHIFT; in dp_link_adjust_levels()
1173 if (dp_link->phy_params.v_level > DP_TRAIN_VOLTAGE_SWING_MAX) { in dp_link_adjust_levels()
1176 dp_link->phy_params.v_level, in dp_link_adjust_levels()
1178 dp_link->phy_params.v_level = DP_TRAIN_VOLTAGE_SWING_MAX; in dp_link_adjust_levels()
1181 if (dp_link->phy_params.p_level > DP_TRAIN_PRE_EMPHASIS_MAX) { in dp_link_adjust_levels()
1184 dp_link->phy_params.p_level, in dp_link_adjust_levels()
1186 dp_link->phy_params.p_level = DP_TRAIN_PRE_EMPHASIS_MAX; in dp_link_adjust_levels()
1189 if ((dp_link->phy_params.p_level > DP_TRAIN_PRE_EMPHASIS_LVL_1) in dp_link_adjust_levels()
1190 && (dp_link->phy_params.v_level == in dp_link_adjust_levels()
1194 dp_link->phy_params.p_level, in dp_link_adjust_levels()
1196 dp_link->phy_params.p_level = DP_TRAIN_PRE_EMPHASIS_LVL_1; in dp_link_adjust_levels()
1200 dp_link->phy_params.v_level, dp_link->phy_params.p_level); in dp_link_adjust_levels()
1205 void dp_link_reset_phy_params_vx_px(struct dp_link *dp_link) in dp_link_reset_phy_params_vx_px() argument
1207 dp_link->phy_params.v_level = 0; in dp_link_reset_phy_params_vx_px()
1208 dp_link->phy_params.p_level = 0; in dp_link_reset_phy_params_vx_px()
1211 u32 dp_link_get_test_bits_depth(struct dp_link *dp_link, u32 bpp) in dp_link_get_test_bits_depth() argument
1241 struct dp_link *dp_link_get(struct device *dev, struct drm_dp_aux *aux) in dp_link_get()
1244 struct dp_link *dp_link; in dp_link_get() local
1259 dp_link = &link->dp_link; in dp_link_get()
1261 return dp_link; in dp_link_get()