@@ -320,8 +320,7 @@ struct drm_crtc *omap_crtc_init(struct drm_device *dev,
fail:
if (crtc) {
- drm_crtc_cleanup(crtc);
- kfree(omap_crtc);
+ omap_crtc_destroy(crtc);
}
return NULL;
}
@@ -164,8 +164,7 @@ struct drm_encoder *omap_encoder_init(struct drm_device *dev,
fail:
if (encoder) {
- drm_encoder_cleanup(encoder);
- kfree(omap_encoder);
+ omap_encoder_destroy(encoder);
}
return NULL;
@@ -53,11 +53,9 @@ static void omap_framebuffer_destroy(struct drm_framebuffer *fb)
drm_framebuffer_cleanup(fb);
- if (omap_gem_put_paddr(omap_fb->bo)) {
- dev_err(dev->dev, "could not unmap!\n");
- }
-
if (omap_fb->bo) {
+ if (omap_fb->paddr && omap_gem_put_paddr(omap_fb->bo))
+ dev_err(dev->dev, "could not unmap!\n");
drm_gem_object_unreference_unlocked(omap_fb->bo);
}