From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch, airlied@gmail.com, javierm@redhat.com,
jfalempe@redhat.com
Cc: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v2 00/11] drm: Introduce DRM client library
Date: Wed, 2 Oct 2024 15:04:26 +0200 [thread overview]
Message-ID: <20241002131306.288618-1-tzimmermann@suse.de> (raw)
With the next DRM client coming soon (drm_log) and most of DRM's
fbdev emulation consolidated in a few places, it's time to provide
a single place for the clients.
The new module drm_client_lib.ko stores most of the in-kernel client
code. It is designed such that drivers can opt into client support,
but the presence of the client module depends on the user's kernel
configuration. Without selected clients, no client module will be
build.
Version 2 of this patchset is a significant rework of the patches,
so there are no R-bs kept. The base client code and client event
handling remains in the DRM core. This simplifies module dependencies.
But suspend and resume are now handled in client helpers instead of
direct calls to fbdev emulation. This breaks a cyclic dependency
among the involved modules. It also allows any client to process
suspend and resume events.
v2:
- rework of the overall design
- keep base client code in DRM core.
Thomas Zimmermann (11):
drm/i915: Select DRM_CLIENT_SELECTION
drm/xe: Select DRM_CLIENT_SELECTION
drm/fbdev: Select fbdev I/O helpers from modules that require them
drm/fbdev: Store fbdev module parameters in separate file
drm/client: Move client event handlers to drm_client_event.c
drm/client: Move suspend/resume into DRM client callbacks
drm/amdgpu: Suspend and resume internal clients with client helpers
drm/nouveau: Suspend and resume clients with client helpers
drm/radeon: Suspend and resume clients with client helpers
drm/client: Make client support optional
drm/client: Add client-lib module
Documentation/gpu/drm-client.rst | 3 +
drivers/gpu/drm/Kconfig | 39 +++-
drivers/gpu/drm/Makefile | 20 +-
drivers/gpu/drm/amd/amdgpu/Kconfig | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 22 +-
drivers/gpu/drm/drm_client.c | 121 -----------
drivers/gpu/drm/drm_client_event.c | 195 ++++++++++++++++++
drivers/gpu/drm/drm_client_setup.c | 3 +
drivers/gpu/drm/drm_drv.c | 2 +-
drivers/gpu/drm/drm_fb_helper.c | 31 ---
drivers/gpu/drm/drm_fbdev_client.c | 30 ++-
drivers/gpu/drm/drm_file.c | 2 +-
drivers/gpu/drm/drm_internal.h | 7 +
drivers/gpu/drm/drm_kms_helper_common.c | 38 ++++
drivers/gpu/drm/drm_modeset_helper.c | 14 +-
drivers/gpu/drm/drm_probe_helper.c | 2 +-
drivers/gpu/drm/i915/Kconfig | 1 +
.../drm/i915/display/intel_display_driver.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_display.c | 8 +-
drivers/gpu/drm/nouveau/nouveau_vga.c | 2 +-
drivers/gpu/drm/radeon/radeon_device.c | 19 +-
drivers/gpu/drm/radeon/radeon_fbdev.c | 6 -
drivers/gpu/drm/radeon/radeon_mode.h | 3 -
drivers/gpu/drm/xe/Kconfig | 1 +
include/drm/drm_client.h | 39 +++-
include/drm/drm_client_event.h | 27 +++
26 files changed, 423 insertions(+), 215 deletions(-)
create mode 100644 drivers/gpu/drm/drm_client_event.c
create mode 100644 include/drm/drm_client_event.h
--
2.46.0
next reply other threads:[~2024-10-02 13:13 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-02 13:04 Thomas Zimmermann [this message]
2024-10-02 13:04 ` [PATCH v2 01/11] drm/i915: Select DRM_CLIENT_SELECTION Thomas Zimmermann
2024-10-02 13:04 ` [PATCH v2 02/11] drm/xe: " Thomas Zimmermann
2024-10-02 13:04 ` [PATCH v2 03/11] drm/fbdev: Select fbdev I/O helpers from modules that require them Thomas Zimmermann
2024-10-04 18:29 ` kernel test robot
2024-10-02 13:04 ` [PATCH v2 04/11] drm/fbdev: Store fbdev module parameters in separate file Thomas Zimmermann
2024-10-02 13:04 ` [PATCH v2 05/11] drm/client: Move client event handlers to drm_client_event.c Thomas Zimmermann
2024-10-02 13:04 ` [PATCH v2 06/11] drm/client: Move suspend/resume into DRM client callbacks Thomas Zimmermann
2024-10-02 13:04 ` [PATCH v2 07/11] drm/amdgpu: Suspend and resume internal clients with client helpers Thomas Zimmermann
2024-10-02 13:04 ` [PATCH v2 08/11] drm/nouveau: Suspend and resume " Thomas Zimmermann
2024-10-02 13:04 ` [PATCH v2 09/11] drm/radeon: " Thomas Zimmermann
2024-10-02 13:04 ` [PATCH v2 10/11] drm/client: Make client support optional Thomas Zimmermann
2024-10-05 1:34 ` kernel test robot
2024-10-02 13:04 ` [PATCH v2 11/11] drm/client: Add client-lib module Thomas Zimmermann
2024-10-02 15:04 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Introduce DRM client library (rev2) Patchwork
2024-10-02 15:04 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-10-02 15:52 ` ✓ Fi.CI.BAT: success " Patchwork
2024-10-03 17:10 ` [PATCH v2 00/11] drm: Introduce DRM client library Jocelyn Falempe
2024-10-03 18:01 ` ✗ Fi.CI.IGT: failure for drm: Introduce DRM client library (rev2) 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=20241002131306.288618-1-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=airlied@gmail.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=javierm@redhat.com \
--cc=jfalempe@redhat.com \
--cc=simona@ffwll.ch \
/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