drm/exynos/hdmi: Simplify HPD gpio handling
authorAndrzej Hajda <a.hajda@samsung.com>
Thu, 9 Jul 2015 14:28:07 +0000 (16:28 +0200)
committerInki Dae <inki.dae@samsung.com>
Sun, 16 Aug 2015 01:23:31 +0000 (10:23 +0900)
GPIO is tested only in hdmi_detect, so there is no reason to set it in
other places and to preserve its value in context.

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 3cf09bb995a39c26720014d80725a6c43894ce53..1d07bdf787762db8f6f4b9d52e28d422481eeba9 100644 (file)
@@ -186,7 +186,6 @@ struct hdmi_context {
        struct drm_device               *drm_dev;
        struct drm_connector            connector;
        struct drm_encoder              *encoder;
-       bool                            hpd;
        bool                            powered;
        bool                            dvi_mode;
        struct mutex                    hdmi_mutex;
@@ -1037,10 +1036,10 @@ static enum drm_connector_status hdmi_detect(struct drm_connector *connector,
 {
        struct hdmi_context *hdata = ctx_from_connector(connector);
 
-       hdata->hpd = gpio_get_value(hdata->hpd_gpio);
+       if (gpio_get_value(hdata->hpd_gpio))
+               return connector_status_connected;
 
-       return hdata->hpd ? connector_status_connected :
-                       connector_status_disconnected;
+       return connector_status_disconnected;
 }
 
 static void hdmi_connector_destroy(struct drm_connector *connector)
@@ -2156,10 +2155,6 @@ static void hdmi_hotplug_work_func(struct work_struct *work)
 
        hdata = container_of(work, struct hdmi_context, hotplug_work.work);
 
-       mutex_lock(&hdata->hdmi_mutex);
-       hdata->hpd = gpio_get_value(hdata->hpd_gpio);
-       mutex_unlock(&hdata->hdmi_mutex);
-
        if (hdata->drm_dev)
                drm_helper_hpd_irq_event(hdata->drm_dev);
 }
@@ -2428,8 +2423,6 @@ out_get_phy_port:
                goto err_hdmiphy;
        }
 
-       hdata->hpd = gpio_get_value(hdata->hpd_gpio);
-
        INIT_DELAYED_WORK(&hdata->hotplug_work, hdmi_hotplug_work_func);
 
        ret = devm_request_threaded_irq(dev, hdata->irq, NULL,