Skip to content

Commit

Permalink
drm/i915/dp: don't call the link parameters sink parameters
Browse files Browse the repository at this point in the history
If we modify these on the fly depending on the link conditions, don't
pretend they are sink properties.

Some link vs. sink confusion still remains, but we'll take care of them
in follow-up patches.

Cc: Manasi Navare <[email protected]>
Cc: Ville Syrjälä <[email protected]>
Reviewed-by: Manasi Navare <[email protected]>
Signed-off-by: Jani Nikula <[email protected]>
Link: http://patchwork.freedesktop.org/patch/msgid/3739b4fac502ebd1c6e075a62c1a195e4094eb16.1491485983.git.jani.nikula@intel.com
  • Loading branch information
jnikula committed Apr 11, 2017
1 parent b1810a7 commit e6c0c64
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 17 deletions.
25 changes: 12 additions & 13 deletions drivers/gpu/drm/i915/intel_dp.c
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ static u8 intel_dp_max_lane_count(struct intel_dp *intel_dp)
u8 source_max, sink_max;

source_max = intel_dig_port->max_lanes;
sink_max = intel_dp->max_sink_lane_count;
sink_max = intel_dp->max_link_lane_count;

return min(source_max, sink_max);
}
Expand Down Expand Up @@ -326,11 +326,11 @@ int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
intel_dp->num_common_rates,
link_rate);
if (index > 0) {
intel_dp->max_sink_link_rate = intel_dp->common_rates[index - 1];
intel_dp->max_sink_lane_count = lane_count;
intel_dp->max_link_rate = intel_dp->common_rates[index - 1];
intel_dp->max_link_lane_count = lane_count;
} else if (lane_count > 1) {
intel_dp->max_sink_link_rate = intel_dp_max_sink_rate(intel_dp);
intel_dp->max_sink_lane_count = lane_count >> 1;
intel_dp->max_link_rate = intel_dp_max_sink_rate(intel_dp);
intel_dp->max_link_lane_count = lane_count >> 1;
} else {
DRM_ERROR("Link Training Unsuccessful\n");
return -1;
Expand Down Expand Up @@ -1561,8 +1561,7 @@ intel_dp_max_link_rate(struct intel_dp *intel_dp)
{
int len;

len = intel_dp_common_len_rate_limit(intel_dp,
intel_dp->max_sink_link_rate);
len = intel_dp_common_len_rate_limit(intel_dp, intel_dp->max_link_rate);
if (WARN_ON(len <= 0))
return 162000;

Expand Down Expand Up @@ -1639,7 +1638,7 @@ intel_dp_compute_config(struct intel_encoder *encoder,
uint8_t link_bw, rate_select;

common_len = intel_dp_common_len_rate_limit(intel_dp,
intel_dp->max_sink_link_rate);
intel_dp->max_link_rate);

/* No common link rates between source and sink */
WARN_ON(common_len <= 0);
Expand Down Expand Up @@ -3969,7 +3968,7 @@ static uint8_t intel_dp_autotest_link_training(struct intel_dp *intel_dp)
test_lane_count &= DP_MAX_LANE_COUNT_MASK;
/* Validate the requested lane count */
if (test_lane_count < min_lane_count ||
test_lane_count > intel_dp->max_sink_lane_count)
test_lane_count > intel_dp->max_link_lane_count)
return DP_TEST_NAK;

status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_LINK_RATE,
Expand Down Expand Up @@ -4637,11 +4636,11 @@ intel_dp_long_pulse(struct intel_connector *intel_connector)
yesno(drm_dp_tps3_supported(intel_dp->dpcd)));

if (intel_dp->reset_link_params) {
/* Set the max lane count for sink */
intel_dp->max_sink_lane_count = drm_dp_max_lane_count(intel_dp->dpcd);
/* Set the max lane count for link */
intel_dp->max_link_lane_count = drm_dp_max_lane_count(intel_dp->dpcd);

/* Set the max link rate for sink */
intel_dp->max_sink_link_rate = intel_dp_max_sink_rate(intel_dp);
/* Set the max link rate for link */
intel_dp->max_link_rate = intel_dp_max_sink_rate(intel_dp);

intel_dp->reset_link_params = false;
}
Expand Down
8 changes: 4 additions & 4 deletions drivers/gpu/drm/i915/intel_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -959,10 +959,10 @@ struct intel_dp {
/* intersection of source and sink rates */
int num_common_rates;
int common_rates[DP_MAX_SUPPORTED_RATES];
/* Max lane count for the sink as per DPCD registers */
uint8_t max_sink_lane_count;
/* Max link BW for the sink as per DPCD registers */
int max_sink_link_rate;
/* Max lane count for the current link */
int max_link_lane_count;
/* Max rate for the current link */
int max_link_rate;
/* sink or branch descriptor */
struct intel_dp_desc desc;
struct drm_dp_aux aux;
Expand Down

0 comments on commit e6c0c64

Please sign in to comment.