drm/i915: Make intel_plane_restore() return an error
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 5 Aug 2014 05:56:53 +0000 (11:26 +0530)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 8 Aug 2014 15:43:51 +0000 (17:43 +0200)
Propagate the error from intel_update_plane() up through
intel_plane_restore() to the caller. This will be used for
rollback purposes when setting properties fails.

Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_sprite.c

index b63df4416301cdd93a3ebb37b672302210a9a5ac..79782094c8f99fc84c6f369cb6b3602bf927b433 100644 (file)
@@ -1086,7 +1086,7 @@ bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, bool is_sdvob);
 int intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane);
 void intel_flush_primary_plane(struct drm_i915_private *dev_priv,
                               enum plane plane);
-void intel_plane_restore(struct drm_plane *plane);
+int intel_plane_restore(struct drm_plane *plane);
 void intel_plane_disable(struct drm_plane *plane);
 int intel_sprite_set_colorkey(struct drm_device *dev, void *data,
                              struct drm_file *file_priv);
index f4d10c4b2781e3818f2e729d0ee4f525bfc14e15..611826209c99462c57d23ea6f08aaaf45bcaf75c 100644 (file)
@@ -1218,18 +1218,18 @@ out_unlock:
        return ret;
 }
 
-void intel_plane_restore(struct drm_plane *plane)
+int intel_plane_restore(struct drm_plane *plane)
 {
        struct intel_plane *intel_plane = to_intel_plane(plane);
 
        if (!plane->crtc || !plane->fb)
-               return;
+               return 0;
 
-       intel_update_plane(plane, plane->crtc, plane->fb,
-                          intel_plane->crtc_x, intel_plane->crtc_y,
-                          intel_plane->crtc_w, intel_plane->crtc_h,
-                          intel_plane->src_x, intel_plane->src_y,
-                          intel_plane->src_w, intel_plane->src_h);
+       return intel_update_plane(plane, plane->crtc, plane->fb,
+                                 intel_plane->crtc_x, intel_plane->crtc_y,
+                                 intel_plane->crtc_w, intel_plane->crtc_h,
+                                 intel_plane->src_x, intel_plane->src_y,
+                                 intel_plane->src_w, intel_plane->src_h);
 }
 
 void intel_plane_disable(struct drm_plane *plane)