[PATCH 0/3] Add separate non-KMS state; constify struct drm_driver
Daniel Vetter
daniel at ffwll.ch
Tue Feb 25 17:44:00 UTC 2020
On Tue, Feb 25, 2020 at 04:58:59PM +0100, Thomas Zimmermann wrote:
> This patchset moves legacy, non-KMS driver state from struct drm_driver
> into struct drm_legacy_state. Only non-KMS drivers provide an instance
> of the latter structure. One special case is nouveau, which supports
> legacy interfaces. It also provides an instance of the legacy state if
> the legacy interfaces have been enabled (i.e., defines the config option
> CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT)
>
> I reviewed all call sites of legacy state and functions to verify that
> DRIVER_LEGACY or DRIVER_KMS_LEGACY_CONTEXT is set on the device; or that
> DRIVER_MODESET is not set.
>
> With the mutable KMS state removed, instances of struct drm_driver can
> be declared as constant. The patchset modifies the DRM core accordingly.
> Individual drivers can follow later on.
Bikeshed: We very much have modern non-KMS drivers (vgem, etnaviv, v3d,
panfrost, ...). non-KMS != legacy, which is what you're talking about
here.
Other thing, and it's a bit raining on your parade: I don't see the point.
Sprinkling a few more #ifdef CONFIG_DRM_LEGACY over the relevant parts
sounds like a reasonable idea. But this is a lot of churn for drivers
which are all pretty much dead, and just waiting for their eventual
removal. And from a compile-testing pov of making sure modern drivers
don't use any of the deprecated stuff wrapping it in CONFIG_DRM_LEGACY
should be plenty enough.
And from a "make stuff const" I think Laurent's much more minimal series
also gets us there for all the drivers we care about.
-Daniel
>
> Thomas Zimmermann (3):
> drm: Add separate state structure for legacy, non-KMS drivers
> drm: Move non-kms driver state into struct drm_legacy_state
> drm: Constify struct drm_driver in DRM core
>
> drivers/gpu/drm/drm_bufs.c | 10 +++++-----
> drivers/gpu/drm/drm_context.c | 9 +++++----
> drivers/gpu/drm/drm_drv.c | 12 ++++++++----
> drivers/gpu/drm/drm_file.c | 4 ++--
> drivers/gpu/drm/drm_legacy_misc.c | 6 +++---
> drivers/gpu/drm/drm_lock.c | 7 ++++---
> drivers/gpu/drm/drm_pci.c | 16 ++++++++++------
> drivers/gpu/drm/drm_vblank.c | 11 ++++++-----
> drivers/gpu/drm/i810/i810_drv.c | 10 +++++++---
> drivers/gpu/drm/mga/mga_drv.c | 16 ++++++++++------
> drivers/gpu/drm/nouveau/nouveau_drm.c | 8 ++++++++
> drivers/gpu/drm/r128/r128_drv.c | 16 ++++++++++------
> drivers/gpu/drm/savage/savage_drv.c | 12 ++++++++----
> drivers/gpu/drm/sis/sis_drv.c | 8 ++++++--
> drivers/gpu/drm/tdfx/tdfx_drv.c | 6 +++++-
> drivers/gpu/drm/via/via_drv.c | 16 ++++++++++------
> include/drm/drm_device.h | 2 +-
> include/drm/drm_drv.h | 21 +++++----------------
> include/drm/drm_legacy.h | 27 +++++++++++++++++++++++----
> include/drm/drm_pci.h | 4 ++--
> 20 files changed, 138 insertions(+), 83 deletions(-)
>
> --
> 2.25.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list