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: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20200228081828.18463-3-tzimmermann@suse.de
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
#include <drm/drm_gem_vram_helper.h>
|
||||
#include <drm/drm_plane_helper.h>
|
||||
#include <drm/drm_probe_helper.h>
|
||||
#include <drm/drm_simple_kms_helper.h>
|
||||
|
||||
#include "ast_drv.h"
|
||||
#include "ast_tables.h"
|
||||
@@ -957,28 +958,18 @@ err_kfree:
|
||||
* 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)
|
||||
{
|
||||
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);
|
||||
if (!ast_encoder)
|
||||
return -ENOMEM;
|
||||
ret = drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_DAC);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
drm_encoder_init(dev, &ast_encoder->base, &ast_enc_funcs,
|
||||
DRM_MODE_ENCODER_DAC, NULL);
|
||||
encoder->possible_crtcs = 1;
|
||||
|
||||
ast_encoder->base.possible_crtcs = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user