Commit 4220fdf0 authored by Thomas Zimmermann's avatar Thomas Zimmermann

drm/ast: Use simple encoder

The ast driver uses an empty implementation for its encoder. Replace
the code with the generic simple encoder.

v2:
	* rebase onto new simple-encoder interface
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20200228081828.18463-3-tzimmermann@suse.de
parent 63170ac6
...@@ -121,6 +121,7 @@ struct ast_private { ...@@ -121,6 +121,7 @@ struct ast_private {
unsigned int next_index; unsigned int next_index;
} cursor; } cursor;
struct drm_encoder encoder;
struct drm_plane primary_plane; struct drm_plane primary_plane;
struct drm_plane cursor_plane; struct drm_plane cursor_plane;
...@@ -238,13 +239,8 @@ struct ast_crtc { ...@@ -238,13 +239,8 @@ struct ast_crtc {
u8 offset_x, offset_y; u8 offset_x, offset_y;
}; };
struct ast_encoder {
struct drm_encoder base;
};
#define to_ast_crtc(x) container_of(x, struct ast_crtc, base) #define to_ast_crtc(x) container_of(x, struct ast_crtc, base)
#define to_ast_connector(x) container_of(x, struct ast_connector, base) #define to_ast_connector(x) container_of(x, struct ast_connector, base)
#define to_ast_encoder(x) container_of(x, struct ast_encoder, base)
struct ast_vbios_stdtable { struct ast_vbios_stdtable {
u8 misc; u8 misc;
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include <drm/drm_gem_vram_helper.h> #include <drm/drm_gem_vram_helper.h>
#include <drm/drm_plane_helper.h> #include <drm/drm_plane_helper.h>
#include <drm/drm_probe_helper.h> #include <drm/drm_probe_helper.h>
#include <drm/drm_simple_kms_helper.h>
#include "ast_drv.h" #include "ast_drv.h"
#include "ast_tables.h" #include "ast_tables.h"
...@@ -957,28 +958,18 @@ static int ast_crtc_init(struct drm_device *dev) ...@@ -957,28 +958,18 @@ static int ast_crtc_init(struct drm_device *dev)
* Encoder * Encoder
*/ */
static void ast_encoder_destroy(struct drm_encoder *encoder)
{
drm_encoder_cleanup(encoder);
kfree(encoder);
}
static const struct drm_encoder_funcs ast_enc_funcs = {
.destroy = ast_encoder_destroy,
};
static int ast_encoder_init(struct drm_device *dev) static int ast_encoder_init(struct drm_device *dev)
{ {
struct ast_encoder *ast_encoder; struct ast_private *ast = dev->dev_private;
struct drm_encoder *encoder = &ast->encoder;
int ret;
ast_encoder = kzalloc(sizeof(struct ast_encoder), GFP_KERNEL); ret = drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_DAC);
if (!ast_encoder) if (ret)
return -ENOMEM; return ret;
drm_encoder_init(dev, &ast_encoder->base, &ast_enc_funcs, encoder->possible_crtcs = 1;
DRM_MODE_ENCODER_DAC, NULL);
ast_encoder->base.possible_crtcs = 1;
return 0; return 0;
} }
......
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