return ret;
 }
-
-void msm_debugfs_cleanup(struct drm_minor *minor)
-{
-       struct drm_device *dev = minor->dev;
-       struct msm_drm_private *priv = dev->dev_private;
-
-       if (!priv)
-               return;
-
-       if (priv->kms->funcs->debugfs_cleanup)
-               priv->kms->funcs->debugfs_cleanup(priv->kms, minor);
-
-       msm_rd_debugfs_cleanup(minor);
-       msm_perf_debugfs_cleanup(minor);
-}
 #endif
 
 
 
 #ifdef CONFIG_DEBUG_FS
 int msm_debugfs_init(struct drm_minor *minor);
-void msm_debugfs_cleanup(struct drm_minor *minor);
 #endif
 
 #endif /* __MSM_DEBUGFS_H__ */
 
 
        drm_dev_unregister(ddev);
 
+       msm_perf_debugfs_cleanup(priv);
+       msm_rd_debugfs_cleanup(priv);
+
 #ifdef CONFIG_DRM_FBDEV_EMULATION
        if (fbdev && priv->fbdev)
                msm_fbdev_free(ddev);
        .gem_prime_mmap     = msm_gem_prime_mmap,
 #ifdef CONFIG_DEBUG_FS
        .debugfs_init       = msm_debugfs_init,
-       .debugfs_cleanup    = msm_debugfs_cleanup,
 #endif
        .ioctls             = msm_ioctls,
        .num_ioctls         = DRM_MSM_NUM_IOCTLS,
 
 void msm_framebuffer_describe(struct drm_framebuffer *fb, struct seq_file *m);
 int msm_debugfs_late_init(struct drm_device *dev);
 int msm_rd_debugfs_init(struct drm_minor *minor);
-void msm_rd_debugfs_cleanup(struct drm_minor *minor);
+void msm_rd_debugfs_cleanup(struct msm_drm_private *priv);
 void msm_rd_dump_submit(struct msm_gem_submit *submit);
 int msm_perf_debugfs_init(struct drm_minor *minor);
-void msm_perf_debugfs_cleanup(struct drm_minor *minor);
+void msm_perf_debugfs_cleanup(struct msm_drm_private *priv);
 #else
 static inline int msm_debugfs_late_init(struct drm_device *dev) { return 0; }
 static inline void msm_rd_dump_submit(struct msm_gem_submit *submit) {}
 
 #ifdef CONFIG_DEBUG_FS
        /* debugfs: */
        int (*debugfs_init)(struct msm_kms *kms, struct drm_minor *minor);
-       void (*debugfs_cleanup)(struct msm_kms *kms, struct drm_minor *minor);
 #endif
 };
 
 
        return 0;
 
 fail:
-       msm_perf_debugfs_cleanup(minor);
+       msm_perf_debugfs_cleanup(priv);
        return -1;
 }
 
-void msm_perf_debugfs_cleanup(struct drm_minor *minor)
+void msm_perf_debugfs_cleanup(struct msm_drm_private *priv)
 {
-       struct msm_drm_private *priv = minor->dev->dev_private;
        struct msm_perf_state *perf = priv->perf;
 
        if (!perf)
 
        return 0;
 
 fail:
-       msm_rd_debugfs_cleanup(minor);
+       msm_rd_debugfs_cleanup(priv);
        return -1;
 }
 
-void msm_rd_debugfs_cleanup(struct drm_minor *minor)
+void msm_rd_debugfs_cleanup(struct msm_drm_private *priv)
 {
-       struct msm_drm_private *priv = minor->dev->dev_private;
        struct msm_rd_state *rd = priv->rd;
 
        if (!rd)