From: Imre Deak <imre.deak@intel.com>
To: James Jones <jajones@nvidia.com>
Cc: "Danilo Krummrich" <dakr@kernel.org>,
"Lyude Paul" <lyude@redhat.com>,
nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org, "David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Ville Syrjälä" <ville.syrjala@linux.intel.com>
Subject: Re: [PATCH] drm/nouveau: Pass along the format info from .fb_create() nouveau_framebuffer_new()
Date: Fri, 1 Aug 2025 05:28:23 +0300 [thread overview]
Message-ID: <aIwmRwgOa3-YAhna@ideak-desk> (raw)
In-Reply-To: <20250731234104.25243-1-jajones@nvidia.com>
On Thu, Jul 31, 2025 at 04:41:04PM -0700, James Jones wrote:
> Plumb the format info from .fb_create() all the way to
> nouveau_framebuffer_new() to avoid the redundant lookup.
> Also plumb the format info from there down to
> drm_helper_mode_fill_fb_struct() as required, avoiding
> a WARN_ON() and failure every time this path is used,
> e.g., during fbdev init.
>
> Fixes: 41ab92d35ccd ("drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory")
> Signed-off-by: James Jones <jajones@nvidia.com>
> CC: Ville Syrjälä <ville.syrjala@linux.intel.com>
I posted this change already:
https://lore.kernel.org/all/20250728101603.243788-3-imre.deak@intel.com
> ---
> drivers/gpu/drm/nouveau/nouveau_display.c | 9 +++------
> drivers/gpu/drm/nouveau/nouveau_display.h | 1 +
> 2 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
> index e1e542126310..805d0a87aa54 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
> @@ -253,6 +253,7 @@ nouveau_check_bl_size(struct nouveau_drm *drm, struct nouveau_bo *nvbo,
>
> int
> nouveau_framebuffer_new(struct drm_device *dev,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd,
> struct drm_gem_object *gem,
> struct drm_framebuffer **pfb)
> @@ -260,7 +261,6 @@ nouveau_framebuffer_new(struct drm_device *dev,
> struct nouveau_drm *drm = nouveau_drm(dev);
> struct nouveau_bo *nvbo = nouveau_gem_object(gem);
> struct drm_framebuffer *fb;
> - const struct drm_format_info *info;
> unsigned int height, i;
> uint32_t tile_mode;
> uint8_t kind;
> @@ -295,9 +295,6 @@ nouveau_framebuffer_new(struct drm_device *dev,
> kind = nvbo->kind;
> }
>
> - info = drm_get_format_info(dev, mode_cmd->pixel_format,
> - mode_cmd->modifier[0]);
> -
> for (i = 0; i < info->num_planes; i++) {
> height = drm_format_info_plane_height(info,
> mode_cmd->height,
> @@ -321,7 +318,7 @@ nouveau_framebuffer_new(struct drm_device *dev,
> if (!(fb = *pfb = kzalloc(sizeof(*fb), GFP_KERNEL)))
> return -ENOMEM;
>
> - drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
> + drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd);
> fb->obj[0] = gem;
>
> ret = drm_framebuffer_init(dev, fb, &nouveau_framebuffer_funcs);
> @@ -344,7 +341,7 @@ nouveau_user_framebuffer_create(struct drm_device *dev,
> if (!gem)
> return ERR_PTR(-ENOENT);
>
> - ret = nouveau_framebuffer_new(dev, mode_cmd, gem, &fb);
> + ret = nouveau_framebuffer_new(dev, info, mode_cmd, gem, &fb);
> if (ret == 0)
> return fb;
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.h b/drivers/gpu/drm/nouveau/nouveau_display.h
> index e45f211501f6..d569240df354 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.h
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.h
> @@ -10,6 +10,7 @@
>
> int
> nouveau_framebuffer_new(struct drm_device *dev,
> + const struct drm_format_info *info,
> const struct drm_mode_fb_cmd2 *mode_cmd,
> struct drm_gem_object *gem,
> struct drm_framebuffer **pfb);
> --
> 2.50.1
>
next prev parent reply other threads:[~2025-08-01 2:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-31 23:41 [PATCH] drm/nouveau: Pass along the format info from .fb_create() nouveau_framebuffer_new() James Jones
2025-08-01 2:28 ` Imre Deak [this message]
2025-08-01 20:30 ` James Jones
2025-08-02 14:24 ` Imre Deak
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=aIwmRwgOa3-YAhna@ideak-desk \
--to=imre.deak@intel.com \
--cc=airlied@gmail.com \
--cc=dakr@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jajones@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lyude@redhat.com \
--cc=nouveau@lists.freedesktop.org \
--cc=simona@ffwll.ch \
--cc=ville.syrjala@linux.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.