|
@@ -7,30 +7,15 @@
|
|
|
*/
|
|
|
#include <drm/drm_crtc_helper.h>
|
|
|
#include <drm/drm_fb_helper.h>
|
|
|
+#include <drm/drm_gem_framebuffer_helper.h>
|
|
|
#include "armada_drm.h"
|
|
|
#include "armada_fb.h"
|
|
|
#include "armada_gem.h"
|
|
|
#include "armada_hw.h"
|
|
|
|
|
|
-static void armada_fb_destroy(struct drm_framebuffer *fb)
|
|
|
-{
|
|
|
- struct armada_framebuffer *dfb = drm_fb_to_armada_fb(fb);
|
|
|
-
|
|
|
- drm_framebuffer_cleanup(&dfb->fb);
|
|
|
- drm_gem_object_put_unlocked(&dfb->obj->obj);
|
|
|
- kfree(dfb);
|
|
|
-}
|
|
|
-
|
|
|
-static int armada_fb_create_handle(struct drm_framebuffer *fb,
|
|
|
- struct drm_file *dfile, unsigned int *handle)
|
|
|
-{
|
|
|
- struct armada_framebuffer *dfb = drm_fb_to_armada_fb(fb);
|
|
|
- return drm_gem_handle_create(dfile, &dfb->obj->obj, handle);
|
|
|
-}
|
|
|
-
|
|
|
static const struct drm_framebuffer_funcs armada_fb_funcs = {
|
|
|
- .destroy = armada_fb_destroy,
|
|
|
- .create_handle = armada_fb_create_handle,
|
|
|
+ .destroy = drm_gem_fb_destroy,
|
|
|
+ .create_handle = drm_gem_fb_create_handle,
|
|
|
};
|
|
|
|
|
|
struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
|
|
@@ -78,7 +63,7 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
|
|
|
|
|
|
dfb->fmt = format;
|
|
|
dfb->mod = config;
|
|
|
- dfb->obj = obj;
|
|
|
+ dfb->fb.obj[0] = &obj->obj;
|
|
|
|
|
|
drm_helper_mode_fill_fb_struct(dev, &dfb->fb, mode);
|
|
|
|