.atomic_commit_tail = msm_atomic_commit_tail,
 };
 
-#ifdef CONFIG_DRM_FBDEV_EMULATION
-static bool fbdev = true;
-MODULE_PARM_DESC(fbdev, "Enable fbdev compat layer");
-module_param(fbdev, bool, 0600);
-#endif
-
 static char *vram = "16m";
 MODULE_PARM_DESC(vram, "Configure VRAM size (for devices without IOMMU/GPUMMU)");
 module_param(vram, charp, 0);
        msm_rd_debugfs_cleanup(priv);
 
 #ifdef CONFIG_DRM_FBDEV_EMULATION
-       if (fbdev && ddev->fb_helper)
+       if (ddev->fb_helper)
                msm_fbdev_free(ddev);
 #endif
 
        drm_mode_config_reset(ddev);
 
 #ifdef CONFIG_DRM_FBDEV_EMULATION
-       if (kms && fbdev)
+       if (kms)
                msm_fbdev_init(ddev);
 #endif
 
 
 #include "msm_gem.h"
 #include "msm_kms.h"
 
+static bool fbdev = true;
+MODULE_PARM_DESC(fbdev, "Enable fbdev compat layer");
+module_param(fbdev, bool, 0600);
+
 /*
  * fbdev funcs, to implement legacy fbdev interface on top of drm driver
  */
        struct drm_fb_helper *helper;
        int ret;
 
+       if (!fbdev)
+               return NULL;
+
        helper = kzalloc(sizeof(*helper), GFP_KERNEL);
        if (!helper)
                return NULL;