};
struct vkms_config;
+struct vkms_config_plane;
/**
* struct vkms_device - Description of a VKMS device
* vkms_plane_init() - Initialize a plane
*
* @vkmsdev: VKMS device containing the plane
- * @type: type of plane to initialize
+ * @plane_cfg: plane configuration
*/
struct vkms_plane *vkms_plane_init(struct vkms_device *vkmsdev,
- enum drm_plane_type type);
+ struct vkms_config_plane *plane_cfg);
/* CRC Support */
const char *const *vkms_get_crc_sources(struct drm_crtc *crtc,
return -EINVAL;
vkms_config_for_each_plane(vkmsdev->config, plane_cfg) {
- enum drm_plane_type type;
-
- type = vkms_config_plane_get_type(plane_cfg);
-
- plane_cfg->plane = vkms_plane_init(vkmsdev, type);
+ plane_cfg->plane = vkms_plane_init(vkmsdev, plane_cfg);
if (IS_ERR(plane_cfg->plane)) {
DRM_DEV_ERROR(dev->dev, "Failed to init vkms plane\n");
return PTR_ERR(plane_cfg->plane);
// SPDX-License-Identifier: GPL-2.0+
+#include "vkms_config.h"
#include <linux/iosys-map.h>
#include <drm/drm_atomic.h>
};
struct vkms_plane *vkms_plane_init(struct vkms_device *vkmsdev,
- enum drm_plane_type type)
+ struct vkms_config_plane *plane_cfg)
{
struct drm_device *dev = &vkmsdev->drm;
struct vkms_plane *plane;
plane = drmm_universal_plane_alloc(dev, struct vkms_plane, base, 0,
&vkms_plane_funcs,
vkms_formats, ARRAY_SIZE(vkms_formats),
- NULL, type, NULL);
+ NULL, vkms_config_plane_get_type(plane_cfg),
+ NULL);
if (IS_ERR(plane))
return plane;