From: Stanislav Vorobiov Date: Fri, 12 Jul 2013 12:15:38 +0000 (+0400) Subject: VIGS: Fixed vigs_fb_create return values X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e9597acdfbeecfbab593f87fe937b9be0b4435a5;p=sdk%2Femulator%2Femulator-kernel.git VIGS: Fixed vigs_fb_create return values VIGS: Added dummy cursor handling --- diff --git a/drivers/gpu/drm/vigs/vigs_crtc.c b/drivers/gpu/drm/vigs/vigs_crtc.c index a6af36712c59..43b856d0007e 100644 --- a/drivers/gpu/drm/vigs/vigs_crtc.c +++ b/drivers/gpu/drm/vigs/vigs_crtc.c @@ -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, diff --git a/drivers/gpu/drm/vigs/vigs_framebuffer.c b/drivers/gpu/drm/vigs/vigs_framebuffer.c index 5d6a10f5202d..d0a1f50f15ea 100644 --- a/drivers/gpu/drm/vigs/vigs_framebuffer.c +++ b/drivers/gpu/drm/vigs/vigs_framebuffer.c @@ -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; }