|
@@ -256,6 +256,17 @@ static int cnl_max_source_rate(struct intel_dp *intel_dp)
|
|
|
return 810000;
|
|
|
}
|
|
|
|
|
|
+static int icl_max_source_rate(struct intel_dp *intel_dp)
|
|
|
+{
|
|
|
+ struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
|
|
|
+ enum port port = dig_port->base.port;
|
|
|
+
|
|
|
+ if (port == PORT_B)
|
|
|
+ return 540000;
|
|
|
+
|
|
|
+ return 810000;
|
|
|
+}
|
|
|
+
|
|
|
static void
|
|
|
intel_dp_set_source_rates(struct intel_dp *intel_dp)
|
|
|
{
|
|
@@ -285,10 +296,13 @@ intel_dp_set_source_rates(struct intel_dp *intel_dp)
|
|
|
/* This should only be done once */
|
|
|
WARN_ON(intel_dp->source_rates || intel_dp->num_source_rates);
|
|
|
|
|
|
- if (IS_CANNONLAKE(dev_priv)) {
|
|
|
+ if (INTEL_GEN(dev_priv) >= 10) {
|
|
|
source_rates = cnl_rates;
|
|
|
size = ARRAY_SIZE(cnl_rates);
|
|
|
- max_rate = cnl_max_source_rate(intel_dp);
|
|
|
+ if (INTEL_GEN(dev_priv) == 10)
|
|
|
+ max_rate = cnl_max_source_rate(intel_dp);
|
|
|
+ else
|
|
|
+ max_rate = icl_max_source_rate(intel_dp);
|
|
|
} else if (IS_GEN9_LP(dev_priv)) {
|
|
|
source_rates = bxt_rates;
|
|
|
size = ARRAY_SIZE(bxt_rates);
|