Although FBC helps save power it do not belongs to power management
also the cleanup was placed in i915_driver_unload() also not a good
place. intel_modeset_init()/intel_modeset_cleanup() are better places
also this will help make easy disable features that depends in
display being enabled in driver.
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181108001647.11276-2-jose.souza@intel.com
        i915_reset_error_state(dev_priv);
 
        i915_gem_fini(dev_priv);
-       intel_fbc_cleanup_cfb(dev_priv);
 
        intel_power_domains_fini_hw(dev_priv);
 
 
 
        intel_init_quirks(dev_priv);
 
+       intel_fbc_init(dev_priv);
+
        intel_init_pm(dev_priv);
 
        /*
        intel_teardown_gmbus(dev_priv);
 
        destroy_workqueue(dev_priv->modeset_wq);
+
+       intel_fbc_cleanup_cfb(dev_priv);
 }
 
 /*
 
 /* Set up chip specific power management-related functions */
 void intel_init_pm(struct drm_i915_private *dev_priv)
 {
-       intel_fbc_init(dev_priv);
-
        /* For cxsr */
        if (IS_PINEVIEW(dev_priv))
                i915_pineview_get_mem_freq(dev_priv);