drm/vkms: Add basic CRTC initialization

This commit adds the essential infrastructure for around CRTCs which
is composed of: a new data struct for output data information, a
function for creating planes, and a simple encoder attached to the
connector. Finally, due to the introduction of a new initialization
function, connectors were moved from vkms_drv.c to vkms_display.c.

Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
Reviewed-by: Haneen Mohammed <hamohammed.sa@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/b6e27bc6a54f5cb340658fa5969f7b48fbfbf1b7.1526514457.git.rodrigosiqueiramelo@gmail.com
This commit is contained in:
Rodrigo Siqueira
2018-05-16 20:56:21 -03:00
committed by Gustavo Padovan
parent c04372ea4a
commit 854502fa0a
6 changed files with 212 additions and 48 deletions

View File

@@ -1,13 +1,31 @@
#ifndef _VKMS_DRV_H_
#define _VKMS_DRV_H_
#include <drm/drm_simple_kms_helper.h>
#include <drm/drmP.h>
#include <drm/drm.h>
#include <drm/drm_encoder.h>
static const u32 vkms_formats[] = {
DRM_FORMAT_XRGB8888,
};
struct vkms_output {
struct drm_crtc crtc;
struct drm_encoder encoder;
struct drm_connector connector;
};
struct vkms_device {
struct drm_device drm;
struct platform_device *platform;
struct drm_simple_display_pipe pipe;
struct drm_connector connector;
struct vkms_output output;
};
int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
struct drm_plane *primary, struct drm_plane *cursor);
int vkms_output_init(struct vkms_device *vkmsdev);
struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev);
#endif /* _VKMS_DRV_H_ */