Louis Chauvet
9b5c7e8b45
drm/vkms: Add config for default plane pipeline
...
With the introduction of color pipeline in VKMS, the default device may
have planes with color pipelines. To avoid breaking existing uAPI,
create a kernel argument to disable them by default and a vkms_config
field to configure the plane.
This field is not definitive and will be replaced once the uAPI will be
able to configure color pipelines. For now devices created with ConfigFS
will not have any color pipeline so we can decide later how the uAPI
will look like.
Reviewed-by: Alex Hung <alex.hung@amd.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Simon Ser <contact@emersion.fr >
Link: https://patch.msgid.link/20251115000237.3561250-17-alex.hung@amd.com
2025-11-26 23:03:33 +01:00
José Expósito
6f00987f5c
drm/vkms: Allow to configure connector status
...
Allow to store the connector status in vkms_config_connector and add a
getter and a setter functions as well a KUnit test.
This change only adds the configuration, the connector status is not
used yet.
Tested-by: Mark Yacoub <markyacoub@google.com >
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Reviewed-by: Harry Wentland <harry.wentland@amd.com >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://lore.kernel.org/r/20251016175618.10051-15-jose.exposito89@gmail.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
2025-10-22 13:19:26 +02:00
José Expósito
2c7aafc05c
drm/vkms: Allow to attach connectors and encoders
...
Add a list of possible encoders to the connector configuration and
helpers to attach and detach them.
Now that the default configuration has its connector and encoder
correctly, configure the output following the configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-15-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:28 +01:00
José Expósito
da38c72018
drm/vkms: Allow to configure multiple connectors
...
Add a list of connectors to vkms_config and helper functions to add and
remove as many connectors as wanted.
For backwards compatibility, add one enabled connector to the default
configuration.
A future patch will allow to attach connectors and encoders, but for the
moment there are no changes in the way the output is configured.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-14-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:28 +01:00
José Expósito
b8776fc9b2
drm/vkms: Allow to attach encoders and CRTCs
...
Add a list of possible CRTCs to the encoder configuration and helpers to
attach and detach them.
Now that the default configuration has its encoder and CRTC correctly
attached, configure the output following the configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-13-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:27 +01:00
José Expósito
f60a183dc9
drm/vkms: Allow to configure multiple encoders
...
Add a list of encoders to vkms_config and helper functions to add and
remove as many encoders as wanted.
For backwards compatibility, add one encoder to the default
configuration.
A future patch will allow to attach encoders and CRTCs, but for the
moment there are no changes in the way the output is configured.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-12-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:26 +01:00
José Expósito
c204bf652a
drm/vkms: Allow to attach planes and CRTCs
...
Add a list of possible CRTCs to the plane configuration and helpers to
attach, detach and get the primary and cursor planes attached to a CRTC.
Now that the default configuration has its planes and CRTC correctly
attached, configure the output following the configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-11-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:26 +01:00
José Expósito
600df32dac
drm/vkms: Allow to configure multiple CRTCs
...
Add a list of CRTCs to vkms_config and helper functions to add and
remove as many CRTCs as wanted.
For backwards compatibility, add one CRTC to the default configuration.
A future patch will allow to attach planes and CRTCs, but for the
moment there are no changes in the way the output is configured.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-10-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:24 +01:00
José Expósito
bc5b0d5dcc
drm/vkms: Allow to configure multiple planes
...
Add a list of planes to vkms_config and create as many planes as
configured during output initialization.
For backwards compatibility, add one primary plane and, if configured,
one cursor plane and NUM_OVERLAY_PLANES planes to the default
configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-9-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:24 +01:00
Louis Chauvet
d1386d721d
drm/vkms: Add a validation function for VKMS configuration
...
As the configuration will be used by userspace, add a validator to avoid
creating a broken DRM device.
For the moment, the function always returns true, but rules will be
added in future patches.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: José Expósito <jose.exposito89@gmail.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-8-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:23 +01:00
José Expósito
969a3a4e2b
drm/vkms: Set device name from vkms_config
...
In order to be able to create multiple devices, the device name needs to
be unique.
Allow to set it in the VKMS configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-7-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:22 +01:00
José Expósito
8b059b0c3f
drm/vkms: Move default_config creation to its own function
...
Extract the initialization of the default configuration to a function.
Refactor, no functional changes.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-6-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:21 +01:00
José Expósito
d3ae1e394b
drm/vkms: Extract vkms_config header
...
Creating a new vkms_config structure will be more complex once we
start adding more options.
Extract the vkms_config structure to its own header and source files
and add functions to create and delete a vkms_config and to initialize
debugfs.
Refactor, no functional changes.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-5-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:21 +01:00