diff options
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 37 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 13 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_lspcon.c | 2 |
3 files changed, 6 insertions, 46 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index ee77b519835c..5ce45d98da78 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -1507,37 +1507,6 @@ static void intel_dp_print_rates(struct intel_dp *intel_dp) | |||
1507 | DRM_DEBUG_KMS("common rates: %s\n", str); | 1507 | DRM_DEBUG_KMS("common rates: %s\n", str); |
1508 | } | 1508 | } |
1509 | 1509 | ||
1510 | bool | ||
1511 | __intel_dp_read_desc(struct intel_dp *intel_dp, struct intel_dp_desc *desc) | ||
1512 | { | ||
1513 | u32 base = drm_dp_is_branch(intel_dp->dpcd) ? DP_BRANCH_OUI : | ||
1514 | DP_SINK_OUI; | ||
1515 | |||
1516 | return drm_dp_dpcd_read(&intel_dp->aux, base, desc, sizeof(*desc)) == | ||
1517 | sizeof(*desc); | ||
1518 | } | ||
1519 | |||
1520 | bool intel_dp_read_desc(struct intel_dp *intel_dp) | ||
1521 | { | ||
1522 | struct intel_dp_desc *desc = &intel_dp->desc; | ||
1523 | bool oui_sup = intel_dp->dpcd[DP_DOWN_STREAM_PORT_COUNT] & | ||
1524 | DP_OUI_SUPPORT; | ||
1525 | int dev_id_len; | ||
1526 | |||
1527 | if (!__intel_dp_read_desc(intel_dp, desc)) | ||
1528 | return false; | ||
1529 | |||
1530 | dev_id_len = strnlen(desc->device_id, sizeof(desc->device_id)); | ||
1531 | DRM_DEBUG_KMS("DP %s: OUI %*phD%s dev-ID %*pE HW-rev %d.%d SW-rev %d.%d\n", | ||
1532 | drm_dp_is_branch(intel_dp->dpcd) ? "branch" : "sink", | ||
1533 | (int)sizeof(desc->oui), desc->oui, oui_sup ? "" : "(NS)", | ||
1534 | dev_id_len, desc->device_id, | ||
1535 | desc->hw_rev >> 4, desc->hw_rev & 0xf, | ||
1536 | desc->sw_major_rev, desc->sw_minor_rev); | ||
1537 | |||
1538 | return true; | ||
1539 | } | ||
1540 | |||
1541 | static int rate_to_index(int find, const int *rates) | 1510 | static int rate_to_index(int find, const int *rates) |
1542 | { | 1511 | { |
1543 | int i = 0; | 1512 | int i = 0; |
@@ -3622,7 +3591,8 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp) | |||
3622 | if (!intel_dp_read_dpcd(intel_dp)) | 3591 | if (!intel_dp_read_dpcd(intel_dp)) |
3623 | return false; | 3592 | return false; |
3624 | 3593 | ||
3625 | intel_dp_read_desc(intel_dp); | 3594 | drm_dp_read_desc(&intel_dp->aux, &intel_dp->desc, |
3595 | drm_dp_is_branch(intel_dp->dpcd)); | ||
3626 | 3596 | ||
3627 | if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11) | 3597 | if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11) |
3628 | dev_priv->no_aux_handshake = intel_dp->dpcd[DP_MAX_DOWNSPREAD] & | 3598 | dev_priv->no_aux_handshake = intel_dp->dpcd[DP_MAX_DOWNSPREAD] & |
@@ -4624,7 +4594,8 @@ intel_dp_long_pulse(struct intel_connector *intel_connector) | |||
4624 | 4594 | ||
4625 | intel_dp_print_rates(intel_dp); | 4595 | intel_dp_print_rates(intel_dp); |
4626 | 4596 | ||
4627 | intel_dp_read_desc(intel_dp); | 4597 | drm_dp_read_desc(&intel_dp->aux, &intel_dp->desc, |
4598 | drm_dp_is_branch(intel_dp->dpcd)); | ||
4628 | 4599 | ||
4629 | intel_dp_configure_mst(intel_dp); | 4600 | intel_dp_configure_mst(intel_dp); |
4630 | 4601 | ||
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index aaee3949a422..f630c7af5020 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -906,14 +906,6 @@ enum link_m_n_set { | |||
906 | M2_N2 | 906 | M2_N2 |
907 | }; | 907 | }; |
908 | 908 | ||
909 | struct intel_dp_desc { | ||
910 | u8 oui[3]; | ||
911 | u8 device_id[6]; | ||
912 | u8 hw_rev; | ||
913 | u8 sw_major_rev; | ||
914 | u8 sw_minor_rev; | ||
915 | } __packed; | ||
916 | |||
917 | struct intel_dp_compliance_data { | 909 | struct intel_dp_compliance_data { |
918 | unsigned long edid; | 910 | unsigned long edid; |
919 | uint8_t video_pattern; | 911 | uint8_t video_pattern; |
@@ -957,7 +949,7 @@ struct intel_dp { | |||
957 | /* Max link BW for the sink as per DPCD registers */ | 949 | /* Max link BW for the sink as per DPCD registers */ |
958 | int max_sink_link_bw; | 950 | int max_sink_link_bw; |
959 | /* sink or branch descriptor */ | 951 | /* sink or branch descriptor */ |
960 | struct intel_dp_desc desc; | 952 | struct drm_dp_desc desc; |
961 | struct drm_dp_aux aux; | 953 | struct drm_dp_aux aux; |
962 | enum intel_display_power_domain aux_power_domain; | 954 | enum intel_display_power_domain aux_power_domain; |
963 | uint8_t train_set[4]; | 955 | uint8_t train_set[4]; |
@@ -1532,9 +1524,6 @@ static inline unsigned int intel_dp_unused_lane_mask(int lane_count) | |||
1532 | } | 1524 | } |
1533 | 1525 | ||
1534 | bool intel_dp_read_dpcd(struct intel_dp *intel_dp); | 1526 | bool intel_dp_read_dpcd(struct intel_dp *intel_dp); |
1535 | bool __intel_dp_read_desc(struct intel_dp *intel_dp, | ||
1536 | struct intel_dp_desc *desc); | ||
1537 | bool intel_dp_read_desc(struct intel_dp *intel_dp); | ||
1538 | int intel_dp_link_required(int pixel_clock, int bpp); | 1527 | int intel_dp_link_required(int pixel_clock, int bpp); |
1539 | int intel_dp_max_data_rate(int max_link_clock, int max_lanes); | 1528 | int intel_dp_max_data_rate(int max_link_clock, int max_lanes); |
1540 | bool intel_digital_port_connected(struct drm_i915_private *dev_priv, | 1529 | bool intel_digital_port_connected(struct drm_i915_private *dev_priv, |
diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c index 71cbe9c08932..5abef482eacf 100644 --- a/drivers/gpu/drm/i915/intel_lspcon.c +++ b/drivers/gpu/drm/i915/intel_lspcon.c | |||
@@ -240,7 +240,7 @@ bool lspcon_init(struct intel_digital_port *intel_dig_port) | |||
240 | return false; | 240 | return false; |
241 | } | 241 | } |
242 | 242 | ||
243 | intel_dp_read_desc(dp); | 243 | drm_dp_read_desc(&dp->aux, &dp->desc, drm_dp_is_branch(dp->dpcd)); |
244 | 244 | ||
245 | DRM_DEBUG_KMS("Success: LSPCON init\n"); | 245 | DRM_DEBUG_KMS("Success: LSPCON init\n"); |
246 | return true; | 246 | return true; |