|
|
Subscribe / Log in / New account

drm/vkms: Introduce detailed configuration

From:  Louis Chauvet <louis.chauvet-AT-bootlin.com>
To:  Maíra Canal <mairacanal-AT-riseup.net>, Haneen Mohammed <hamohammed.sa-AT-gmail.com>, Simona Vetter <simona-AT-ffwll.ch>, Melissa Wen <melissa.srw-AT-gmail.com>, Maarten Lankhorst <maarten.lankhorst-AT-linux.intel.com>, Maxime Ripard <mripard-AT-kernel.org>, Thomas Zimmermann <tzimmermann-AT-suse.de>, David Airlie <airlied-AT-gmail.com>
Subject:  [PATCH v3 00/16] drm/vkms: Introduce detailed configuration
Date:  Tue, 21 Jan 2025 11:55:24 +0100
Message-ID:  <20250121-google-remove-crtc-index-from-parameter-v3-0-cac00a3c3544@bootlin.com>
Cc:  arthurgrillo-AT-riseup.net, jeremie.dautheribes-AT-bootlin.com, miquel.raynal-AT-bootlin.com, thomas.petazzoni-AT-bootlin.com, seanpaul-AT-google.com, nicolejadeyee-AT-google.com, linux-kernel-AT-vger.kernel.org, dri-devel-AT-lists.freedesktop.org, Louis Chauvet <louis.chauvet-AT-bootlin.com>, José Expósito <jose.exposito89-AT-gmail.com>
Archive-link:  Article

The current code is not flexible to configure the VKMS device. In
preparation for ConfigFS interface introduce few structure that can be
used to configure the device creation: `vkms_config`.

This part is splitted from the ConfigFS implementation itself to avoid
mixing two complex interfaces.

The vkms_config structure will allows the configuration of:
- planes
    - name
    - possible_crtcs
    - supported_rotations
    - default_rotation
    - type
    - format
- crtcs
    - name
    - possible_planes [automatically filled by helpers]
    - possible_encoders [automatically filled by helpers]
- encoders
    - name
    - type
    - possible_crtcs
- connectors:
    - type
    - status
    - EDID

Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
---
Changes in v3:
- Remove the plane color encoding/range and not yet supported formats so 
  it does not have any dependencies
- Created a helper to get config for a connector
- Rebased on drm-misc-next
- Link to v2: https://lore.kernel.org/r/20241122-google-remove-crtc-ind...

Changes in v2:
- Rebased on drm-misc-next
- Added support for many new configuration
- Link to v1: https://lore.kernel.org/r/20240814-google-remove-crtc-ind...

---
Louis Chauvet (16):
      drm/vkms: Extract vkms_config header
      drm/vkms: Add a validation function for vkms configuration
      drm/vkms: Move default_config creation to its own function
      drm/vkms: Introduce config for plane
      drm/vkms: Introduce config for plane name
      drm/vkms: Introduce config for plane rotation
      drm/vkms: Introduce config for CRTCs and encoders
      drm/vkms: Introduce config for encoder name
      drm/vkms: Introduce config for CRTC name
      drm/vkms: Add test for config structure
      drm/vkms: Introduce config for connector
      drm/vkms: Introduce config for connector type
      drm/vkms: Introduce config for plane format
      drm/vkms: Introduce config for connector status
      drm/vkms: Introduce config for connector EDID
      drm/vkms: Introduce config for encoder type

 drivers/gpu/drm/vkms/Makefile                 |   3 +-
 drivers/gpu/drm/vkms/tests/Makefile           |   3 +
 drivers/gpu/drm/vkms/tests/vkms_config_test.c | 137 +++++++
 drivers/gpu/drm/vkms/vkms_config.c            | 556 ++++++++++++++++++++++++++
 drivers/gpu/drm/vkms/vkms_config.h            | 237 +++++++++++
 drivers/gpu/drm/vkms/vkms_crtc.c              |  10 +-
 drivers/gpu/drm/vkms/vkms_drv.c               |  42 +-
 drivers/gpu/drm/vkms/vkms_drv.h               |  25 +-
 drivers/gpu/drm/vkms/vkms_output.c            | 192 +++++----
 drivers/gpu/drm/vkms/vkms_plane.c             |  21 +-
 10 files changed, 1088 insertions(+), 138 deletions(-)
---
base-commit: 49a167c393b0ceb592b9d2e65cc4f46bcc707108
change-id: 20240521-google-remove-crtc-index-from-parameter-f9afb21c7a85

Best regards,
-- 
Louis Chauvet <louis.chauvet@bootlin.com>




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds