Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 121df61e authored by Daniel Stone's avatar Daniel Stone
Browse files

drm/cirrus: cirrus_framebuffer -> drm_framebuffer



Now cirrus_framebuffer is just an empty wrapper around drm_framebuffer,
we can drop it.

Signed-off-by: default avatarDaniel Stone <daniels@collabora.com>
Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: virtualization@lists.linux-foundation.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180330141138.28987-2-daniels@collabora.com
parent 9d7e7002
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -92,7 +92,6 @@

#define to_cirrus_crtc(x) container_of(x, struct cirrus_crtc, base)
#define to_cirrus_encoder(x) container_of(x, struct cirrus_encoder, base)
#define to_cirrus_framebuffer(x) container_of(x, struct cirrus_framebuffer, base)

struct cirrus_crtc {
	struct drm_crtc			base;
@@ -117,10 +116,6 @@ struct cirrus_connector {
	struct drm_connector		base;
};

struct cirrus_framebuffer {
	struct drm_framebuffer		base;
};

struct cirrus_mc {
	resource_size_t			vram_size;
	resource_size_t			vram_base;
@@ -151,7 +146,7 @@ struct cirrus_device {

struct cirrus_fbdev {
	struct drm_fb_helper helper;
	struct cirrus_framebuffer gfb;
	struct drm_framebuffer gfb;
	void *sysram;
	int size;
	int x1, y1, x2, y2; /* dirty rect */
@@ -197,7 +192,7 @@ int cirrus_dumb_create(struct drm_file *file,
		       struct drm_mode_create_dumb *args);

int cirrus_framebuffer_init(struct drm_device *dev,
			   struct cirrus_framebuffer *gfb,
			    struct drm_framebuffer *gfb,
			    const struct drm_mode_fb_cmd2 *mode_cmd,
			    struct drm_gem_object *obj);

+10 −10
Original line number Diff line number Diff line
@@ -22,14 +22,14 @@ static void cirrus_dirty_update(struct cirrus_fbdev *afbdev,
	struct drm_gem_object *obj;
	struct cirrus_bo *bo;
	int src_offset, dst_offset;
	int bpp = afbdev->gfb.base.format->cpp[0];
	int bpp = afbdev->gfb.format->cpp[0];
	int ret = -EBUSY;
	bool unmap = false;
	bool store_for_later = false;
	int x2, y2;
	unsigned long flags;

	obj = afbdev->gfb.base.obj[0];
	obj = afbdev->gfb.obj[0];
	bo = gem_to_cirrus_bo(obj);

	/*
@@ -82,7 +82,7 @@ static void cirrus_dirty_update(struct cirrus_fbdev *afbdev,
	}
	for (i = y; i < y + height; i++) {
		/* assume equal stride for now */
		src_offset = dst_offset = i * afbdev->gfb.base.pitches[0] + (x * bpp);
		src_offset = dst_offset = i * afbdev->gfb.pitches[0] + (x * bpp);
		memcpy_toio(bo->kmap.virtual + src_offset, afbdev->sysram + src_offset, width * bpp);

	}
@@ -204,7 +204,7 @@ static int cirrusfb_create(struct drm_fb_helper *helper,
	gfbdev->sysram = sysram;
	gfbdev->size = size;

	fb = &gfbdev->gfb.base;
	fb = &gfbdev->gfb;
	if (!fb) {
		DRM_INFO("fb is NULL\n");
		return -EINVAL;
@@ -246,19 +246,19 @@ static int cirrusfb_create(struct drm_fb_helper *helper,
static int cirrus_fbdev_destroy(struct drm_device *dev,
				struct cirrus_fbdev *gfbdev)
{
	struct cirrus_framebuffer *gfb = &gfbdev->gfb;
	struct drm_framebuffer *gfb = &gfbdev->gfb;

	drm_fb_helper_unregister_fbi(&gfbdev->helper);

	if (gfb->base.obj[0]) {
		drm_gem_object_put_unlocked(gfb->base.obj[0]);
		gfb->base.obj[0] = NULL;
	if (gfb->obj[0]) {
		drm_gem_object_put_unlocked(gfb->obj[0]);
		gfb->obj[0] = NULL;
	}

	vfree(gfbdev->sysram);
	drm_fb_helper_fini(&gfbdev->helper);
	drm_framebuffer_unregister_private(&gfb->base);
	drm_framebuffer_cleanup(&gfb->base);
	drm_framebuffer_unregister_private(gfb);
	drm_framebuffer_cleanup(gfb);

	return 0;
}
+10 −10
Original line number Diff line number Diff line
@@ -20,15 +20,15 @@ static const struct drm_framebuffer_funcs cirrus_fb_funcs = {
};

int cirrus_framebuffer_init(struct drm_device *dev,
			    struct cirrus_framebuffer *gfb,
			    struct drm_framebuffer *gfb,
			    const struct drm_mode_fb_cmd2 *mode_cmd,
			    struct drm_gem_object *obj)
{
	int ret;

	drm_helper_mode_fill_fb_struct(dev, &gfb->base, mode_cmd);
	gfb->base.obj[0] = obj;
	ret = drm_framebuffer_init(dev, &gfb->base, &cirrus_fb_funcs);
	drm_helper_mode_fill_fb_struct(dev, gfb, mode_cmd);
	gfb->obj[0] = obj;
	ret = drm_framebuffer_init(dev, gfb, &cirrus_fb_funcs);
	if (ret) {
		DRM_ERROR("drm_framebuffer_init failed: %d\n", ret);
		return ret;
@@ -43,7 +43,7 @@ cirrus_user_framebuffer_create(struct drm_device *dev,
{
	struct cirrus_device *cdev = dev->dev_private;
	struct drm_gem_object *obj;
	struct cirrus_framebuffer *cirrus_fb;
	struct drm_framebuffer *fb;
	u32 bpp;
	int ret;

@@ -57,19 +57,19 @@ cirrus_user_framebuffer_create(struct drm_device *dev,
	if (obj == NULL)
		return ERR_PTR(-ENOENT);

	cirrus_fb = kzalloc(sizeof(*cirrus_fb), GFP_KERNEL);
	if (!cirrus_fb) {
	fb = kzalloc(sizeof(*fb), GFP_KERNEL);
	if (!fb) {
		drm_gem_object_put_unlocked(obj);
		return ERR_PTR(-ENOMEM);
	}

	ret = cirrus_framebuffer_init(dev, cirrus_fb, mode_cmd, obj);
	ret = cirrus_framebuffer_init(dev, fb, mode_cmd, obj);
	if (ret) {
		drm_gem_object_put_unlocked(obj);
		kfree(cirrus_fb);
		kfree(fb);
		return ERR_PTR(ret);
	}
	return &cirrus_fb->base;
	return fb;
}

static const struct drm_mode_config_funcs cirrus_mode_funcs = {
+3 −9
Original line number Diff line number Diff line
@@ -101,17 +101,13 @@ static int cirrus_crtc_do_set_base(struct drm_crtc *crtc,
				int x, int y, int atomic)
{
	struct cirrus_device *cdev = crtc->dev->dev_private;
	struct drm_gem_object *obj;
	struct cirrus_framebuffer *cirrus_fb;
	struct cirrus_bo *bo;
	int ret;
	u64 gpu_addr;

	/* push the previous fb to system ram */
	if (!atomic && fb) {
		cirrus_fb = to_cirrus_framebuffer(fb);
		obj = cirrus_fb->base.obj[0];
		bo = gem_to_cirrus_bo(obj);
		bo = gem_to_cirrus_bo(fb->obj[0]);
		ret = cirrus_bo_reserve(bo, false);
		if (ret)
			return ret;
@@ -119,9 +115,7 @@ static int cirrus_crtc_do_set_base(struct drm_crtc *crtc,
		cirrus_bo_unreserve(bo);
	}

	cirrus_fb = to_cirrus_framebuffer(crtc->primary->fb);
	obj = cirrus_fb->base.obj[0];
	bo = gem_to_cirrus_bo(obj);
	bo = gem_to_cirrus_bo(crtc->primary->fb->obj[0]);

	ret = cirrus_bo_reserve(bo, false);
	if (ret)
@@ -133,7 +127,7 @@ static int cirrus_crtc_do_set_base(struct drm_crtc *crtc,
		return ret;
	}

	if (&cdev->mode_info.gfbdev->gfb == cirrus_fb) {
	if (&cdev->mode_info.gfbdev->gfb == crtc->primary->fb) {
		/* if pushing console in kmap it */
		ret = ttm_bo_kmap(&bo->bo, 0, bo->bo.num_pages, &bo->kmap);
		if (ret)