*/
 static int malidp_set_and_wait_config_valid(struct drm_device *drm)
 {
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev = malidp->dev;
        int ret;
 
 static void malidp_atomic_commit_hw_done(struct drm_atomic_state *state)
 {
        struct drm_device *drm = state->dev;
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        int loop = 5;
 
        malidp->event = malidp->crtc.state->event;
 static void malidp_atomic_commit_tail(struct drm_atomic_state *state)
 {
        struct drm_device *drm = state->dev;
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct drm_crtc *crtc;
        struct drm_crtc_state *old_crtc_state;
        int i;
 static int malidp_init(struct drm_device *drm)
 {
        int ret;
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev = malidp->dev;
 
        drm_mode_config_init(drm);
 {
        int irq_de, irq_se, ret = 0;
        struct drm_device *drm = dev_get_drvdata(&pdev->dev);
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev = malidp->dev;
 
        /* fetch the interrupts from DT */
                              struct drm_device *drm,
                              struct drm_mode_create_dumb *args)
 {
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        /* allocate for the worst case scenario, i.e. rotated buffers */
        u8 alignment = malidp_hw_get_pitch_align(malidp->dev, 1);
 
 static int malidp_show_stats(struct seq_file *m, void *arg)
 {
        struct drm_device *drm = m->private;
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        unsigned long irqflags;
        struct malidp_error_stats de_errors, se_errors;
 
 {
        struct seq_file *m = file->private_data;
        struct drm_device *drm = m->private;
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        unsigned long irqflags;
 
        spin_lock_irqsave(&malidp->errors_lock, irqflags);
 
 static void malidp_debugfs_init(struct drm_minor *minor)
 {
-       struct malidp_drm *malidp = minor->dev->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(minor->dev);
 
        malidp_error_stats_init(&malidp->de_errors);
        malidp_error_stats_init(&malidp->se_errors);
                            char *buf)
 {
        struct drm_device *drm = dev_get_drvdata(dev);
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
 
        return snprintf(buf, PAGE_SIZE, "%08x\n", malidp->core_id);
 }
 static int malidp_runtime_pm_suspend(struct device *dev)
 {
        struct drm_device *drm = dev_get_drvdata(dev);
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev = malidp->dev;
 
        /* we can only suspend if the hardware is in config mode */
 static int malidp_runtime_pm_resume(struct device *dev)
 {
        struct drm_device *drm = dev_get_drvdata(dev);
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev = malidp->dev;
 
        clk_prepare_enable(hwdev->pclk);
        if (ret && ret != -ENODEV)
                return ret;
 
-       drm->dev_private = malidp;
        dev_set_drvdata(dev, drm);
 
        /* Enable power management */
                pm_runtime_disable(dev);
        else
                malidp_runtime_pm_suspend(dev);
-       drm->dev_private = NULL;
        dev_set_drvdata(dev, NULL);
        of_reserved_mem_device_release(dev);
 
 static void malidp_unbind(struct device *dev)
 {
        struct drm_device *drm = dev_get_drvdata(dev);
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev = malidp->dev;
 
        drm_dev_unregister(drm);
                pm_runtime_disable(dev);
        else
                malidp_runtime_pm_suspend(dev);
-       drm->dev_private = NULL;
        dev_set_drvdata(dev, NULL);
        of_reserved_mem_device_release(dev);
 }
 
 static irqreturn_t malidp_de_irq(int irq, void *arg)
 {
        struct drm_device *drm = arg;
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev;
        struct malidp_hw *hw;
        const struct malidp_irq_map *de;
 static irqreturn_t malidp_de_irq_thread_handler(int irq, void *arg)
 {
        struct drm_device *drm = arg;
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
 
        wake_up(&malidp->wq);
 
 
 int malidp_de_irq_init(struct drm_device *drm, int irq)
 {
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev = malidp->dev;
        int ret;
 
 static irqreturn_t malidp_se_irq(int irq, void *arg)
 {
        struct drm_device *drm = arg;
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev = malidp->dev;
        struct malidp_hw *hw = hwdev->hw;
        const struct malidp_irq_map *se = &hw->map.se_irq_map;
 
 int malidp_se_irq_init(struct drm_device *drm, int irq)
 {
-       struct malidp_drm *malidp = drm->dev_private;
+       struct malidp_drm *malidp = drm_to_malidp(drm);
        struct malidp_hw_device *hwdev = malidp->dev;
        int ret;