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

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
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
@@ -32,6 +32,21 @@ static const struct drm_connector_helper_funcs vkms_conn_helper_funcs = {
	.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)
{
	struct vkms_output *output = &vkmsdev->output;
@@ -39,7 +54,7 @@ int vkms_output_init(struct vkms_device *vkmsdev, int index)
	struct drm_connector *connector = &output->connector;
	struct drm_encoder *encoder = &output->encoder;
	struct drm_crtc *crtc = &output->crtc;
	struct vkms_plane *primary, *cursor = NULL, *overlay = NULL;
	struct vkms_plane *primary, *cursor = NULL;
	int ret;
	int writeback;

@@ -48,12 +63,9 @@ int vkms_output_init(struct vkms_device *vkmsdev, int index)
		return PTR_ERR(primary);

	if (vkmsdev->config->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);
		ret = vkms_add_overlay_plane(vkmsdev, index, crtc);
		if (ret)
			return ret;
	}

	if (vkmsdev->config->cursor) {