From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: "Das, Nirmoy" <nirmoy.das@intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 1/3] drm/i915: Set I915_BO_ALLOC_USER for framebuffer
Date: Mon, 6 Mar 2023 19:30:52 +0200 [thread overview]
Message-ID: <ZAYjTCgyYbBtbE+N@intel.com> (raw)
In-Reply-To: <c7e9521a-cf7b-fd7d-630b-a6bac4784b2d@intel.com>
On Mon, Mar 06, 2023 at 05:22:19PM +0100, Das, Nirmoy wrote:
>
> On 3/6/2023 3:21 PM, Ville Syrjälä wrote:
> > On Mon, Mar 06, 2023 at 11:28:48AM +0100, Nirmoy Das wrote:
> >> Framebuffer is exposed to userspace so set I915_BO_ALLOC_USER
> >> flag for it. This also make sure that ttm allocates offset
> >> for lmem objects.
> > I have no idea what that means.
>
> Sorry for poor explanation.
>
> Without I915_BO_ALLOC_USER, ttm will assume the obj as kernel buffer and
> will not allocate fake offset which I needed for fb_mmap callback to work.
So that's the fake vm_pgoff thing? Doesn't that exist just so
mmap() through /dev/dri* can be passed a "gem handle"?
With fbdev mmap we already know which BO we want to map so
why would any of that stuff even be needed?
>
> Regards,
> Nirmoy
>
> >
> >> Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
> >> ---
> >> drivers/gpu/drm/i915/display/intel_dpt.c | 4 +++-
> >> drivers/gpu/drm/i915/display/intel_fbdev.c | 3 ++-
> >> drivers/gpu/drm/i915/display/intel_plane_initial.c | 3 ++-
> >> 3 files changed, 7 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
> >> index ad1a37b515fb..2e6238881860 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
> >> @@ -254,7 +254,9 @@ intel_dpt_create(struct intel_framebuffer *fb)
> >>
> >> size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
> >>
> >> - dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
> >> + dpt_obj = i915_gem_object_create_lmem(i915, size,
> >> + I915_BO_ALLOC_CONTIGUOUS |
> >> + I915_BO_ALLOC_USER);
> >> if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
> >> dpt_obj = i915_gem_object_create_stolen(i915, size);
> >> if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
> >> diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
> >> index 3659350061a7..98ae3a3a986a 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_fbdev.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
> >> @@ -163,7 +163,8 @@ static int intelfb_alloc(struct drm_fb_helper *helper,
> >> obj = ERR_PTR(-ENODEV);
> >> if (HAS_LMEM(dev_priv)) {
> >> obj = i915_gem_object_create_lmem(dev_priv, size,
> >> - I915_BO_ALLOC_CONTIGUOUS);
> >> + I915_BO_ALLOC_CONTIGUOUS |
> >> + I915_BO_ALLOC_USER);
> >> } else {
> >> /*
> >> * If the FB is too big, just don't use it since fbdev is not very
> >> diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c b/drivers/gpu/drm/i915/display/intel_plane_initial.c
> >> index bb6ea7de5c61..4a3680f6a3f5 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_plane_initial.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c
> >> @@ -110,7 +110,8 @@ initial_plane_vma(struct drm_i915_private *i915,
> >> size * 2 > i915->dsm.usable_size)
> >> return NULL;
> >>
> >> - obj = i915_gem_object_create_region_at(mem, phys_base, size, 0);
> >> + obj = i915_gem_object_create_region_at(mem, phys_base, size,
> >> + I915_BO_ALLOC_USER);
> >> if (IS_ERR(obj))
> >> return NULL;
> >>
> >> --
> >> 2.39.0
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2023-03-06 17:31 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-06 10:28 [Intel-gfx] [PATCH 1/3] drm/i915: Set I915_BO_ALLOC_USER for framebuffer Nirmoy Das
2023-03-06 10:28 ` Nirmoy Das
2023-03-06 10:28 ` [Intel-gfx] [PATCH 2/3] drm/i915: Add a helper func for gem obj mmap Nirmoy Das
2023-03-06 10:28 ` Nirmoy Das
2023-03-06 14:26 ` [Intel-gfx] " Ville Syrjälä
2023-03-06 14:26 ` Ville Syrjälä
2023-03-06 16:18 ` [Intel-gfx] " Das, Nirmoy
2023-03-06 16:18 ` Das, Nirmoy
2023-03-06 10:28 ` [Intel-gfx] [PATCH RFC 3/3] drm/i915/display: Implement fb_mmap callback function Nirmoy Das
2023-03-06 10:28 ` Nirmoy Das
2023-03-06 12:39 ` kernel test robot
2023-03-06 13:20 ` kernel test robot
2023-03-06 14:32 ` [Intel-gfx] " Ville Syrjälä
2023-03-06 14:32 ` Ville Syrjälä
2023-03-07 14:50 ` [Intel-gfx] " Das, Nirmoy
2023-03-07 14:50 ` Das, Nirmoy
2023-03-06 16:34 ` kernel test robot
2023-03-06 10:32 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for series starting with [1/3] drm/i915: Set I915_BO_ALLOC_USER for framebuffer Patchwork
2023-03-06 14:21 ` [Intel-gfx] [PATCH 1/3] " Ville Syrjälä
2023-03-06 16:22 ` Das, Nirmoy
2023-03-06 17:30 ` Ville Syrjälä [this message]
2023-03-07 7:20 ` Das, Nirmoy
-- strict thread matches above, loose matches on Subject: below --
2023-03-06 12:07 Nirmoy Das
2023-03-06 12:25 ` Matthew Auld
2023-03-06 13:31 ` Das, Nirmoy
2023-03-06 13:49 ` Matthew Auld
2023-03-06 13:54 ` Das, Nirmoy
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=ZAYjTCgyYbBtbE+N@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=nirmoy.das@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.