#include <drm/drm_crtc.h>
 #include <drm/drm_crtc_helper.h>
-#include <drm/drm_panel.h>
 #include <drm/drm_of.h>
+#include <drm/drm_panel.h>
+#include <drm/drm_simple_kms_helper.h>
 
 #include "tidss_crtc.h"
 #include "tidss_drv.h"
        .atomic_check = tidss_encoder_atomic_check,
 };
 
-static const struct drm_encoder_funcs encoder_funcs = {
-       .destroy = drm_encoder_cleanup,
-};
-
 struct drm_encoder *tidss_encoder_create(struct tidss_device *tidss,
                                         u32 encoder_type, u32 possible_crtcs)
 {
 
        enc->possible_crtcs = possible_crtcs;
 
-       ret = drm_encoder_init(&tidss->ddev, enc, &encoder_funcs,
-                              encoder_type, NULL);
+       ret = drm_simple_encoder_init(&tidss->ddev, enc, encoder_type);
        if (ret < 0)
                return ERR_PTR(ret);