浏览代码

drm/fb-helper: Use -errno return in restore_mode_unlocked

Using bool and returning true upon error is very uncommon. Also an int
return value is actually what all the callers which did check it seem
to have expected.

v2: Restore hunk misplaced in a rebase, spotted by Rob.

Cc: Rob Clark <robdclark@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter 10 年之前
父节点
当前提交
b7bdf0a87a
共有 2 个文件被更改,包括 14 次插入11 次删除
  1. 11 8
      drivers/gpu/drm/drm_fb_helper.c
  2. 3 3
      include/drm/drm_fb_helper.h

+ 11 - 8
drivers/gpu/drm/drm_fb_helper.c

@@ -320,11 +320,10 @@ int drm_fb_helper_debug_leave(struct fb_info *info)
 }
 }
 EXPORT_SYMBOL(drm_fb_helper_debug_leave);
 EXPORT_SYMBOL(drm_fb_helper_debug_leave);
 
 
-static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper)
+static int restore_fbdev_mode(struct drm_fb_helper *fb_helper)
 {
 {
 	struct drm_device *dev = fb_helper->dev;
 	struct drm_device *dev = fb_helper->dev;
 	struct drm_plane *plane;
 	struct drm_plane *plane;
-	bool error = false;
 	int i;
 	int i;
 
 
 	drm_warn_on_modeset_not_all_locked(dev);
 	drm_warn_on_modeset_not_all_locked(dev);
@@ -348,14 +347,15 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper)
 		if (crtc->funcs->cursor_set) {
 		if (crtc->funcs->cursor_set) {
 			ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0);
 			ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0);
 			if (ret)
 			if (ret)
-				error = true;
+				return ret;
 		}
 		}
 
 
 		ret = drm_mode_set_config_internal(mode_set);
 		ret = drm_mode_set_config_internal(mode_set);
 		if (ret)
 		if (ret)
-			error = true;
+			return ret;
 	}
 	}
-	return error;
+
+	return 0;
 }
 }
 
 
 /**
 /**
@@ -365,12 +365,15 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper)
  * This should be called from driver's drm ->lastclose callback
  * This should be called from driver's drm ->lastclose callback
  * when implementing an fbcon on top of kms using this helper. This ensures that
  * when implementing an fbcon on top of kms using this helper. This ensures that
  * the user isn't greeted with a black screen when e.g. X dies.
  * the user isn't greeted with a black screen when e.g. X dies.
+ *
+ * RETURNS:
+ * Zero if everything went ok, negative error code otherwise.
  */
  */
-bool drm_fb_helper_restore_fbdev_mode_unlocked(struct drm_fb_helper *fb_helper)
+int drm_fb_helper_restore_fbdev_mode_unlocked(struct drm_fb_helper *fb_helper)
 {
 {
 	struct drm_device *dev = fb_helper->dev;
 	struct drm_device *dev = fb_helper->dev;
-	bool ret;
-	bool do_delayed = false;
+	bool do_delayed;
+	int ret;
 
 
 	drm_modeset_lock_all(dev);
 	drm_modeset_lock_all(dev);
 	ret = restore_fbdev_mode(fb_helper);
 	ret = restore_fbdev_mode(fb_helper);

+ 3 - 3
include/drm/drm_fb_helper.h

@@ -136,7 +136,7 @@ int drm_fb_helper_set_par(struct fb_info *info);
 int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 			    struct fb_info *info);
 			    struct fb_info *info);
 
 
-bool drm_fb_helper_restore_fbdev_mode_unlocked(struct drm_fb_helper *fb_helper);
+int drm_fb_helper_restore_fbdev_mode_unlocked(struct drm_fb_helper *fb_helper);
 
 
 struct fb_info *drm_fb_helper_alloc_fbi(struct drm_fb_helper *fb_helper);
 struct fb_info *drm_fb_helper_alloc_fbi(struct drm_fb_helper *fb_helper);
 void drm_fb_helper_unregister_fbi(struct drm_fb_helper *fb_helper);
 void drm_fb_helper_unregister_fbi(struct drm_fb_helper *fb_helper);
@@ -226,10 +226,10 @@ static inline int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 	return 0;
 	return 0;
 }
 }
 
 
-static inline bool
+static inline int
 drm_fb_helper_restore_fbdev_mode_unlocked(struct drm_fb_helper *fb_helper)
 drm_fb_helper_restore_fbdev_mode_unlocked(struct drm_fb_helper *fb_helper)
 {
 {
-	return true;
+	return 0;
 }
 }
 
 
 static inline struct fb_info *
 static inline struct fb_info *