Merge tag 'tilcdc-4.22' of https://github.com/jsarha/linux into drm-next
[sfrench/cifs-2.6.git] / drivers / gpu / drm / tilcdc / tilcdc_drv.c
index 3dac08b24140fe5c16c90c76f2379f6d63ecd9ba..337e86a1d5eaa59c358e4cf0393510ea5c045605 100644 (file)
@@ -183,6 +183,12 @@ static void tilcdc_fini(struct drm_device *dev)
 {
        struct tilcdc_drm_private *priv = dev->dev_private;
 
+#ifdef CONFIG_CPU_FREQ
+       if (priv->freq_transition.notifier_call)
+               cpufreq_unregister_notifier(&priv->freq_transition,
+                                           CPUFREQ_TRANSITION_NOTIFIER);
+#endif
+
        if (priv->crtc)
                tilcdc_crtc_shutdown(priv->crtc);
 
@@ -194,12 +200,6 @@ static void tilcdc_fini(struct drm_device *dev)
        drm_mode_config_cleanup(dev);
        tilcdc_remove_external_device(dev);
 
-#ifdef CONFIG_CPU_FREQ
-       if (priv->freq_transition.notifier_call)
-               cpufreq_unregister_notifier(&priv->freq_transition,
-                                           CPUFREQ_TRANSITION_NOTIFIER);
-#endif
-
        if (priv->clk)
                clk_put(priv->clk);
 
@@ -270,17 +270,6 @@ static int tilcdc_init(struct drm_driver *ddrv, struct device *dev)
                goto init_failed;
        }
 
-#ifdef CONFIG_CPU_FREQ
-       priv->freq_transition.notifier_call = cpufreq_transition;
-       ret = cpufreq_register_notifier(&priv->freq_transition,
-                       CPUFREQ_TRANSITION_NOTIFIER);
-       if (ret) {
-               dev_err(dev, "failed to register cpufreq notifier\n");
-               priv->freq_transition.notifier_call = NULL;
-               goto init_failed;
-       }
-#endif
-
        if (of_property_read_u32(node, "max-bandwidth", &priv->max_bandwidth))
                priv->max_bandwidth = TILCDC_DEFAULT_MAX_BANDWIDTH;
 
@@ -357,6 +346,17 @@ static int tilcdc_init(struct drm_driver *ddrv, struct device *dev)
        }
        modeset_init(ddev);
 
+#ifdef CONFIG_CPU_FREQ
+       priv->freq_transition.notifier_call = cpufreq_transition;
+       ret = cpufreq_register_notifier(&priv->freq_transition,
+                       CPUFREQ_TRANSITION_NOTIFIER);
+       if (ret) {
+               dev_err(dev, "failed to register cpufreq notifier\n");
+               priv->freq_transition.notifier_call = NULL;
+               goto init_failed;
+       }
+#endif
+
        if (priv->is_componentized) {
                ret = component_bind_all(dev, ddev);
                if (ret < 0)