Am 19.10.26 um 18:19 schrieb [email protected]:
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()
I see this is still an issue. The fix here is to move drm_crtc_init() into drivers. The only remaining callers of drm_crtc_init() are in radeon and amdgpu. There was recently a patch to move the helper there, [1] but the effort appears to have stalled.
[1] https://lore.kernel.org/dri-devel/[email protected]/
I'll do this before continuing with the pixel helpers.
- [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 <[email protected]> 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. [ ... ]
-- -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com GF: Stefan Gaiser, Jochen Jaser, Abhinav Puri, (HRB 36809, AG Nürnberg)
