Merge branch 'akpm' (fixes from Andrew)
[linux-drm-fsl-dcu.git] / drivers / video / sh_mobile_lcdcfb.c
index 0264704a52be3d9e02b23178e489b2e567ec4c56..ab85ad6c25ec434b983c41f3801171d675a79e81 100644 (file)
@@ -344,7 +344,7 @@ static void sh_mobile_lcdc_clk_on(struct sh_mobile_lcdc_priv *priv)
 {
        if (atomic_inc_and_test(&priv->hw_usecnt)) {
                if (priv->dot_clk)
-                       clk_enable(priv->dot_clk);
+                       clk_prepare_enable(priv->dot_clk);
                pm_runtime_get_sync(priv->dev);
                if (priv->meram_dev && priv->meram_dev->pdev)
                        pm_runtime_get_sync(&priv->meram_dev->pdev->dev);
@@ -358,7 +358,7 @@ static void sh_mobile_lcdc_clk_off(struct sh_mobile_lcdc_priv *priv)
                        pm_runtime_put_sync(&priv->meram_dev->pdev->dev);
                pm_runtime_put(priv->dev);
                if (priv->dot_clk)
-                       clk_disable(priv->dot_clk);
+                       clk_disable_unprepare(priv->dot_clk);
        }
 }
 
@@ -574,8 +574,9 @@ static int sh_mobile_lcdc_display_notify(struct sh_mobile_lcdc_chan *ch,
        switch (event) {
        case SH_MOBILE_LCDC_EVENT_DISPLAY_CONNECT:
                /* HDMI plug in */
+               console_lock();
                if (lock_fb_info(info)) {
-                       console_lock();
+
 
                        ch->display.width = monspec->max_x * 10;
                        ch->display.height = monspec->max_y * 10;
@@ -594,19 +595,20 @@ static int sh_mobile_lcdc_display_notify(struct sh_mobile_lcdc_chan *ch,
                                fb_set_suspend(info, 0);
                        }
 
-                       console_unlock();
+
                        unlock_fb_info(info);
                }
+               console_unlock();
                break;
 
        case SH_MOBILE_LCDC_EVENT_DISPLAY_DISCONNECT:
                /* HDMI disconnect */
+               console_lock();
                if (lock_fb_info(info)) {
-                       console_lock();
                        fb_set_suspend(info, 1);
-                       console_unlock();
                        unlock_fb_info(info);
                }
+               console_unlock();
                break;
 
        case SH_MOBILE_LCDC_EVENT_DISPLAY_MODE: