|
@@ -12157,11 +12157,21 @@ connected_sink_compute_bpp(struct intel_connector *connector,
|
|
|
pipe_config->pipe_bpp = connector->base.display_info.bpc*3;
|
|
|
}
|
|
|
|
|
|
- /* Clamp bpp to 8 on screens without EDID 1.4 */
|
|
|
- if (connector->base.display_info.bpc == 0 && bpp > 24) {
|
|
|
- DRM_DEBUG_KMS("clamping display bpp (was %d) to default limit of 24\n",
|
|
|
- bpp);
|
|
|
- pipe_config->pipe_bpp = 24;
|
|
|
+ /* Clamp bpp to default limit on screens without EDID 1.4 */
|
|
|
+ if (connector->base.display_info.bpc == 0) {
|
|
|
+ int type = connector->base.connector_type;
|
|
|
+ int clamp_bpp = 24;
|
|
|
+
|
|
|
+ /* Fall back to 18 bpp when DP sink capability is unknown. */
|
|
|
+ if (type == DRM_MODE_CONNECTOR_DisplayPort ||
|
|
|
+ type == DRM_MODE_CONNECTOR_eDP)
|
|
|
+ clamp_bpp = 18;
|
|
|
+
|
|
|
+ if (bpp > clamp_bpp) {
|
|
|
+ DRM_DEBUG_KMS("clamping display bpp (was %d) to default limit of %d\n",
|
|
|
+ bpp, clamp_bpp);
|
|
|
+ pipe_config->pipe_bpp = clamp_bpp;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|