]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/video/omap2/dss/display.c
OMAP: DSS2: Convert simple/strict_strto* to kstrto*
[mv-sheeva.git] / drivers / video / omap2 / dss / display.c
index 22dd7a474f79bd8fae54987dd66f01ac554fb8e6..c2dfc8c50057baad8be69900ba27f9a11434108b 100644 (file)
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/jiffies.h>
-#include <linux/list.h>
 #include <linux/platform_device.h>
 
-#include <plat/display.h>
+#include <video/omapdss.h>
 #include "dss.h"
 
-static LIST_HEAD(display_list);
-
 static ssize_t display_enabled_show(struct device *dev,
                struct device_attribute *attr, char *buf)
 {
@@ -47,9 +44,13 @@ static ssize_t display_enabled_store(struct device *dev,
                const char *buf, size_t size)
 {
        struct omap_dss_device *dssdev = to_dss_device(dev);
-       bool enabled, r;
+       int r, enabled;
+
+       r = kstrtoint(buf, 0, &enabled);
+       if (r)
+               return r;
 
-       enabled = simple_strtoul(buf, NULL, 10);
+       enabled = !!enabled;
 
        if (enabled != (dssdev->state != OMAP_DSS_DISPLAY_DISABLED)) {
                if (enabled) {
@@ -85,7 +86,9 @@ static ssize_t display_upd_mode_store(struct device *dev,
        if (!dssdev->driver->set_update_mode)
                return -EINVAL;
 
-       val = simple_strtoul(buf, NULL, 10);
+       r = kstrtoint(buf, 0, &val);
+       if (r)
+               return r;
 
        switch (val) {
        case OMAP_DSS_UPDATE_DISABLED:
@@ -117,13 +120,16 @@ static ssize_t display_tear_store(struct device *dev,
                struct device_attribute *attr, const char *buf, size_t size)
 {
        struct omap_dss_device *dssdev = to_dss_device(dev);
-       unsigned long te;
-       int r;
+       int te, r;
 
        if (!dssdev->driver->enable_te || !dssdev->driver->get_te)
                return -ENOENT;
 
-       te = simple_strtoul(buf, NULL, 0);
+       r = kstrtoint(buf, 0, &te);
+       if (r)
+               return r;
+
+       te = !!te;
 
        r = dssdev->driver->enable_te(dssdev, te);
        if (r)
@@ -199,13 +205,14 @@ static ssize_t display_rotate_store(struct device *dev,
                struct device_attribute *attr, const char *buf, size_t size)
 {
        struct omap_dss_device *dssdev = to_dss_device(dev);
-       unsigned long rot;
-       int r;
+       int rot, r;
 
        if (!dssdev->driver->set_rotate || !dssdev->driver->get_rotate)
                return -ENOENT;
 
-       rot = simple_strtoul(buf, NULL, 0);
+       r = kstrtoint(buf, 0, &rot);
+       if (r)
+               return r;
 
        r = dssdev->driver->set_rotate(dssdev, rot);
        if (r)
@@ -229,13 +236,16 @@ static ssize_t display_mirror_store(struct device *dev,
                struct device_attribute *attr, const char *buf, size_t size)
 {
        struct omap_dss_device *dssdev = to_dss_device(dev);
-       unsigned long mirror;
-       int r;
+       int mirror, r;
 
        if (!dssdev->driver->set_mirror || !dssdev->driver->get_mirror)
                return -ENOENT;
 
-       mirror = simple_strtoul(buf, NULL, 0);
+       r = kstrtoint(buf, 0, &mirror);
+       if (r)
+               return r;
+
+       mirror = !!mirror;
 
        r = dssdev->driver->set_mirror(dssdev, mirror);
        if (r)
@@ -262,14 +272,15 @@ static ssize_t display_wss_store(struct device *dev,
                struct device_attribute *attr, const char *buf, size_t size)
 {
        struct omap_dss_device *dssdev = to_dss_device(dev);
-       unsigned long wss;
+       u32 wss;
        int r;
 
        if (!dssdev->driver->get_wss || !dssdev->driver->set_wss)
                return -ENOENT;
 
-       if (strict_strtoul(buf, 0, &wss))
-               return -EINVAL;
+       r = kstrtou32(buf, 0, &wss);
+       if (r)
+               return r;
 
        if (wss > 0xfffff)
                return -EINVAL;
@@ -345,6 +356,7 @@ int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev)
                        return 16;
        case OMAP_DISPLAY_TYPE_VENC:
        case OMAP_DISPLAY_TYPE_SDI:
+       case OMAP_DISPLAY_TYPE_HDMI:
                return 24;
        default:
                BUG();
@@ -371,6 +383,7 @@ bool dss_use_replication(struct omap_dss_device *dssdev,
        case OMAP_DISPLAY_TYPE_DPI:
                bpp = dssdev->phy.dpi.data_lines;
                break;
+       case OMAP_DISPLAY_TYPE_HDMI:
        case OMAP_DISPLAY_TYPE_VENC:
        case OMAP_DISPLAY_TYPE_SDI:
                bpp = 24;
@@ -393,29 +406,6 @@ void dss_init_device(struct platform_device *pdev,
        int i;
        int r;
 
-       switch (dssdev->type) {
-#ifdef CONFIG_OMAP2_DSS_DPI
-       case OMAP_DISPLAY_TYPE_DPI:
-#endif
-#ifdef CONFIG_OMAP2_DSS_RFBI
-       case OMAP_DISPLAY_TYPE_DBI:
-#endif
-#ifdef CONFIG_OMAP2_DSS_SDI
-       case OMAP_DISPLAY_TYPE_SDI:
-#endif
-#ifdef CONFIG_OMAP2_DSS_DSI
-       case OMAP_DISPLAY_TYPE_DSI:
-#endif
-#ifdef CONFIG_OMAP2_DSS_VENC
-       case OMAP_DISPLAY_TYPE_VENC:
-#endif
-               break;
-       default:
-               DSSERR("Support for display '%s' not compiled in.\n",
-                               dssdev->name);
-               return;
-       }
-
        switch (dssdev->type) {
 #ifdef CONFIG_OMAP2_DSS_DPI
        case OMAP_DISPLAY_TYPE_DPI:
@@ -442,8 +432,13 @@ void dss_init_device(struct platform_device *pdev,
                r = dsi_init_display(dssdev);
                break;
 #endif
+       case OMAP_DISPLAY_TYPE_HDMI:
+               r = hdmi_init_display(dssdev);
+               break;
        default:
-               BUG();
+               DSSERR("Support for display '%s' not compiled in.\n",
+                               dssdev->name);
+               return;
        }
 
        if (r) {