drm/i915/chv: Configure crtc_mask correctly for CHV
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 28 Apr 2014 11:07:43 +0000 (14:07 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 20 May 2014 13:30:29 +0000 (15:30 +0200)
On CHV pipe C can driver only port D, and pipes A and B can drivbe only
ports B and C. Configure the crtc_mask appropriately to reflect that.

v2: Moar braces (Jani)

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Antti Koskipää <antti.koskipaa@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c
drivers/gpu/drm/i915/intel_hdmi.c

index a14ee4be5d691e16a88fd0900ce3efdedbc035c5..a2801e96b6bbce681f7172aace8d2353dfcb2c44 100644 (file)
@@ -4249,7 +4249,14 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port)
        intel_dig_port->dp.output_reg = output_reg;
 
        intel_encoder->type = INTEL_OUTPUT_DISPLAYPORT;
-       intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
+       if (IS_CHERRYVIEW(dev)) {
+               if (port == PORT_D)
+                       intel_encoder->crtc_mask = 1 << 2;
+               else
+                       intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
+       } else {
+               intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
+       }
        intel_encoder->cloneable = 0;
        intel_encoder->hot_plug = intel_dp_hot_plug;
 
index e978c12bde1d1338bc9b790632c62d3fe57d6f37..5976693927e635d9614a62d61cbe4ab2ca31e0e0 100644 (file)
@@ -1469,7 +1469,14 @@ void intel_hdmi_init(struct drm_device *dev, int hdmi_reg, enum port port)
        }
 
        intel_encoder->type = INTEL_OUTPUT_HDMI;
-       intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
+       if (IS_CHERRYVIEW(dev)) {
+               if (port == PORT_D)
+                       intel_encoder->crtc_mask = 1 << 2;
+               else
+                       intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
+       } else {
+               intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
+       }
        intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
        /*
         * BSpec is unclear about HDMI+HDMI cloning on g4x, but it seems