From: Hans de Goede <hdegoede@redhat.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: devel@driverdev.osuosl.org, Hans de Goede <hdegoede@redhat.com>,
Michael Thayer <michael.thayer@oracle.com>,
dri-devel@lists.freedesktop.org
Subject: [PATCH 08/12] staging: vboxvideo: Init fb_info.fix.smem once from fbdev_create
Date: Tue, 18 Sep 2018 19:44:34 +0200 [thread overview]
Message-ID: <20180918174438.19780-9-hdegoede@redhat.com> (raw)
In-Reply-To: <20180918174438.19780-1-hdegoede@redhat.com>
The fbdev compat fb gets pinned into VRAM at creation and then gets pinned
a second time when set as scanout buffer and unpinned when replaced, this
means its pin count never becomes less then 1, so it is always at the same
address and there is no need for the vbox_fbdev_set_base() call.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/staging/vboxvideo/vbox_drv.h | 1 -
drivers/staging/vboxvideo/vbox_fb.c | 14 +++++---------
drivers/staging/vboxvideo/vbox_mode.c | 3 ---
3 files changed, 5 insertions(+), 13 deletions(-)
diff --git a/drivers/staging/vboxvideo/vbox_drv.h b/drivers/staging/vboxvideo/vbox_drv.h
index 28ffdffe877a..5034c6bd5445 100644
--- a/drivers/staging/vboxvideo/vbox_drv.h
+++ b/drivers/staging/vboxvideo/vbox_drv.h
@@ -201,7 +201,6 @@ int vbox_framebuffer_init(struct vbox_private *vbox,
int vbox_fbdev_init(struct vbox_private *vbox);
void vbox_fbdev_fini(struct vbox_private *vbox);
-void vbox_fbdev_set_base(struct vbox_private *vbox, unsigned long gpu_addr);
struct vbox_bo {
struct ttm_buffer_object bo;
diff --git a/drivers/staging/vboxvideo/vbox_fb.c b/drivers/staging/vboxvideo/vbox_fb.c
index 11b6364ed14a..0e5550fa7c57 100644
--- a/drivers/staging/vboxvideo/vbox_fb.c
+++ b/drivers/staging/vboxvideo/vbox_fb.c
@@ -80,6 +80,7 @@ static int vboxfb_create(struct drm_fb_helper *helper,
struct drm_gem_object *gobj;
struct vbox_bo *bo;
int size, ret;
+ u64 gpu_addr;
u32 pitch;
mode_cmd.width = sizes->surface_width;
@@ -107,7 +108,7 @@ static int vboxfb_create(struct drm_fb_helper *helper,
if (ret)
return ret;
- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, NULL);
+ ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, &gpu_addr);
if (ret) {
vbox_bo_unreserve(bo);
return ret;
@@ -152,6 +153,9 @@ static int vboxfb_create(struct drm_fb_helper *helper,
drm_fb_helper_fill_var(info, &fbdev->helper, sizes->fb_width,
sizes->fb_height);
+ info->fix.smem_start = info->apertures->ranges[0].base + gpu_addr;
+ info->fix.smem_len = vbox->available_vram_size - gpu_addr;
+
info->screen_base = (char __iomem *)bo->kmap.virtual;
info->screen_size = size;
@@ -241,11 +245,3 @@ int vbox_fbdev_init(struct vbox_private *vbox)
drm_fb_helper_fini(&fbdev->helper);
return ret;
}
-
-void vbox_fbdev_set_base(struct vbox_private *vbox, unsigned long gpu_addr)
-{
- struct fb_info *fbdev = vbox->fbdev->helper.fbdev;
-
- fbdev->fix.smem_start = fbdev->apertures->ranges[0].base + gpu_addr;
- fbdev->fix.smem_len = vbox->available_vram_size - gpu_addr;
-}
diff --git a/drivers/staging/vboxvideo/vbox_mode.c b/drivers/staging/vboxvideo/vbox_mode.c
index f35045ce154b..6d7a89524fbf 100644
--- a/drivers/staging/vboxvideo/vbox_mode.c
+++ b/drivers/staging/vboxvideo/vbox_mode.c
@@ -276,9 +276,6 @@ static int vbox_crtc_set_base_and_mode(struct drm_crtc *crtc,
/* Commit: Update hardware to use the new fb */
mutex_lock(&vbox->hw_mutex);
- if (&vbox->fbdev->afb == to_vbox_framebuffer(new_fb))
- vbox_fbdev_set_base(vbox, gpu_addr);
-
vbox_crtc->fb_offset = gpu_addr;
/* vbox_do_modeset() checks vbox->single_framebuffer so update it now */
--
2.19.0.rc1
next prev parent reply other threads:[~2018-09-18 17:44 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-18 17:44 [PATCH 00/12] staging: vboxvideo: Preparation work for moving to atomic modesetting Hans de Goede
2018-09-18 17:44 ` [PATCH 01/12] staging: vboxvideo: Let DRM core handle connector registering Hans de Goede
2018-09-18 17:44 ` [PATCH 02/12] staging: vboxvideo: Move setup of modesetting from driver_load to mode_init Hans de Goede
2018-09-18 17:44 ` [PATCH 03/12] staging: vboxvideo: Fold driver_load/unload into probe/remove functions Hans de Goede
2018-09-18 17:44 ` [PATCH 04/12] staging: vboxvideo: Embed drm_device into driver structure Hans de Goede
2018-09-18 17:44 ` [PATCH 05/12] staging: vboxvideo: Fold vbox_drm_resume() into vbox_pm_resume() Hans de Goede
2018-09-18 17:44 ` [PATCH 06/12] staging: vboxvideo: Add fl_flag argument to vbox_fb_pin() helper Hans de Goede
2018-09-18 17:44 ` [PATCH 07/12] staging: vboxvideo: Expose creation of universal primary plane Hans de Goede
2018-09-18 17:44 ` Hans de Goede [this message]
2018-09-18 17:44 ` [PATCH 09/12] staging: vboxvideo: Move pin / unpin of fb out of vbox_crtc_set_base_and_mode Hans de Goede
2018-09-18 17:44 ` [PATCH 10/12] staging: vboxvideo: Fix NULL ptr deref in vbox_set_up_input_mapping() Hans de Goede
2018-09-18 17:44 ` [PATCH 11/12] staging: vboxvideo: Move bo_[un]resere calls into vbox_bo_[un]pin Hans de Goede
2018-09-18 17:44 ` [PATCH 12/12] staging: vboxvideo: Add vbox_bo_k[un]map helper functions Hans de Goede
2018-09-20 10:32 ` [PATCH 00/12] staging: vboxvideo: Preparation work for moving to atomic modesetting Greg Kroah-Hartman
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=20180918174438.19780-9-hdegoede@redhat.com \
--to=hdegoede@redhat.com \
--cc=devel@driverdev.osuosl.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=michael.thayer@oracle.com \
/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).