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@xxxxxxxxxxx> --- 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-index-from-parameter-v2-0-81540742535a@xxxxxxxxxxx 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-index-from-parameter-v1-0-6e179abf9fd4@xxxxxxxxxxx --- 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@xxxxxxxxxxx>