From: Ville Syrjala <ville.syrjala@linux.intel.com>
To: dri-devel@lists.freedesktop.org
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
Zack Rusin <zack.rusin@broadcom.com>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>
Subject: [PATCH 18/19] drm/vmwgfx: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()
Date: Thu, 10 Apr 2025 19:32:17 +0300 [thread overview]
Message-ID: <20250410163218.15130-19-ville.syrjala@linux.intel.com> (raw)
In-Reply-To: <20250410163218.15130-1-ville.syrjala@linux.intel.com>
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.
Cc: Zack Rusin <zack.rusin@broadcom.com>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 14 +++++++++-----
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 35965e29e408..54ea1b513950 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -500,6 +500,7 @@ static const struct drm_framebuffer_funcs vmw_framebuffer_surface_funcs = {
static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
struct vmw_user_object *uo,
struct vmw_framebuffer **out,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2
*mode_cmd)
@@ -548,7 +549,7 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
goto out_err1;
}
- drm_helper_mode_fill_fb_struct(dev, &vfbs->base.base, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &vfbs->base.base, info, mode_cmd);
memcpy(&vfbs->uo, uo, sizeof(vfbs->uo));
vmw_user_object_ref(&vfbs->uo);
@@ -602,6 +603,7 @@ static const struct drm_framebuffer_funcs vmw_framebuffer_bo_funcs = {
static int vmw_kms_new_framebuffer_bo(struct vmw_private *dev_priv,
struct vmw_bo *bo,
struct vmw_framebuffer **out,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2
*mode_cmd)
@@ -634,7 +636,7 @@ static int vmw_kms_new_framebuffer_bo(struct vmw_private *dev_priv,
}
vfbd->base.base.obj[0] = &bo->tbo.base;
- drm_helper_mode_fill_fb_struct(dev, &vfbd->base.base, NULL, mode_cmd);
+ drm_helper_mode_fill_fb_struct(dev, &vfbd->base.base, info, mode_cmd);
vfbd->base.bo = true;
vfbd->buffer = vmw_bo_reference(bo);
*out = &vfbd->base;
@@ -679,11 +681,13 @@ vmw_kms_srf_ok(struct vmw_private *dev_priv, uint32_t width, uint32_t height)
* @dev_priv: Pointer to device private struct.
* @uo: Pointer to user object to wrap the kms framebuffer around.
* Either the buffer or surface inside the user object must be NULL.
+ * @info: pixel format information.
* @mode_cmd: Frame-buffer metadata.
*/
struct vmw_framebuffer *
vmw_kms_new_framebuffer(struct vmw_private *dev_priv,
struct vmw_user_object *uo,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
struct vmw_framebuffer *vfb = NULL;
@@ -692,10 +696,10 @@ vmw_kms_new_framebuffer(struct vmw_private *dev_priv,
/* Create the new framebuffer depending one what we have */
if (vmw_user_object_surface(uo)) {
ret = vmw_kms_new_framebuffer_surface(dev_priv, uo, &vfb,
- mode_cmd);
+ info, mode_cmd);
} else if (uo->buffer) {
ret = vmw_kms_new_framebuffer_bo(dev_priv, uo->buffer, &vfb,
- mode_cmd);
+ info, mode_cmd);
} else {
BUG();
}
@@ -742,7 +746,7 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
}
- vfb = vmw_kms_new_framebuffer(dev_priv, &uo, mode_cmd);
+ vfb = vmw_kms_new_framebuffer(dev_priv, &uo, info, mode_cmd);
if (IS_ERR(vfb)) {
ret = PTR_ERR(vfb);
goto err_out;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
index 511e29cdb987..445471fe9be6 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
@@ -399,6 +399,7 @@ int vmw_kms_readback(struct vmw_private *dev_priv,
struct vmw_framebuffer *
vmw_kms_new_framebuffer(struct vmw_private *dev_priv,
struct vmw_user_object *uo,
+ const struct drm_format_info *info,
const struct drm_mode_fb_cmd2 *mode_cmd);
void vmw_guess_mode_timing(struct drm_display_mode *mode);
void vmw_kms_update_implicit_fb(struct vmw_private *dev_priv);
--
2.49.0
next prev parent reply other threads:[~2025-04-10 16:33 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-10 16:31 [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Ville Syrjala
2025-04-10 16:32 ` [PATCH 01/19] drm: Pass pixel_format+modifier to .get_format_info() Ville Syrjala
2025-04-10 19:27 ` Laurent Pinchart
2025-04-11 6:47 ` Ville Syrjälä
2025-04-11 19:19 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 02/19] drm: Pass pixel_format+modifier directly to drm_get_format_info() Ville Syrjala
2025-04-10 19:31 ` Laurent Pinchart
2025-04-10 19:43 ` kernel test robot
2025-04-11 7:23 ` Thomas Zimmermann
2025-04-11 19:27 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 03/19] drm: Look up the format info earlier Ville Syrjala
2025-04-10 19:33 ` Laurent Pinchart
2025-04-11 7:01 ` Ville Syrjälä
2025-04-11 7:18 ` Thomas Zimmermann
2025-04-11 19:27 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 04/19] drm: Pass the format info to .fb_create() Ville Syrjala
2025-04-10 19:37 ` Laurent Pinchart
2025-04-10 21:26 ` kernel test robot
2025-04-11 6:36 ` Geert Uytterhoeven
2025-04-11 19:29 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 05/19] drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct() Ville Syrjala
2025-04-10 19:38 ` Laurent Pinchart
2025-04-10 16:32 ` [PATCH 06/19] drm/malidp: Pass along the format info from .fb_create() malidp_verify_afbc_framebuffer_size() Ville Syrjala
2025-04-10 16:32 ` [PATCH 07/19] drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
2025-04-10 19:39 ` Laurent Pinchart
2025-04-10 22:58 ` kernel test robot
2025-04-11 19:31 ` [PATCH v2 " Ville Syrjala
2025-04-10 16:32 ` [PATCH 08/19] drm/gem/afbc: Eliminate redundant drm_get_format_info() Ville Syrjala
2025-04-10 16:32 ` [PATCH 09/19] drm/amdgpu: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() Ville Syrjala
2025-04-10 16:32 ` [PATCH 10/19] drm/armada: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 11/19] drm/exynos: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 12/19] drm/gma500: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 13/19] drm/i915: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 14/19] drm/komeda: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 15/19] drm/msm: " Ville Syrjala
2025-04-10 19:28 ` Dmitry Baryshkov
2025-04-10 16:32 ` [PATCH 16/19] drm/tegra: " Ville Syrjala
2025-04-10 16:32 ` [PATCH 17/19] drm/virtio: " Ville Syrjala
2025-04-16 6:44 ` Dmitry Osipenko
2025-04-10 16:32 ` Ville Syrjala [this message]
2025-04-10 16:32 ` [PATCH 19/19] drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory Ville Syrjala
2025-04-10 19:40 ` Laurent Pinchart
2025-04-10 18:46 ` ✓ CI.Patch_applied: success for drm: Eliminate redundant drm_format_info lookups Patchwork
2025-04-10 18:47 ` ✗ CI.checkpatch: warning " Patchwork
2025-04-10 18:48 ` ✓ CI.KUnit: success " Patchwork
2025-04-10 19:03 ` ✓ CI.Build: " Patchwork
2025-04-10 19:05 ` ✓ CI.Hooks: " Patchwork
2025-04-10 19:06 ` ✗ CI.checksparse: warning " Patchwork
2025-04-10 19:51 ` ✗ Xe.CI.BAT: failure " Patchwork
2025-04-11 0:20 ` ✗ Xe.CI.Full: " Patchwork
2025-04-11 7:30 ` [PATCH 00/19] " Thomas Zimmermann
2025-04-11 19:54 ` ✓ CI.Patch_applied: success for drm: Eliminate redundant drm_format_info lookups (rev2) Patchwork
2025-04-11 19:54 ` ✗ CI.checkpatch: warning " Patchwork
2025-04-11 19:56 ` ✓ CI.KUnit: success " Patchwork
2025-04-11 20:04 ` ✓ CI.Build: " Patchwork
2025-04-11 20:06 ` ✓ CI.Hooks: " Patchwork
2025-04-11 20:08 ` ✗ CI.checksparse: warning " Patchwork
2025-04-11 20:58 ` ✓ Xe.CI.BAT: success " Patchwork
2025-04-11 22:07 ` ✓ CI.Patch_applied: success for drm: Eliminate redundant drm_format_info lookups (rev6) Patchwork
2025-04-11 22:08 ` ✗ CI.checkpatch: warning " Patchwork
2025-04-11 22:09 ` ✓ CI.KUnit: success " Patchwork
2025-04-11 22:18 ` ✓ CI.Build: " Patchwork
2025-04-11 22:20 ` ✓ CI.Hooks: " Patchwork
2025-04-11 22:22 ` ✗ CI.checksparse: warning " Patchwork
2025-04-11 22:48 ` ✓ Xe.CI.BAT: success " Patchwork
2025-04-11 23:03 ` ✗ Xe.CI.Full: failure for drm: Eliminate redundant drm_format_info lookups (rev2) Patchwork
2025-04-12 0:56 ` ✗ Xe.CI.Full: failure for drm: Eliminate redundant drm_format_info lookups (rev6) Patchwork
2025-07-15 18:21 ` [PATCH 00/19] drm: Eliminate redundant drm_format_info lookups Alex Deucher
2025-07-15 18:22 ` Alex Deucher
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=20250410163218.15130-19-ville.syrjala@linux.intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=zack.rusin@broadcom.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