[RFC 05/10] drm/i915/config: Add init-time configuration of DP max link rate.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If the sink does not provide a maximum link rate, then check the
connector configuration before defaulting to the lowest allowed
link rate.

Signed-off-by: Bob Paauwe <bob.j.paauwe@xxxxxxxxx>
---
 drivers/gpu/drm/i915/intel_dp.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index b6944b9..b05ff6d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -129,6 +129,9 @@ static int
 intel_dp_max_link_bw(struct intel_dp  *intel_dp)
 {
 	int max_link_bw = intel_dp->dpcd[DP_MAX_LINK_RATE];
+	int cfg_max_link_bw = DP_LINK_BW_1_62;
+	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
+	struct drm_device *dev = intel_dig_port->base.base.dev;
 
 	switch (max_link_bw) {
 	case DP_LINK_BW_1_62:
@@ -136,9 +139,15 @@ intel_dp_max_link_bw(struct intel_dp  *intel_dp)
 	case DP_LINK_BW_5_4:
 		break;
 	default:
-		WARN(1, "invalid max DP link bw val %x, using 1.62Gbps\n",
-		     max_link_bw);
-		max_link_bw = DP_LINK_BW_1_62;
+		intel_config_get_integer(to_i915(dev),
+					 CFG_CONNECTOR,
+					 intel_dp->attached_connector->base.name,
+					 "Maximum DPCD Rate",
+					 &cfg_max_link_bw);
+
+		WARN(1, "invalid max DP link bw val %x, using %x\n",
+		     max_link_bw, cfg_max_link_bw);
+		max_link_bw = cfg_max_link_bw;
 		break;
 	}
 	return max_link_bw;
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux