Add a property to the hdmi node so we can specify the HDMI version in
the device tree instead of just defaulting to v1.4 with the existence of
the dt node.

Signed-off-by: Sean Paul <seanp...@chromium.org>
---
 .../devicetree/bindings/drm/exynos/hdmi.txt        |    3 +++
 drivers/gpu/drm/exynos/exynos_hdmi.c               |   19 ++++++++++---------
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt 
b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
index 589edee..d1c7d91 100644
--- a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
+++ b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
@@ -11,6 +11,8 @@ Required properties:
        c) pin function mode.
        d) optional flags and pull up/down.
        e) drive strength.
+- samsung,supports-hdmi-1.4: Define if device supports HDMI v1.4
+- samsung,supports-hdmi-1.3: Define if device supports HDMI v1.3
 
 Example:
 
@@ -19,4 +21,5 @@ Example:
                reg = <0x14530000 0x100000>;
                interrupts = <0 95 0>;
                hpd-gpio = <&gpx3 7 0xf 1 3>;
+               samsung,supports-hdmi-1.4;
        };
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 2c46b6c..9834ae5 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -2444,7 +2444,6 @@ static struct platform_device_id hdmi_driver_types[] = {
 static struct of_device_id hdmi_match_types[] = {
        {
                .compatible = "samsung,exynos5-hdmi",
-               .data   = (void *)HDMI_TYPE14,
        }, {
                /* end node */
        }
@@ -2498,16 +2497,18 @@ static int __devinit hdmi_probe(struct platform_device 
*pdev)
 
        platform_set_drvdata(pdev, drm_hdmi_ctx);
 
-       if (dev->of_node) {
-               const struct of_device_id *match;
-               match = of_match_node(of_match_ptr(hdmi_match_types),
-                                       pdev->dev.of_node);
-               if (match == NULL)
-                       return -ENODEV;
-               hdata->type = (enum hdmi_type)match->data;
-       } else {
+       if (!dev->of_node) {
                hdata->type = (enum hdmi_type)platform_get_device_id
                                        (pdev)->driver_data;
+       } else if (of_get_property(dev->of_node, "samsung,supports-hdmi-1.4",
+                               NULL)) {
+               hdata->type = HDMI_TYPE14;
+       } else if (of_get_property(dev->of_node, "samsung,supports-hdmi-1.3",
+                               NULL)) {
+               hdata->type = HDMI_TYPE13;
+       } else {
+               DRM_ERROR("Could not resolve HDMI version support\n");
+               return -ENODEV;
        }
 
        hdata->hpd_gpio = pdata->hpd_gpio;
-- 
1.7.7.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to