VIGS: Fixed vigs_fb_create return values
authorStanislav Vorobiov <s.vorobiov@samsung.com>
Fri, 12 Jul 2013 12:15:38 +0000 (16:15 +0400)
committerStanislav Vorobiov <s.vorobiov@samsung.com>
Fri, 12 Jul 2013 12:15:38 +0000 (16:15 +0400)
VIGS: Added dummy cursor handling

drivers/gpu/drm/vigs/vigs_crtc.c
drivers/gpu/drm/vigs/vigs_framebuffer.c

index a6af36712c59860ffe31cca051ea410aa5e98f4f..43b856d0007ede5d39971192fc210bafbde8c1d2 100644 (file)
@@ -172,6 +172,28 @@ static void vigs_crtc_load_lut(struct drm_crtc *crtc)
 {
 }
 
+static int vigs_crtc_cursor_set(struct drm_crtc *crtc,
+                                struct drm_file *file_priv,
+                                uint32_t handle,
+                                uint32_t width,
+                                uint32_t height)
+{
+    /*
+     * Not supported.
+     */
+
+    return 0;
+}
+
+static int vigs_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)
+{
+    /*
+     * Not supported.
+     */
+
+    return 0;
+}
+
 static int vigs_crtc_page_flip(struct drm_crtc *crtc,
                                struct drm_framebuffer *fb,
                                struct drm_pending_vblank_event *event)
@@ -238,6 +260,8 @@ static void vigs_crtc_disable(struct drm_crtc *crtc)
 
 static const struct drm_crtc_funcs vigs_crtc_funcs =
 {
+    .cursor_set = vigs_crtc_cursor_set,
+    .cursor_move = vigs_crtc_cursor_move,
     .set_config = drm_crtc_helper_set_config,
     .page_flip = vigs_crtc_page_flip,
     .destroy = vigs_crtc_destroy,
index 5d6a10f5202da87fef0640304e42a354358fa2e9..d0a1f50f15ea9e66b1dbe4d630d1d1130516a1d6 100644 (file)
@@ -23,7 +23,7 @@ static struct drm_framebuffer *vigs_fb_create(struct drm_device *drm_dev,
 
     if (!gem) {
         DRM_ERROR("GEM lookup failed, handle = %u\n", mode_cmd->handles[0]);
-        return NULL;
+        return ERR_PTR(-ENOENT);
     }
 
     vigs_gem = gem_to_vigs_gem(gem);
@@ -31,7 +31,7 @@ static struct drm_framebuffer *vigs_fb_create(struct drm_device *drm_dev,
     if (vigs_gem->type != VIGS_GEM_TYPE_SURFACE) {
         DRM_ERROR("GEM is not a surface, handle = %u\n", mode_cmd->handles[0]);
         drm_gem_object_unreference_unlocked(gem);
-        return NULL;
+        return ERR_PTR(-ENOENT);
     }
 
     vigs_sfc = vigs_gem_to_vigs_surface(vigs_gem);
@@ -45,7 +45,7 @@ static struct drm_framebuffer *vigs_fb_create(struct drm_device *drm_dev,
 
     if (ret != 0) {
         DRM_ERROR("unable to create the framebuffer: %d\n", ret);
-        return NULL;
+        return ERR_PTR(ret);
     }
 
     return &vigs_fb->base;
@@ -151,7 +151,9 @@ int vigs_framebuffer_create(struct vigs_device *vigs_dev,
     if ((fb_sfc->width != mode_cmd->width) ||
         (fb_sfc->height != mode_cmd->height) ||
         (fb_sfc->stride != mode_cmd->pitches[0])) {
-        DRM_DEBUG_KMS("surface format mismatch\n");
+        DRM_DEBUG_KMS("surface format mismatch, sfc - (%u,%u,%u), mode - (%u,%u,%u)\n",
+                      fb_sfc->width, fb_sfc->height, fb_sfc->stride,
+                      mode_cmd->width, mode_cmd->height, mode_cmd->pitches[0]);
         ret = -EINVAL;
         goto fail2;
     }