drm/exynos/hdmi: remove private lock code
authorAndrzej Hajda <a.hajda@samsung.com>
Thu, 9 Jul 2015 14:28:08 +0000 (16:28 +0200)
committerInki Dae <inki.dae@samsung.com>
Sun, 16 Aug 2015 01:23:31 +0000 (10:23 +0900)
Most of the code is called by drm core framework, so it is already synchronized.
The only async function is irq routine which only calls drm framework so it
does not need to be synchronized.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_hdmi.c

index 1d07bdf787762db8f6f4b9d52e28d422481eeba9..f2e909de68feca844530db7e8490b692a5ef795f 100644 (file)
@@ -22,7 +22,6 @@
 #include "regs-hdmi.h"
 
 #include <linux/kernel.h>
-#include <linux/spinlock.h>
 #include <linux/wait.h>
 #include <linux/i2c.h>
 #include <linux/platform_device.h>
@@ -188,7 +187,6 @@ struct hdmi_context {
        struct drm_encoder              *encoder;
        bool                            powered;
        bool                            dvi_mode;
-       struct mutex                    hdmi_mutex;
 
        void __iomem                    *regs;
        int                             irq;
@@ -1774,10 +1772,8 @@ static void hdmi_conf_apply(struct hdmi_context *hdata)
        hdmiphy_conf_reset(hdata);
        hdmiphy_conf_apply(hdata);
 
-       mutex_lock(&hdata->hdmi_mutex);
        hdmi_start(hdata, false);
        hdmi_conf_init(hdata);
-       mutex_unlock(&hdata->hdmi_mutex);
 
        hdmi_audio_init(hdata);
 
@@ -2029,12 +2025,8 @@ static void hdmi_commit(struct exynos_drm_display *display)
 {
        struct hdmi_context *hdata = display_to_hdmi(display);
 
-       mutex_lock(&hdata->hdmi_mutex);
-       if (!hdata->powered) {
-               mutex_unlock(&hdata->hdmi_mutex);
+       if (!hdata->powered)
                return;
-       }
-       mutex_unlock(&hdata->hdmi_mutex);
 
        hdmi_conf_apply(hdata);
 }
@@ -2043,16 +2035,11 @@ static void hdmi_poweron(struct hdmi_context *hdata)
 {
        struct hdmi_resources *res = &hdata->res;
 
-       mutex_lock(&hdata->hdmi_mutex);
-       if (hdata->powered) {
-               mutex_unlock(&hdata->hdmi_mutex);
+       if (hdata->powered)
                return;
-       }
 
        hdata->powered = true;
 
-       mutex_unlock(&hdata->hdmi_mutex);
-
        pm_runtime_get_sync(hdata->dev);
 
        if (regulator_bulk_enable(res->regul_count, res->regul_bulk))
@@ -2073,10 +2060,8 @@ static void hdmi_poweroff(struct hdmi_context *hdata)
 {
        struct hdmi_resources *res = &hdata->res;
 
-       mutex_lock(&hdata->hdmi_mutex);
        if (!hdata->powered)
-               goto out;
-       mutex_unlock(&hdata->hdmi_mutex);
+               return;
 
        /* HDMI System Disable */
        hdmi_reg_writemask(hdata, HDMI_CON_0, 0, HDMI_EN);
@@ -2096,11 +2081,7 @@ static void hdmi_poweroff(struct hdmi_context *hdata)
 
        pm_runtime_put_sync(hdata->dev);
 
-       mutex_lock(&hdata->hdmi_mutex);
        hdata->powered = false;
-
-out:
-       mutex_unlock(&hdata->hdmi_mutex);
 }
 
 static void hdmi_dpms(struct exynos_drm_display *display, int mode)
@@ -2330,8 +2311,6 @@ static int hdmi_probe(struct platform_device *pdev)
        hdata->display.type = EXYNOS_DISPLAY_TYPE_HDMI;
        hdata->display.ops = &hdmi_display_ops;
 
-       mutex_init(&hdata->hdmi_mutex);
-
        platform_set_drvdata(pdev, hdata);
 
        match = of_match_node(hdmi_match_types, dev->of_node);