OMAPDSS: get the dss version from core pdev
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 18 Oct 2012 10:46:29 +0000 (13:46 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 24 Oct 2012 05:48:16 +0000 (08:48 +0300)
The output drivers get the omapdss hw version from the platform data for
their respective output device. This doesn't work with DT, as there's no
platform data for them.

Add a new function, omapdss_get_version(), which returns the dss version
from the core device, which will have platform data on DT also. The
function is exported so that users of omapdss can also use it.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/dss/core.c
drivers/video/omap2/dss/dispc.c
drivers/video/omap2/dss/dss.c
drivers/video/omap2/dss/hdmi.c
include/video/omapdss.h

index 00aa026e307c71baa26f6fd2c0daadb988c74839..685d9a957b19f0db131a3a749bd900b399a89404 100644 (file)
@@ -58,6 +58,13 @@ const char *dss_get_default_display_name(void)
        return core.default_display_name;
 }
 
+enum omapdss_version omapdss_get_version(void)
+{
+       struct omap_dss_board_info *pdata = core.pdev->dev.platform_data;
+       return pdata->version;
+}
+EXPORT_SYMBOL(omapdss_get_version);
+
 /* REGULATORS */
 
 struct regulator *dss_get_vdds_dsi(void)
@@ -232,7 +239,7 @@ static int __init omap_dss_probe(struct platform_device *pdev)
 
        core.pdev = pdev;
 
-       dss_features_init(pdata->version);
+       dss_features_init(omapdss_get_version());
 
        dss_apply_init();
 
index 6dd9eb4a2c5bcc3d522d5a734a7a14643bdbcf04..817d671e2baad2dc2092ecb3b86c6499b5822108 100644 (file)
@@ -4098,7 +4098,6 @@ static const struct dispc_features omap44xx_dispc_feats __initconst = {
 
 static int __init dispc_init_features(struct platform_device *pdev)
 {
-       struct omap_dss_board_info *pdata = pdev->dev.platform_data;
        const struct dispc_features *src;
        struct dispc_features *dst;
 
@@ -4108,7 +4107,7 @@ static int __init dispc_init_features(struct platform_device *pdev)
                return -ENOMEM;
        }
 
-       switch (pdata->version) {
+       switch (omapdss_get_version()) {
        case OMAPDSS_VER_OMAP24xx:
                src = &omap24xx_dispc_feats;
                break;
index 37ee465c1a0e650e894a9db423eb76a9ce17e29e..d90de37288c4a45e4819b2e720af941b68bcada4 100644 (file)
@@ -793,7 +793,6 @@ static const struct dss_features omap54xx_dss_feats __initconst = {
 
 static int __init dss_init_features(struct platform_device *pdev)
 {
-       struct omap_dss_board_info *pdata = pdev->dev.platform_data;
        const struct dss_features *src;
        struct dss_features *dst;
 
@@ -803,7 +802,7 @@ static int __init dss_init_features(struct platform_device *pdev)
                return -ENOMEM;
        }
 
-       switch (pdata->version) {
+       switch (omapdss_get_version()) {
        case OMAPDSS_VER_OMAP24xx:
                src = &omap24xx_dss_feats;
                break;
index adcc906d12f860fee01fce8089d2cce253960a73..c1c54883fbe78831e7921b9c77038524e44611c7 100644 (file)
@@ -323,7 +323,6 @@ static void hdmi_runtime_put(void)
 
 static int __init hdmi_init_display(struct omap_dss_device *dssdev)
 {
-       struct omap_dss_board_info *pdata = hdmi.pdev->dev.platform_data;
        int r;
 
        struct gpio gpios[] = {
@@ -334,7 +333,7 @@ static int __init hdmi_init_display(struct omap_dss_device *dssdev)
 
        DSSDBG("init_display\n");
 
-       dss_init_hdmi_ip_ops(&hdmi.ip_data, pdata->version);
+       dss_init_hdmi_ip_ops(&hdmi.ip_data, omapdss_get_version());
 
        if (hdmi.vdda_hdmi_dac_reg == NULL) {
                struct regulator *reg;
index cdfb22e7fe805e72c312867b9784b2b0f64026ce..eac5f256225381637b9e6f01fe7e0719a26997ef 100644 (file)
@@ -742,6 +742,8 @@ struct omap_dss_driver {
 
 };
 
+enum omapdss_version omapdss_get_version(void);
+
 int omap_dss_register_driver(struct omap_dss_driver *);
 void omap_dss_unregister_driver(struct omap_dss_driver *);