Lines Matching refs:link

50 					struct msm_dp_link_info *link)  in msm_dp_aux_link_power_up()  argument
56 if (link->revision < 0x11) in msm_dp_aux_link_power_up()
78 struct msm_dp_link_info *link) in msm_dp_aux_link_power_down() argument
83 if (link->revision < 0x11) in msm_dp_aux_link_power_down()
100 static int msm_dp_link_get_period(struct msm_dp_link_private *link, int const addr) in msm_dp_link_get_period() argument
107 if (drm_dp_dpcd_readb(link->aux, addr, &data) < 0) { in msm_dp_link_get_period()
126 static int msm_dp_link_parse_audio_channel_period(struct msm_dp_link_private *link) in msm_dp_link_parse_audio_channel_period() argument
129 struct msm_dp_link_test_audio *req = &link->msm_dp_link.test_audio; in msm_dp_link_parse_audio_channel_period()
131 ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH1); in msm_dp_link_parse_audio_channel_period()
136 drm_dbg_dp(link->drm_dev, "test_audio_period_ch_1 = 0x%x\n", ret); in msm_dp_link_parse_audio_channel_period()
138 ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH2); in msm_dp_link_parse_audio_channel_period()
143 drm_dbg_dp(link->drm_dev, "test_audio_period_ch_2 = 0x%x\n", ret); in msm_dp_link_parse_audio_channel_period()
146 ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH3); in msm_dp_link_parse_audio_channel_period()
151 drm_dbg_dp(link->drm_dev, "test_audio_period_ch_3 = 0x%x\n", ret); in msm_dp_link_parse_audio_channel_period()
153 ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH4); in msm_dp_link_parse_audio_channel_period()
158 drm_dbg_dp(link->drm_dev, "test_audio_period_ch_4 = 0x%x\n", ret); in msm_dp_link_parse_audio_channel_period()
160 ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH5); in msm_dp_link_parse_audio_channel_period()
165 drm_dbg_dp(link->drm_dev, "test_audio_period_ch_5 = 0x%x\n", ret); in msm_dp_link_parse_audio_channel_period()
167 ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH6); in msm_dp_link_parse_audio_channel_period()
172 drm_dbg_dp(link->drm_dev, "test_audio_period_ch_6 = 0x%x\n", ret); in msm_dp_link_parse_audio_channel_period()
174 ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH7); in msm_dp_link_parse_audio_channel_period()
179 drm_dbg_dp(link->drm_dev, "test_audio_period_ch_7 = 0x%x\n", ret); in msm_dp_link_parse_audio_channel_period()
181 ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH8); in msm_dp_link_parse_audio_channel_period()
186 drm_dbg_dp(link->drm_dev, "test_audio_period_ch_8 = 0x%x\n", ret); in msm_dp_link_parse_audio_channel_period()
191 static int msm_dp_link_parse_audio_pattern_type(struct msm_dp_link_private *link) in msm_dp_link_parse_audio_pattern_type() argument
198 rlen = drm_dp_dpcd_readb(link->aux, in msm_dp_link_parse_audio_pattern_type()
212 link->msm_dp_link.test_audio.test_audio_pattern_type = data; in msm_dp_link_parse_audio_pattern_type()
213 drm_dbg_dp(link->drm_dev, "audio pattern type = 0x%x\n", data); in msm_dp_link_parse_audio_pattern_type()
218 static int msm_dp_link_parse_audio_mode(struct msm_dp_link_private *link) in msm_dp_link_parse_audio_mode() argument
228 rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_AUDIO_MODE, &data); in msm_dp_link_parse_audio_mode()
252 link->msm_dp_link.test_audio.test_audio_sampling_rate = sampling_rate; in msm_dp_link_parse_audio_mode()
253 link->msm_dp_link.test_audio.test_audio_channel_count = channel_count; in msm_dp_link_parse_audio_mode()
254 drm_dbg_dp(link->drm_dev, in msm_dp_link_parse_audio_mode()
261 static int msm_dp_link_parse_audio_pattern_params(struct msm_dp_link_private *link) in msm_dp_link_parse_audio_pattern_params() argument
265 ret = msm_dp_link_parse_audio_mode(link); in msm_dp_link_parse_audio_pattern_params()
269 ret = msm_dp_link_parse_audio_pattern_type(link); in msm_dp_link_parse_audio_pattern_params()
273 ret = msm_dp_link_parse_audio_channel_period(link); in msm_dp_link_parse_audio_pattern_params()
311 static int msm_dp_link_parse_timing_params1(struct msm_dp_link_private *link, in msm_dp_link_parse_timing_params1() argument
321 rlen = drm_dp_dpcd_read(link->aux, addr, bp, len); in msm_dp_link_parse_timing_params1()
332 static int msm_dp_link_parse_timing_params2(struct msm_dp_link_private *link, in msm_dp_link_parse_timing_params2() argument
343 rlen = drm_dp_dpcd_read(link->aux, addr, bp, len); in msm_dp_link_parse_timing_params2()
355 static int msm_dp_link_parse_timing_params3(struct msm_dp_link_private *link, in msm_dp_link_parse_timing_params3() argument
362 rlen = drm_dp_dpcd_read(link->aux, addr, &bp, len); in msm_dp_link_parse_timing_params3()
379 static int msm_dp_link_parse_video_pattern_params(struct msm_dp_link_private *link) in msm_dp_link_parse_video_pattern_params() argument
385 rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_PATTERN, &bp); in msm_dp_link_parse_video_pattern_params()
398 link->msm_dp_link.test_video.test_video_pattern = bp; in msm_dp_link_parse_video_pattern_params()
401 rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_MISC0, &bp); in msm_dp_link_parse_video_pattern_params()
408 link->msm_dp_link.test_video.test_dyn_range = in msm_dp_link_parse_video_pattern_params()
419 link->msm_dp_link.test_video.test_bit_depth = bp; in msm_dp_link_parse_video_pattern_params()
422 ret = msm_dp_link_parse_timing_params1(link, DP_TEST_H_TOTAL_HI, 2, in msm_dp_link_parse_video_pattern_params()
423 &link->msm_dp_link.test_video.test_h_total); in msm_dp_link_parse_video_pattern_params()
429 ret = msm_dp_link_parse_timing_params1(link, DP_TEST_V_TOTAL_HI, 2, in msm_dp_link_parse_video_pattern_params()
430 &link->msm_dp_link.test_video.test_v_total); in msm_dp_link_parse_video_pattern_params()
436 ret = msm_dp_link_parse_timing_params1(link, DP_TEST_H_START_HI, 2, in msm_dp_link_parse_video_pattern_params()
437 &link->msm_dp_link.test_video.test_h_start); in msm_dp_link_parse_video_pattern_params()
443 ret = msm_dp_link_parse_timing_params1(link, DP_TEST_V_START_HI, 2, in msm_dp_link_parse_video_pattern_params()
444 &link->msm_dp_link.test_video.test_v_start); in msm_dp_link_parse_video_pattern_params()
450 ret = msm_dp_link_parse_timing_params2(link, DP_TEST_HSYNC_HI, 2, in msm_dp_link_parse_video_pattern_params()
451 &link->msm_dp_link.test_video.test_hsync_pol, in msm_dp_link_parse_video_pattern_params()
452 &link->msm_dp_link.test_video.test_hsync_width); in msm_dp_link_parse_video_pattern_params()
458 ret = msm_dp_link_parse_timing_params2(link, DP_TEST_VSYNC_HI, 2, in msm_dp_link_parse_video_pattern_params()
459 &link->msm_dp_link.test_video.test_vsync_pol, in msm_dp_link_parse_video_pattern_params()
460 &link->msm_dp_link.test_video.test_vsync_width); in msm_dp_link_parse_video_pattern_params()
466 ret = msm_dp_link_parse_timing_params1(link, DP_TEST_H_WIDTH_HI, 2, in msm_dp_link_parse_video_pattern_params()
467 &link->msm_dp_link.test_video.test_h_width); in msm_dp_link_parse_video_pattern_params()
473 ret = msm_dp_link_parse_timing_params1(link, DP_TEST_V_HEIGHT_HI, 2, in msm_dp_link_parse_video_pattern_params()
474 &link->msm_dp_link.test_video.test_v_height); in msm_dp_link_parse_video_pattern_params()
480 ret = msm_dp_link_parse_timing_params3(link, DP_TEST_MISC1, in msm_dp_link_parse_video_pattern_params()
481 &link->msm_dp_link.test_video.test_rr_d); in msm_dp_link_parse_video_pattern_params()
482 link->msm_dp_link.test_video.test_rr_d &= DP_TEST_REFRESH_DENOMINATOR; in msm_dp_link_parse_video_pattern_params()
488 ret = msm_dp_link_parse_timing_params3(link, DP_TEST_REFRESH_RATE_NUMERATOR, in msm_dp_link_parse_video_pattern_params()
489 &link->msm_dp_link.test_video.test_rr_n); in msm_dp_link_parse_video_pattern_params()
495 drm_dbg_dp(link->drm_dev, in msm_dp_link_parse_video_pattern_params()
509 link->msm_dp_link.test_video.test_video_pattern, in msm_dp_link_parse_video_pattern_params()
510 link->msm_dp_link.test_video.test_dyn_range, in msm_dp_link_parse_video_pattern_params()
511 link->msm_dp_link.test_video.test_bit_depth, in msm_dp_link_parse_video_pattern_params()
512 link->msm_dp_link.test_video.test_h_total, in msm_dp_link_parse_video_pattern_params()
513 link->msm_dp_link.test_video.test_v_total, in msm_dp_link_parse_video_pattern_params()
514 link->msm_dp_link.test_video.test_h_start, in msm_dp_link_parse_video_pattern_params()
515 link->msm_dp_link.test_video.test_v_start, in msm_dp_link_parse_video_pattern_params()
516 link->msm_dp_link.test_video.test_hsync_pol, in msm_dp_link_parse_video_pattern_params()
517 link->msm_dp_link.test_video.test_hsync_width, in msm_dp_link_parse_video_pattern_params()
518 link->msm_dp_link.test_video.test_vsync_pol, in msm_dp_link_parse_video_pattern_params()
519 link->msm_dp_link.test_video.test_vsync_width, in msm_dp_link_parse_video_pattern_params()
520 link->msm_dp_link.test_video.test_h_width, in msm_dp_link_parse_video_pattern_params()
521 link->msm_dp_link.test_video.test_v_height, in msm_dp_link_parse_video_pattern_params()
522 link->msm_dp_link.test_video.test_rr_d, in msm_dp_link_parse_video_pattern_params()
523 link->msm_dp_link.test_video.test_rr_n); in msm_dp_link_parse_video_pattern_params()
536 static int msm_dp_link_parse_link_training_params(struct msm_dp_link_private *link) in msm_dp_link_parse_link_training_params() argument
541 rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_LINK_RATE, &bp); in msm_dp_link_parse_link_training_params()
552 link->request.test_link_rate = bp; in msm_dp_link_parse_link_training_params()
553 drm_dbg_dp(link->drm_dev, "link rate = 0x%x\n", in msm_dp_link_parse_link_training_params()
554 link->request.test_link_rate); in msm_dp_link_parse_link_training_params()
556 rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_LANE_COUNT, &bp); in msm_dp_link_parse_link_training_params()
568 link->request.test_lane_count = bp; in msm_dp_link_parse_link_training_params()
569 drm_dbg_dp(link->drm_dev, "lane count = 0x%x\n", in msm_dp_link_parse_link_training_params()
570 link->request.test_lane_count); in msm_dp_link_parse_link_training_params()
581 static int msm_dp_link_parse_phy_test_params(struct msm_dp_link_private *link) in msm_dp_link_parse_phy_test_params() argument
586 rlen = drm_dp_dpcd_readb(link->aux, DP_PHY_TEST_PATTERN, in msm_dp_link_parse_phy_test_params()
593 link->msm_dp_link.phy_params.phy_test_pattern_sel = data & 0x07; in msm_dp_link_parse_phy_test_params()
595 drm_dbg_dp(link->drm_dev, "phy_test_pattern_sel = 0x%x\n", data); in msm_dp_link_parse_phy_test_params()
617 static bool msm_dp_link_is_video_audio_test_requested(u32 link) in msm_dp_link_is_video_audio_test_requested() argument
623 return ((link & video_audio_test) && in msm_dp_link_is_video_audio_test_requested()
624 !(link & ~video_audio_test)); in msm_dp_link_is_video_audio_test_requested()
634 static int msm_dp_link_parse_request(struct msm_dp_link_private *link) in msm_dp_link_parse_request() argument
644 rlen = drm_dp_dpcd_readb(link->aux, in msm_dp_link_parse_request()
651 drm_dbg_dp(link->drm_dev, "device service irq vector = 0x%x\n", data); in msm_dp_link_parse_request()
654 drm_dbg_dp(link->drm_dev, "no test requested\n"); in msm_dp_link_parse_request()
662 rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_REQUEST, &data); in msm_dp_link_parse_request()
669 drm_dbg_dp(link->drm_dev, "link 0x%x not supported\n", data); in msm_dp_link_parse_request()
673 drm_dbg_dp(link->drm_dev, "Test:(0x%x) requested\n", data); in msm_dp_link_parse_request()
674 link->request.test_requested = data; in msm_dp_link_parse_request()
675 if (link->request.test_requested == DP_TEST_LINK_PHY_TEST_PATTERN) { in msm_dp_link_parse_request()
676 ret = msm_dp_link_parse_phy_test_params(link); in msm_dp_link_parse_request()
679 ret = msm_dp_link_parse_link_training_params(link); in msm_dp_link_parse_request()
684 if (link->request.test_requested == DP_TEST_LINK_TRAINING) { in msm_dp_link_parse_request()
685 ret = msm_dp_link_parse_link_training_params(link); in msm_dp_link_parse_request()
691 link->request.test_requested)) { in msm_dp_link_parse_request()
692 ret = msm_dp_link_parse_video_pattern_params(link); in msm_dp_link_parse_request()
696 ret = msm_dp_link_parse_audio_pattern_params(link); in msm_dp_link_parse_request()
704 link->msm_dp_link.test_response = DP_TEST_NAK; in msm_dp_link_parse_request()
706 if (link->request.test_requested != DP_TEST_LINK_EDID_READ) in msm_dp_link_parse_request()
707 link->msm_dp_link.test_response = DP_TEST_ACK; in msm_dp_link_parse_request()
709 link->msm_dp_link.test_response = in msm_dp_link_parse_request()
716 static int msm_dp_link_parse_sink_status_field(struct msm_dp_link_private *link) in msm_dp_link_parse_sink_status_field() argument
720 link->prev_sink_count = link->msm_dp_link.sink_count; in msm_dp_link_parse_sink_status_field()
721 ret = drm_dp_read_sink_count(link->aux); in msm_dp_link_parse_sink_status_field()
726 link->msm_dp_link.sink_count = ret; in msm_dp_link_parse_sink_status_field()
728 ret = drm_dp_dpcd_read_link_status(link->aux, in msm_dp_link_parse_sink_status_field()
729 link->link_status); in msm_dp_link_parse_sink_status_field()
735 return msm_dp_link_parse_request(link); in msm_dp_link_parse_sink_status_field()
749 static int msm_dp_link_process_link_training_request(struct msm_dp_link_private *link) in msm_dp_link_process_link_training_request() argument
751 if (link->request.test_requested != DP_TEST_LINK_TRAINING) in msm_dp_link_process_link_training_request()
754 drm_dbg_dp(link->drm_dev, in msm_dp_link_process_link_training_request()
757 link->request.test_link_rate, in msm_dp_link_process_link_training_request()
758 link->request.test_lane_count); in msm_dp_link_process_link_training_request()
760 link->msm_dp_link.link_params.num_lanes = link->request.test_lane_count; in msm_dp_link_process_link_training_request()
761 link->msm_dp_link.link_params.rate = in msm_dp_link_process_link_training_request()
762 drm_dp_bw_code_to_link_rate(link->request.test_link_rate); in msm_dp_link_process_link_training_request()
769 struct msm_dp_link_private *link = NULL; in msm_dp_link_send_test_response() local
777 link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link); in msm_dp_link_send_test_response()
779 ret = drm_dp_dpcd_writeb(link->aux, DP_TEST_RESPONSE, in msm_dp_link_send_test_response()
788 struct msm_dp_link_private *link = NULL; in msm_dp_link_psm_config() local
796 link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link); in msm_dp_link_psm_config()
798 mutex_lock(&link->psm_mutex); in msm_dp_link_psm_config()
800 ret = msm_dp_aux_link_power_down(link->aux, link_info); in msm_dp_link_psm_config()
802 ret = msm_dp_aux_link_power_up(link->aux, link_info); in msm_dp_link_psm_config()
808 mutex_unlock(&link->psm_mutex); in msm_dp_link_psm_config()
814 struct msm_dp_link_private *link = NULL; in msm_dp_link_send_edid_checksum() local
822 link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link); in msm_dp_link_send_edid_checksum()
824 ret = drm_dp_dpcd_writeb(link->aux, DP_TEST_EDID_CHECKSUM, in msm_dp_link_send_edid_checksum()
829 static void msm_dp_link_parse_vx_px(struct msm_dp_link_private *link) in msm_dp_link_parse_vx_px() argument
831 drm_dbg_dp(link->drm_dev, "vx: 0=%d, 1=%d, 2=%d, 3=%d\n", in msm_dp_link_parse_vx_px()
832 drm_dp_get_adjust_request_voltage(link->link_status, 0), in msm_dp_link_parse_vx_px()
833 drm_dp_get_adjust_request_voltage(link->link_status, 1), in msm_dp_link_parse_vx_px()
834 drm_dp_get_adjust_request_voltage(link->link_status, 2), in msm_dp_link_parse_vx_px()
835 drm_dp_get_adjust_request_voltage(link->link_status, 3)); in msm_dp_link_parse_vx_px()
837 drm_dbg_dp(link->drm_dev, "px: 0=%d, 1=%d, 2=%d, 3=%d\n", in msm_dp_link_parse_vx_px()
838 drm_dp_get_adjust_request_pre_emphasis(link->link_status, 0), in msm_dp_link_parse_vx_px()
839 drm_dp_get_adjust_request_pre_emphasis(link->link_status, 1), in msm_dp_link_parse_vx_px()
840 drm_dp_get_adjust_request_pre_emphasis(link->link_status, 2), in msm_dp_link_parse_vx_px()
841 drm_dp_get_adjust_request_pre_emphasis(link->link_status, 3)); in msm_dp_link_parse_vx_px()
847 drm_dbg_dp(link->drm_dev, in msm_dp_link_parse_vx_px()
849 link->msm_dp_link.phy_params.v_level, in msm_dp_link_parse_vx_px()
850 link->msm_dp_link.phy_params.p_level); in msm_dp_link_parse_vx_px()
851 link->msm_dp_link.phy_params.v_level = in msm_dp_link_parse_vx_px()
852 drm_dp_get_adjust_request_voltage(link->link_status, 0); in msm_dp_link_parse_vx_px()
853 link->msm_dp_link.phy_params.p_level = in msm_dp_link_parse_vx_px()
854 drm_dp_get_adjust_request_pre_emphasis(link->link_status, 0); in msm_dp_link_parse_vx_px()
856 link->msm_dp_link.phy_params.p_level >>= DP_TRAIN_PRE_EMPHASIS_SHIFT; in msm_dp_link_parse_vx_px()
858 drm_dbg_dp(link->drm_dev, in msm_dp_link_parse_vx_px()
860 link->msm_dp_link.phy_params.v_level, in msm_dp_link_parse_vx_px()
861 link->msm_dp_link.phy_params.p_level); in msm_dp_link_parse_vx_px()
873 struct msm_dp_link_private *link) in msm_dp_link_process_phy_test_pattern_request() argument
875 if (!(link->request.test_requested & DP_TEST_LINK_PHY_TEST_PATTERN)) { in msm_dp_link_process_phy_test_pattern_request()
876 drm_dbg_dp(link->drm_dev, "no phy test\n"); in msm_dp_link_process_phy_test_pattern_request()
880 if (!is_link_rate_valid(link->request.test_link_rate) || in msm_dp_link_process_phy_test_pattern_request()
881 !is_lane_count_valid(link->request.test_lane_count)) { in msm_dp_link_process_phy_test_pattern_request()
883 link->request.test_link_rate, in msm_dp_link_process_phy_test_pattern_request()
884 link->request.test_lane_count); in msm_dp_link_process_phy_test_pattern_request()
888 drm_dbg_dp(link->drm_dev, in msm_dp_link_process_phy_test_pattern_request()
890 link->msm_dp_link.link_params.rate, in msm_dp_link_process_phy_test_pattern_request()
891 link->msm_dp_link.link_params.num_lanes); in msm_dp_link_process_phy_test_pattern_request()
893 drm_dbg_dp(link->drm_dev, in msm_dp_link_process_phy_test_pattern_request()
895 link->request.test_link_rate, in msm_dp_link_process_phy_test_pattern_request()
896 link->request.test_lane_count); in msm_dp_link_process_phy_test_pattern_request()
898 link->msm_dp_link.link_params.num_lanes = link->request.test_lane_count; in msm_dp_link_process_phy_test_pattern_request()
899 link->msm_dp_link.link_params.rate = in msm_dp_link_process_phy_test_pattern_request()
900 drm_dp_bw_code_to_link_rate(link->request.test_link_rate); in msm_dp_link_process_phy_test_pattern_request()
902 msm_dp_link_parse_vx_px(link); in msm_dp_link_process_phy_test_pattern_request()
907 static bool msm_dp_link_read_psr_error_status(struct msm_dp_link_private *link) in msm_dp_link_read_psr_error_status() argument
911 drm_dp_dpcd_read(link->aux, DP_PSR_ERROR_STATUS, &status, 1); in msm_dp_link_read_psr_error_status()
925 static bool msm_dp_link_psr_capability_changed(struct msm_dp_link_private *link) in msm_dp_link_psr_capability_changed() argument
929 drm_dp_dpcd_read(link->aux, DP_PSR_ESI, &status, 1); in msm_dp_link_psr_capability_changed()
932 drm_dbg_dp(link->drm_dev, "PSR Capability Change\n"); in msm_dp_link_psr_capability_changed()
955 static int msm_dp_link_process_link_status_update(struct msm_dp_link_private *link) in msm_dp_link_process_link_status_update() argument
957 bool channel_eq_done = drm_dp_channel_eq_ok(link->link_status, in msm_dp_link_process_link_status_update()
958 link->msm_dp_link.link_params.num_lanes); in msm_dp_link_process_link_status_update()
960 bool clock_recovery_done = drm_dp_clock_recovery_ok(link->link_status, in msm_dp_link_process_link_status_update()
961 link->msm_dp_link.link_params.num_lanes); in msm_dp_link_process_link_status_update()
963 drm_dbg_dp(link->drm_dev, in msm_dp_link_process_link_status_update()
984 static int msm_dp_link_process_ds_port_status_change(struct msm_dp_link_private *link) in msm_dp_link_process_ds_port_status_change() argument
986 if (get_link_status(link->link_status, DP_LANE_ALIGN_STATUS_UPDATED) & in msm_dp_link_process_ds_port_status_change()
990 if (link->prev_sink_count == link->msm_dp_link.sink_count) in msm_dp_link_process_ds_port_status_change()
995 link->prev_sink_count = link->msm_dp_link.sink_count; in msm_dp_link_process_ds_port_status_change()
1000 static bool msm_dp_link_is_video_pattern_requested(struct msm_dp_link_private *link) in msm_dp_link_is_video_pattern_requested() argument
1002 return (link->request.test_requested & DP_TEST_LINK_VIDEO_PATTERN) in msm_dp_link_is_video_pattern_requested()
1003 && !(link->request.test_requested & in msm_dp_link_is_video_pattern_requested()
1007 static bool msm_dp_link_is_audio_pattern_requested(struct msm_dp_link_private *link) in msm_dp_link_is_audio_pattern_requested() argument
1009 return (link->request.test_requested & DP_TEST_LINK_AUDIO_PATTERN); in msm_dp_link_is_audio_pattern_requested()
1012 static void msm_dp_link_reset_data(struct msm_dp_link_private *link) in msm_dp_link_reset_data() argument
1014 link->request = (const struct msm_dp_link_request){ 0 }; in msm_dp_link_reset_data()
1015 link->msm_dp_link.test_video = (const struct msm_dp_link_test_video){ 0 }; in msm_dp_link_reset_data()
1016 link->msm_dp_link.test_video.test_bit_depth = DP_TEST_BIT_DEPTH_UNKNOWN; in msm_dp_link_reset_data()
1017 link->msm_dp_link.test_audio = (const struct msm_dp_link_test_audio){ 0 }; in msm_dp_link_reset_data()
1018 link->msm_dp_link.phy_params.phy_test_pattern_sel = 0; in msm_dp_link_reset_data()
1019 link->msm_dp_link.sink_request = 0; in msm_dp_link_reset_data()
1020 link->msm_dp_link.test_response = 0; in msm_dp_link_reset_data()
1034 struct msm_dp_link_private *link; in msm_dp_link_process_request() local
1041 link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link); in msm_dp_link_process_request()
1043 msm_dp_link_reset_data(link); in msm_dp_link_process_request()
1045 ret = msm_dp_link_parse_sink_status_field(link); in msm_dp_link_process_request()
1049 if (link->request.test_requested == DP_TEST_LINK_EDID_READ) { in msm_dp_link_process_request()
1051 } else if (!msm_dp_link_process_ds_port_status_change(link)) { in msm_dp_link_process_request()
1053 } else if (!msm_dp_link_process_link_training_request(link)) { in msm_dp_link_process_request()
1055 } else if (!msm_dp_link_process_phy_test_pattern_request(link)) { in msm_dp_link_process_request()
1057 } else if (msm_dp_link_read_psr_error_status(link)) { in msm_dp_link_process_request()
1059 } else if (msm_dp_link_psr_capability_changed(link)) { in msm_dp_link_process_request()
1060 drm_dbg_dp(link->drm_dev, "PSR Capability changed\n"); in msm_dp_link_process_request()
1062 ret = msm_dp_link_process_link_status_update(link); in msm_dp_link_process_request()
1066 if (msm_dp_link_is_video_pattern_requested(link)) { in msm_dp_link_process_request()
1070 if (msm_dp_link_is_audio_pattern_requested(link)) { in msm_dp_link_process_request()
1077 drm_dbg_dp(link->drm_dev, "sink request=%#x\n", in msm_dp_link_process_request()
1085 struct msm_dp_link_private *link; in msm_dp_link_get_colorimetry_config() local
1092 link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link); in msm_dp_link_get_colorimetry_config()
1098 if (msm_dp_link_is_video_pattern_requested(link)) { in msm_dp_link_get_colorimetry_config()
1099 if (link->msm_dp_link.test_video.test_dyn_range & in msm_dp_link_get_colorimetry_config()
1112 struct msm_dp_link_private *link; in msm_dp_link_adjust_levels() local
1119 link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link); in msm_dp_link_adjust_levels()
1126 drm_dbg_dp(link->drm_dev, in msm_dp_link_adjust_levels()
1143 drm_dbg_dp(link->drm_dev, in msm_dp_link_adjust_levels()
1151 drm_dbg_dp(link->drm_dev, in msm_dp_link_adjust_levels()
1160 drm_dbg_dp(link->drm_dev, in msm_dp_link_adjust_levels()
1167 drm_dbg_dp(link->drm_dev, "adjusted: v_level=%d, p_level=%d\n", in msm_dp_link_adjust_levels()
1182 struct msm_dp_link_private *link; in msm_dp_link_get_test_bits_depth() local
1184 link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link); in msm_dp_link_get_test_bits_depth()
1202 drm_dbg_dp(link->drm_dev, "bpp=%d not supported, use bpc=8\n", in msm_dp_link_get_test_bits_depth()
1215 struct msm_dp_link_private *link; in msm_dp_link_get() local
1223 link = devm_kzalloc(dev, sizeof(*link), GFP_KERNEL); in msm_dp_link_get()
1224 if (!link) in msm_dp_link_get()
1227 link->aux = aux; in msm_dp_link_get()
1229 mutex_init(&link->psm_mutex); in msm_dp_link_get()
1230 msm_dp_link = &link->msm_dp_link; in msm_dp_link_get()