All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Thomas Zimmermann" <tzimmermann@suse.de>
Cc: dri-devel@lists.freedesktop.org, linux-hyperv@vger.kernel.org,
	intel-gfx@lists.freedesktop.org, imx@lists.linux.dev,
	virtualization@lists.linux.dev, Frank.Li@kernel.org,
	wsa+renesas@sang-engineering.com,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Eugenio Perez" <eperezma@redhat.com>
Subject: Re: [PATCH 3/4] drm/pixel: Link panic helpers into drm_pixel_helper.ko
Date: Mon, 19 Oct 2026 16:19:10 +0000	[thread overview]
Message-ID: <sashiko-outbox-177862@kernel.org> (raw)
In-Reply-To: <20261019154612.777074-4-tzimmermann@suse.de>

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Low] drm: missing DRM_PIXEL_HELPER select in DRM_KMS_HELPER for drm_crtc_init()
- [Low] drm/tests: link failure in drm_panic_helper_test when CONFIG_DRM_PANIC=n
- [Low] drm/xe: missing DRM_PIXEL_HELPER dependency when DRM_PANIC=y
--

commit d010f0f67d242682650aa0651dfd5a1e57612943
Author: Thomas Zimmermann <tzimmermann@suse.de>

drm/pixel: Link panic helpers into drm_pixel_helper.ko

This commit moves the DRM panic helpers from drm_kms_helper into
drm_pixel_helper.ko, drops the DRM_PANIC_HELPER Kconfig option, and
selects DRM_PIXEL_HELPER in drivers using the panic helpers.

> diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
> index 8e4a588e9111d..bf7c599443403 100644
> --- a/drivers/gpu/drm/Kconfig
> +++ b/drivers/gpu/drm/Kconfig
> @@ -46,13 +46,14 @@ config DRM_MIPI_DSI
>  config DRM_KMS_HELPER
>  	tristate
>  	depends on DRM
> -	select DRM_PANIC_HELPER if DRM_PANIC
>  	help
>  	  CRTC helpers for KMS drivers.

[Severity: Low]
Does DRM_KMS_HELPER also need to select DRM_PIXEL_HELPER if DRM_PANIC?

drivers/gpu/drm/drm_modeset_helper.c is unconditionally compiled into
drm_kms_helper, and its primary_plane_funcs structure (used by
drm_crtc_init()) includes DRM_PANIC_PLANE_FUNCS:

drivers/gpu/drm/drm_modeset_helper.c:
    static const struct drm_plane_funcs primary_plane_funcs = {
            DRM_PLANE_NON_ATOMIC_FUNCS,
            DRM_PANIC_PLANE_FUNCS,
    };

When CONFIG_DRM_PANIC is enabled, DRM_PANIC_PLANE_FUNCS expands in
include/drm/drm_panic_helper.h to reference
drm_plane_helper_display_panic_screen, which is now built into
drm_pixel_helper. If CONFIG_DRM_PANIC=y and DRM_KMS_HELPER is enabled
without a matching built-in or modular DRM_PIXEL_HELPER, linking fails
with an undefined reference to drm_plane_helper_display_panic_screen.

[ ... ]

> diff --git a/drivers/gpu/drm/Kconfig.debug b/drivers/gpu/drm/Kconfig.debug
> index 1afb9cad850f6..4573cad368a28 100644
> --- a/drivers/gpu/drm/Kconfig.debug
> +++ b/drivers/gpu/drm/Kconfig.debug
> @@ -69,7 +69,6 @@ config DRM_KUNIT_TEST
>  	select DRM_EXPORT_FOR_TESTS if m
>  	select DRM_GEM_SHMEM_HELPER
>  	select DRM_KUNIT_TEST_HELPERS
> -	select DRM_PANIC_HELPER
>  	select DRM_PIXEL_HELPER
>  	select DRM_SYSFB_HELPER
>  	select PRIME_NUMBERS

[Severity: Low]
Can removing select DRM_PANIC_HELPER from DRM_KUNIT_TEST cause a link
failure when CONFIG_DRM_PANIC is disabled?

With this change, drm_panic_helper.o is only built into drm_pixel_helper
when CONFIG_DRM_PANIC is enabled:

drivers/gpu/drm/Makefile:
    drm_pixel_helper-$(CONFIG_DRM_PANIC) += drm_panic_helper.o

However, drivers/gpu/drm/tests/Makefile still builds
drm_panic_helper_test.o unconditionally under obj-$(CONFIG_DRM_KUNIT_TEST),
and functions such as drm_panic_helper_draw_screen_user_default() in
drivers/gpu/drm/tests/drm_panic_helper_test.c call
drm_panic_helper_draw_screen_user(), drm_panic_helper_draw_screen_kmsg(),
drm_panic_helper_set_description(), and
drm_panic_helper_clear_description(). When CONFIG_DRM_KUNIT_TEST is enabled
and CONFIG_DRM_PANIC=n, linking fails with undefined references to those
symbols.

[ ... ]

> diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
> index 71426b9c91f00..f698d3c8daa9e 100644
> --- a/drivers/gpu/drm/i915/Kconfig
> +++ b/drivers/gpu/drm/i915/Kconfig
> @@ -19,6 +19,7 @@ config DRM_I915
>  	select DRM_KMS_HELPER
>  	select DRM_PANEL
>  	select DRM_MIPI_DSI
> +	select DRM_PIXEL_HELPER if DRM_PANIC
>  	select FB_IOMEM_HELPERS if DRM_FBDEV_EMULATION
>  	select RELAY
>  	select I2C

[Severity: Low]
Should DRM_XE or DRM_XE_DISPLAY in drivers/gpu/drm/xe/Kconfig also select
DRM_PIXEL_HELPER if DRM_PANIC?

When CONFIG_DRM_XE_DISPLAY=y, drivers/gpu/drm/xe/Makefile compiles
drivers/gpu/drm/i915/display/skl_universal_plane.c into xe.ko, where
skl_plane_funcs, icl_plane_funcs, and tgl_plane_funcs use
DRM_PANIC_PLANE_FUNCS:

drivers/gpu/drm/i915/display/skl_universal_plane.c:
    static const struct drm_plane_funcs skl_plane_funcs = {
            ...
            DRM_PANIC_PLANE_FUNCS,
    };

If CONFIG_DRM_XE=m, CONFIG_DRM_XE_DISPLAY=y, and CONFIG_DRM_PANIC=y are
enabled while CONFIG_DRM_PIXEL_HELPER=n, modpost fails with an undefined
reference to drm_plane_helper_display_panic_screen in xe.ko.

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261019154612.777074-1-tzimmermann@suse.de?part=3

  reply	other threads:[~2026-10-19 16:19 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-19 15:32 [PATCH 0/4] drm: Move drawing to pixel-helper module Thomas Zimmermann
2026-10-19 15:32 ` Thomas Zimmermann
2026-10-19 15:32 ` [PATCH 1/4] drm: Add helper module for working with pixel data Thomas Zimmermann
2026-10-19 15:32   ` Thomas Zimmermann
2026-10-19 16:07   ` sashiko-bot
2026-10-19 15:32 ` [PATCH 2/4] drm/pixel: Link format helpers into drm_pixel_helper.ko Thomas Zimmermann
2026-10-19 15:32   ` Thomas Zimmermann
2026-10-19 16:11   ` sashiko-bot
2026-10-19 15:32 ` [PATCH 3/4] drm/pixel: Link panic " Thomas Zimmermann
2026-10-19 15:32   ` Thomas Zimmermann
2026-10-19 16:19   ` sashiko-bot [this message]
2026-10-19 16:32     ` Thomas Zimmermann
2026-10-19 15:32 ` [PATCH 4/4] drm/pixel: Link draw " Thomas Zimmermann
2026-10-19 15:32   ` Thomas Zimmermann
2026-10-19 16:32   ` sashiko-bot
2026-10-19 17:48 ` ✗ Fi.CI.BUILD: failure for drm: Move drawing to pixel-helper module Patchwork

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=sashiko-outbox-177862@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=Frank.Li@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eperezma@redhat.com \
    --cc=imx@lists.linux.dev \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=tzimmermann@suse.de \
    --cc=virtualization@lists.linux.dev \
    --cc=wsa+renesas@sang-engineering.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.