drm/i915: Make switching to the same CRC source a no-op
authorDamien Lespiau <damien.lespiau@intel.com>
Tue, 15 Oct 2013 17:55:31 +0000 (18:55 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 16 Oct 2013 11:32:11 +0000 (13:32 +0200)
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_debugfs.c

index 58c6fd4c8610580ed3da4c423fa23c8c22b5cc46..8c750d5110a161aa60c7eafbea29c6de80afc301 100644 (file)
@@ -1804,6 +1804,7 @@ static int pipe_crc_set_source(struct drm_device *dev, enum pipe pipe,
                               enum intel_pipe_crc_source source)
 {
        struct drm_i915_private *dev_priv = dev->dev_private;
+       struct intel_pipe_crc *pipe_crc = &dev_priv->pipe_crc[pipe];
        u32 val;
 
 
@@ -1812,7 +1813,10 @@ static int pipe_crc_set_source(struct drm_device *dev, enum pipe pipe,
        if (!IS_IVYBRIDGE(dev))
                return -ENODEV;
 
-       dev_priv->pipe_crc[pipe].source = source;
+       if (pipe_crc->source == source)
+               return 0;
+
+       pipe_crc->source = source;
 
        switch (source) {
        case INTEL_PIPE_CRC_SOURCE_PLANE1: