Commit b0b3d253 authored by Thomas Zimmermann's avatar Thomas Zimmermann Committed by Dmitry Baryshkov
Browse files

drm/msm: Remove struct msm_fbdev



Remove struct msm_fbdev, which is an empty wrapper around struct
drm_fb_helper. Use the latter directly. No functional changes.

v2:
	* kfree fbdev helper instance on init errors (Dmitri)

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/530554/
Link: https://lore.kernel.org/r/20230403124538.8497-5-tzimmermann@suse.de


Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
parent 0c8d2639
Loading
Loading
Loading
Loading
+4 −16
Original line number Diff line number Diff line
@@ -18,12 +18,6 @@
 * fbdev funcs, to implement legacy fbdev interface on top of drm driver
 */

#define to_msm_fbdev(x) container_of(x, struct msm_fbdev, base)

struct msm_fbdev {
	struct drm_fb_helper base;
};

static int msm_fbdev_mmap(struct fb_info *info, struct vm_area_struct *vma)
{
	struct drm_fb_helper *helper = (struct drm_fb_helper *)info->par;
@@ -129,16 +123,13 @@ static const struct drm_fb_helper_funcs msm_fb_helper_funcs = {
struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev)
{
	struct msm_drm_private *priv = dev->dev_private;
	struct msm_fbdev *fbdev;
	struct drm_fb_helper *helper;
	int ret;

	fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL);
	if (!fbdev)
	helper = kzalloc(sizeof(*helper), GFP_KERNEL);
	if (!helper)
		return NULL;

	helper = &fbdev->base;

	drm_fb_helper_prepare(dev, helper, 32, &msm_fb_helper_funcs);

	ret = drm_fb_helper_init(dev, helper);
@@ -159,7 +150,7 @@ struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev)
	drm_fb_helper_fini(helper);
fail:
	drm_fb_helper_unprepare(helper);
	kfree(fbdev);
	kfree(helper);
	return NULL;
}

@@ -168,7 +159,6 @@ void msm_fbdev_free(struct drm_device *dev)
	struct msm_drm_private *priv = dev->dev_private;
	struct drm_fb_helper *helper = priv->fbdev;
	struct drm_framebuffer *fb = helper->fb;
	struct msm_fbdev *fbdev;

	DBG();

@@ -176,8 +166,6 @@ void msm_fbdev_free(struct drm_device *dev)

	drm_fb_helper_fini(helper);

	fbdev = to_msm_fbdev(priv->fbdev);

	/* this will free the backing object */
	if (fb) {
		struct drm_gem_object *bo = msm_framebuffer_bo(fb, 0);
@@ -186,7 +174,7 @@ void msm_fbdev_free(struct drm_device *dev)
	}

	drm_fb_helper_unprepare(helper);
	kfree(fbdev);
	kfree(helper);

	priv->fbdev = NULL;
}