From: Archit Taneja <architt@codeaurora.org>
To: dri-devel@lists.freedesktop.org, daniel@ffwll.ch
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
Alex Deucher <alexander.deucher@amd.com>
Subject: [PATCH v2 16/25] drm/mgag200: Use new drm_fb_helper functions
Date: Wed, 22 Jul 2015 12:29:52 +0530 [thread overview]
Message-ID: <1437548401-10125-17-git-send-email-architt@codeaurora.org> (raw)
In-Reply-To: <1437548401-10125-1-git-send-email-architt@codeaurora.org>
Use the newly created wrapper drm_fb_helper functions instead of calling
core fbdev functions directly. They also simplify the fb_info creation.
COMPILE TESTED ONLY.
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: David Airlie <airlied@linux.ie>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
---
drivers/gpu/drm/mgag200/mgag200_drv.c | 3 ++-
drivers/gpu/drm/mgag200/mgag200_fb.c | 39 +++++++---------------------------
drivers/gpu/drm/mgag200/mgag200_main.c | 2 +-
3 files changed, 11 insertions(+), 33 deletions(-)
diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.c b/drivers/gpu/drm/mgag200/mgag200_drv.c
index 9774599..38363f8 100644
--- a/drivers/gpu/drm/mgag200/mgag200_drv.c
+++ b/drivers/gpu/drm/mgag200/mgag200_drv.c
@@ -55,7 +55,8 @@ static void mgag200_kick_out_firmware_fb(struct pci_dev *pdev)
#ifdef CONFIG_X86
primary = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
#endif
- remove_conflicting_framebuffers(ap, "mgag200drmfb", primary);
+ drm_fb_helper_remove_conflicting_framebuffers(ap, "mgag200drmfb",
+ primary);
kfree(ap);
}
diff --git a/drivers/gpu/drm/mgag200/mgag200_fb.c b/drivers/gpu/drm/mgag200/mgag200_fb.c
index c36b830..dc06f8b 100644
--- a/drivers/gpu/drm/mgag200/mgag200_fb.c
+++ b/drivers/gpu/drm/mgag200/mgag200_fb.c
@@ -101,7 +101,7 @@ static void mga_fillrect(struct fb_info *info,
const struct fb_fillrect *rect)
{
struct mga_fbdev *mfbdev = info->par;
- sys_fillrect(info, rect);
+ drm_fb_helper_sys_fillrect(info, rect);
mga_dirty_update(mfbdev, rect->dx, rect->dy, rect->width,
rect->height);
}
@@ -110,7 +110,7 @@ static void mga_copyarea(struct fb_info *info,
const struct fb_copyarea *area)
{
struct mga_fbdev *mfbdev = info->par;
- sys_copyarea(info, area);
+ drm_fb_helper_sys_copyarea(info, area);
mga_dirty_update(mfbdev, area->dx, area->dy, area->width,
area->height);
}
@@ -119,7 +119,7 @@ static void mga_imageblit(struct fb_info *info,
const struct fb_image *image)
{
struct mga_fbdev *mfbdev = info->par;
- sys_imageblit(info, image);
+ drm_fb_helper_sys_imageblit(info, image);
mga_dirty_update(mfbdev, image->dx, image->dy, image->width,
image->height);
}
@@ -166,7 +166,6 @@ static int mgag200fb_create(struct drm_fb_helper *helper,
struct fb_info *info;
struct drm_framebuffer *fb;
struct drm_gem_object *gobj = NULL;
- struct device *device = &dev->pdev->dev;
struct mgag200_bo *bo;
int ret;
void *sysram;
@@ -191,9 +190,9 @@ static int mgag200fb_create(struct drm_fb_helper *helper,
if (!sysram)
return -ENOMEM;
- info = framebuffer_alloc(0, device);
- if (info == NULL)
- return -ENOMEM;
+ info = drm_fb_helper_alloc_fbi(helper);
+ if (IS_ERR(info))
+ return PTR_ERR(info);
info->par = mfbdev;
@@ -208,14 +207,6 @@ static int mgag200fb_create(struct drm_fb_helper *helper,
/* setup helper */
mfbdev->helper.fb = fb;
- mfbdev->helper.fbdev = info;
-
- ret = fb_alloc_cmap(&info->cmap, 256, 0);
- if (ret) {
- DRM_ERROR("%s: can't allocate color map\n", info->fix.id);
- ret = -ENOMEM;
- goto out;
- }
strcpy(info->fix.id, "mgadrmfb");
@@ -223,11 +214,6 @@ static int mgag200fb_create(struct drm_fb_helper *helper,
info->fbops = &mgag200fb_ops;
/* setup aperture base/size for vesafb takeover */
- info->apertures = alloc_apertures(1);
- if (!info->apertures) {
- ret = -ENOMEM;
- goto out;
- }
info->apertures->ranges[0].base = mdev->dev->mode_config.fb_base;
info->apertures->ranges[0].size = mdev->mc.vram_size;
@@ -242,24 +228,15 @@ static int mgag200fb_create(struct drm_fb_helper *helper,
DRM_DEBUG_KMS("allocated %dx%d\n",
fb->width, fb->height);
return 0;
-out:
- return ret;
}
static int mga_fbdev_destroy(struct drm_device *dev,
struct mga_fbdev *mfbdev)
{
- struct fb_info *info;
struct mga_framebuffer *mfb = &mfbdev->mfb;
- if (mfbdev->helper.fbdev) {
- info = mfbdev->helper.fbdev;
-
- unregister_framebuffer(info);
- if (info->cmap.len)
- fb_dealloc_cmap(&info->cmap);
- framebuffer_release(info);
- }
+ drm_fb_helper_unregister_fbi(&mfbdev->helper);
+ drm_fb_helper_release_fbi(&mfbdev->helper);
if (mfb->obj) {
drm_gem_object_unreference_unlocked(mfb->obj);
diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c b/drivers/gpu/drm/mgag200/mgag200_main.c
index f6b283b..b435d3c 100644
--- a/drivers/gpu/drm/mgag200/mgag200_main.c
+++ b/drivers/gpu/drm/mgag200/mgag200_main.c
@@ -128,7 +128,7 @@ static int mga_vram_init(struct mga_device *mdev)
aper->ranges[0].base = mdev->mc.vram_base;
aper->ranges[0].size = mdev->mc.vram_window;
- remove_conflicting_framebuffers(aper, "mgafb", true);
+ drm_fb_helper_remove_conflicting_framebuffers(aper, "mgafb", true);
kfree(aper);
if (!devm_request_mem_region(mdev->dev->dev, mdev->mc.vram_base, mdev->mc.vram_window,
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2015-07-22 7:01 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-13 6:37 [PATCH 00/25] drm: fb emulation: Step 1: Create new drm_fb_helper wrapper funcs Archit Taneja
2015-07-13 6:37 ` [PATCH 01/25] drm/fb_helper: Add drm_fb_helper functions to manage fb_info creation Archit Taneja
2015-07-13 6:37 ` [PATCH 02/25] drm/fb_helper: Create a wrapper for unlink_framebuffer Archit Taneja
2015-07-13 7:30 ` Daniel Vetter
2015-07-13 6:37 ` [PATCH 03/25] drm/fb_helper: Create wrappers for fb_sys_read/write funcs Archit Taneja
2015-07-13 7:31 ` Daniel Vetter
2015-07-13 9:59 ` Archit Taneja
2015-07-13 7:39 ` Daniel Vetter
2015-07-13 6:38 ` [PATCH 04/25] drm/fb_helper: Create wrappers for blit, copyarea and fillrect funcs Archit Taneja
2015-07-13 7:40 ` Daniel Vetter
2015-07-13 6:38 ` [PATCH 05/25] drm/fb_helper: Create a wrapper for fb_set_suspend Archit Taneja
2015-07-13 6:38 ` [PATCH 06/25] drm/fb_helper: Create a wrapper for remove_conflicting_framebuffers Archit Taneja
2015-07-13 6:38 ` [PATCH 07/25] drm/cirrus: Use new drm_fb_helper functions Archit Taneja
2015-07-13 6:38 ` [PATCH 08/25] drm/rockchip: " Archit Taneja
2015-07-13 6:38 ` [PATCH 09/25] drm/armada: " Archit Taneja
2015-07-13 6:38 ` [PATCH 10/25] drm/ast: " Archit Taneja
2015-07-13 6:38 ` [PATCH 11/25] drm/omap: " Archit Taneja
2015-07-13 6:38 ` [PATCH 12/25] drm/tegra: " Archit Taneja
2015-07-14 8:50 ` Thierry Reding
2015-07-14 9:11 ` Archit Taneja
2015-07-13 6:38 ` [PATCH 13/25] drm/msm: " Archit Taneja
2015-07-13 6:38 ` [PATCH 14/25] drm/exynos: " Archit Taneja
2015-08-11 9:04 ` Inki Dae
2015-08-11 9:11 ` Inki Dae
2015-07-13 6:38 ` [PATCH 15/25] drm/gma500: " Archit Taneja
2015-07-13 6:38 ` [PATCH 16/25] drm/mgag200: " Archit Taneja
2015-07-13 6:38 ` [PATCH 17/25] drm/radeon: " Archit Taneja
2015-07-13 6:38 ` [PATCH 18/25] drm/qxl: " Archit Taneja
2015-07-13 6:38 ` [PATCH 19/25] drm/i915: " Archit Taneja
2015-07-13 6:38 ` [PATCH 20/25] drm/nouveau: " Archit Taneja
2015-07-13 6:38 ` [PATCH 21/25] drm/udl: " Archit Taneja
2015-07-13 6:38 ` [PATCH 22/25] drm/boschs: " Archit Taneja
2015-07-13 6:38 ` [PATCH 23/25] drm/amdgpu: " Archit Taneja
2015-07-13 6:38 ` [PATCH 24/25] drm/virtio: " Archit Taneja
2015-07-13 6:38 ` [PATCH 25/25] drm/fb_cma_helper: " Archit Taneja
2015-07-13 8:07 ` [PATCH 00/25] drm: fb emulation: Step 1: Create new drm_fb_helper wrapper funcs Daniel Vetter
2015-07-13 10:29 ` Archit Taneja
2015-07-13 14:11 ` Daniel Vetter
2015-07-13 15:25 ` Alex Deucher
2015-07-22 6:59 ` [PATCH v2 " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 01/25] drm/fb_helper: Add drm_fb_helper functions to manage fb_info creation Archit Taneja
2015-07-22 6:59 ` [PATCH v2 02/25] drm/fb_helper: Create a wrapper for unlink_framebuffer Archit Taneja
2015-07-22 6:59 ` [PATCH v2 03/25] drm/fb_helper: Create wrappers for fb_sys_read/write funcs Archit Taneja
2015-07-22 6:59 ` [PATCH v2 04/25] drm/fb_helper: Create wrappers for blit, copyarea and fillrect funcs Archit Taneja
2015-07-22 6:59 ` [PATCH v2 05/25] drm/fb_helper: Create a wrapper for fb_set_suspend Archit Taneja
2015-07-22 6:59 ` [PATCH v2 06/25] drm/fb_helper: Create a wrapper for remove_conflicting_framebuffers Archit Taneja
2015-07-22 6:59 ` [PATCH v2 07/25] drm/cirrus: Use new drm_fb_helper functions Archit Taneja
2015-07-22 6:59 ` [PATCH v2 08/25] drm/rockchip: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 09/25] drm/armada: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 10/25] drm/ast: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 11/25] drm/omap: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 12/25] drm/tegra: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 13/25] drm/msm: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 14/25] drm/exynos: " Archit Taneja
2015-08-11 12:27 ` Inki Dae
2015-07-22 6:59 ` [PATCH v2 15/25] drm/gma500: " Archit Taneja
2015-07-22 6:59 ` Archit Taneja [this message]
2015-07-22 6:59 ` [PATCH v2 17/25] drm/radeon: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 18/25] drm/qxl: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 19/25] drm/i915: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 20/25] drm/nouveau: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 21/25] drm/udl: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 22/25] drm/bochs: " Archit Taneja
2015-07-22 6:59 ` [PATCH v2 23/25] drm/amdgpu: " Archit Taneja
2015-07-22 7:00 ` [PATCH v2 24/25] drm/virtio: " Archit Taneja
2015-07-22 7:00 ` [PATCH v2 25/25] drm/fb_cma_helper: " Archit Taneja
2015-07-22 7:41 ` [PATCH v2 00/25] drm: fb emulation: Step 1: Create new drm_fb_helper wrapper funcs Daniel Vetter
2015-07-22 8:34 ` Archit Taneja
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1437548401-10125-17-git-send-email-architt@codeaurora.org \
--to=architt@codeaurora.org \
--cc=alexander.deucher@amd.com \
--cc=daniel.vetter@ffwll.ch \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).