To allow emulation of different kind of encoders, make the encoder type configurable. Signed-off-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx> --- drivers/gpu/drm/vkms/vkms_config.c | 1 + drivers/gpu/drm/vkms/vkms_config.h | 2 ++ drivers/gpu/drm/vkms/vkms_output.c | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vkms/vkms_config.c b/drivers/gpu/drm/vkms/vkms_config.c index 3e8883298e73e75fb16ac05e449a7ee8fac72935..a20644031ce923fad98d486a8bb2ec7859038dcd 100644 --- a/drivers/gpu/drm/vkms/vkms_config.c +++ b/drivers/gpu/drm/vkms/vkms_config.c @@ -205,6 +205,7 @@ struct vkms_config_encoder *vkms_config_create_encoder(struct vkms_config *vkms_ if (!vkms_config_encoder) return NULL; + vkms_config_encoder->type = DRM_MODE_ENCODER_VIRTUAL; list_add(&vkms_config_encoder->link, &vkms_config->encoders); xa_init_flags(&vkms_config_encoder->possible_crtcs, XA_FLAGS_ALLOC); diff --git a/drivers/gpu/drm/vkms/vkms_config.h b/drivers/gpu/drm/vkms/vkms_config.h index 6844ca8523decd51116fb36f98ed40a09bc2284b..23f420291cfc0044ccb2be90688d021aab10c1c0 100644 --- a/drivers/gpu/drm/vkms/vkms_config.h +++ b/drivers/gpu/drm/vkms/vkms_config.h @@ -55,6 +55,7 @@ struct vkms_config_crtc { * @link: Link to the others encoders * @name: Name of the encoder * @possible_crtcs: List of CRTC that can be used with this encoder + * @type: Type of encoder, see drm_mode.h, DRM_MODE_ENCODER_* * @encoder: Internal usage. This pointer should never be considered as valid. It can be used to * store a temporary reference to a vkms encoder during device creation. This pointer is * not managed by the configuration and must be managed by other means. @@ -64,6 +65,7 @@ struct vkms_config_encoder { char *name; struct xarray possible_crtcs; + char type; /* Internal usage */ struct drm_encoder *encoder; diff --git a/drivers/gpu/drm/vkms/vkms_output.c b/drivers/gpu/drm/vkms/vkms_output.c index 8f7df59aa2c1517eb78e9b94b8611b15431fd234..a48625e879f59a33e18e636cafcdc7f841a0ff1f 100644 --- a/drivers/gpu/drm/vkms/vkms_output.c +++ b/drivers/gpu/drm/vkms/vkms_output.c @@ -132,7 +132,7 @@ int vkms_output_init(struct vkms_device *vkmsdev) if (!config_encoder->encoder) return -ENOMEM; ret = drmm_encoder_init(dev, config_encoder->encoder, NULL, - DRM_MODE_ENCODER_VIRTUAL, config_encoder->name); + config_encoder->type, config_encoder->name); if (ret) { DRM_ERROR("Failed to init encoder\n"); return ret; -- 2.47.1