Commit 5edaa2b9 authored by José Expósito's avatar José Expósito Committed by Melissa Wen

drm/vkms: refactor overlay plane creation

Move the logic to create an overlay plane to its own function.
Refactor, no functional changes.
Signed-off-by: default avatarJosé Expósito <jose.exposito89@gmail.com>
Reviewed-by: default avatarMelissa Wen <mwen@igalia.com>
Signed-off-by: default avatarMelissa Wen <melissa.srw@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220107182809.141003-1-jose.exposito89@gmail.com
parent 5313fb2c
...@@ -32,6 +32,21 @@ static const struct drm_connector_helper_funcs vkms_conn_helper_funcs = { ...@@ -32,6 +32,21 @@ static const struct drm_connector_helper_funcs vkms_conn_helper_funcs = {
.get_modes = vkms_conn_get_modes, .get_modes = vkms_conn_get_modes,
}; };
static int vkms_add_overlay_plane(struct vkms_device *vkmsdev, int index,
struct drm_crtc *crtc)
{
struct vkms_plane *overlay;
overlay = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_OVERLAY, index);
if (IS_ERR(overlay))
return PTR_ERR(overlay);
if (!overlay->base.possible_crtcs)
overlay->base.possible_crtcs = drm_crtc_mask(crtc);
return 0;
}
int vkms_output_init(struct vkms_device *vkmsdev, int index) int vkms_output_init(struct vkms_device *vkmsdev, int index)
{ {
struct vkms_output *output = &vkmsdev->output; struct vkms_output *output = &vkmsdev->output;
...@@ -39,7 +54,7 @@ int vkms_output_init(struct vkms_device *vkmsdev, int index) ...@@ -39,7 +54,7 @@ int vkms_output_init(struct vkms_device *vkmsdev, int index)
struct drm_connector *connector = &output->connector; struct drm_connector *connector = &output->connector;
struct drm_encoder *encoder = &output->encoder; struct drm_encoder *encoder = &output->encoder;
struct drm_crtc *crtc = &output->crtc; struct drm_crtc *crtc = &output->crtc;
struct vkms_plane *primary, *cursor = NULL, *overlay = NULL; struct vkms_plane *primary, *cursor = NULL;
int ret; int ret;
int writeback; int writeback;
...@@ -48,12 +63,9 @@ int vkms_output_init(struct vkms_device *vkmsdev, int index) ...@@ -48,12 +63,9 @@ int vkms_output_init(struct vkms_device *vkmsdev, int index)
return PTR_ERR(primary); return PTR_ERR(primary);
if (vkmsdev->config->overlay) { if (vkmsdev->config->overlay) {
overlay = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_OVERLAY, index); ret = vkms_add_overlay_plane(vkmsdev, index, crtc);
if (IS_ERR(overlay)) if (ret)
return PTR_ERR(overlay); return ret;
if (!overlay->base.possible_crtcs)
overlay->base.possible_crtcs = drm_crtc_mask(crtc);
} }
if (vkmsdev->config->cursor) { if (vkmsdev->config->cursor) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment