* this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <drm/drm_atomic_helper.h>
 #include <drm/drm_crtc.h>
 #include <drm/drm_crtc_helper.h>
 
 
 static const struct drm_connector_funcs omap_connector_funcs = {
        .dpms = drm_helper_connector_dpms,
+       .reset = drm_atomic_helper_connector_reset,
        .detect = omap_connector_detect,
        .fill_modes = drm_helper_probe_single_connector_modes,
        .destroy = omap_connector_destroy,
+       .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
+       .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static const struct drm_connector_helper_funcs omap_connector_helper_funcs = {
 
 
 #include <linux/completion.h>
 
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
 #include <drm/drm_crtc.h>
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_mode.h>
        omap_crtc->flip_event = event;
        omap_crtc->flip_state = OMAP_PAGE_FLIP_WAIT;
 
+       drm_atomic_set_fb_for_plane(primary->state, fb);
        primary->fb = fb;
 
        spin_unlock_irqrestore(&dev->event_lock, flags);
 }
 
 static const struct drm_crtc_funcs omap_crtc_funcs = {
+       .reset = drm_atomic_helper_crtc_reset,
        .set_config = drm_crtc_helper_set_config,
        .destroy = omap_crtc_destroy,
        .page_flip = omap_crtc_page_flip,
        .set_property = omap_crtc_set_property,
+       .atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
+       .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
 };
 
 static const struct drm_crtc_helper_funcs omap_crtc_helper_funcs = {
 
 
        dev->mode_config.funcs = &omap_mode_config_funcs;
 
+       drm_mode_config_reset(dev);
+
        return 0;
 }
 
 
  * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <drm/drm_atomic_helper.h>
+
 #include "omap_dmm_tiler.h"
 #include "omap_drv.h"
 
 static const struct drm_plane_funcs omap_plane_funcs = {
        .update_plane = omap_plane_update,
        .disable_plane = omap_plane_disable,
+       .reset = drm_atomic_helper_plane_reset,
        .destroy = omap_plane_destroy,
        .set_property = omap_plane_set_property,
+       .atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
+       .atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
 };
 
 static void omap_plane_error_irq(struct omap_drm_irq *irq, uint32_t irqstatus)