diff options
Diffstat (limited to 'drivers/video/omap2/dss/display.c')
-rw-r--r-- | drivers/video/omap2/dss/display.c | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c index 696369ca745b..c2dfc8c50057 100644 --- a/drivers/video/omap2/dss/display.c +++ b/drivers/video/omap2/dss/display.c | |||
@@ -44,9 +44,13 @@ static ssize_t display_enabled_store(struct device *dev, | |||
44 | const char *buf, size_t size) | 44 | const char *buf, size_t size) |
45 | { | 45 | { |
46 | struct omap_dss_device *dssdev = to_dss_device(dev); | 46 | struct omap_dss_device *dssdev = to_dss_device(dev); |
47 | bool enabled, r; | 47 | int r, enabled; |
48 | 48 | ||
49 | enabled = simple_strtoul(buf, NULL, 10); | 49 | r = kstrtoint(buf, 0, &enabled); |
50 | if (r) | ||
51 | return r; | ||
52 | |||
53 | enabled = !!enabled; | ||
50 | 54 | ||
51 | if (enabled != (dssdev->state != OMAP_DSS_DISPLAY_DISABLED)) { | 55 | if (enabled != (dssdev->state != OMAP_DSS_DISPLAY_DISABLED)) { |
52 | if (enabled) { | 56 | if (enabled) { |
@@ -82,7 +86,9 @@ static ssize_t display_upd_mode_store(struct device *dev, | |||
82 | if (!dssdev->driver->set_update_mode) | 86 | if (!dssdev->driver->set_update_mode) |
83 | return -EINVAL; | 87 | return -EINVAL; |
84 | 88 | ||
85 | val = simple_strtoul(buf, NULL, 10); | 89 | r = kstrtoint(buf, 0, &val); |
90 | if (r) | ||
91 | return r; | ||
86 | 92 | ||
87 | switch (val) { | 93 | switch (val) { |
88 | case OMAP_DSS_UPDATE_DISABLED: | 94 | case OMAP_DSS_UPDATE_DISABLED: |
@@ -114,13 +120,16 @@ static ssize_t display_tear_store(struct device *dev, | |||
114 | struct device_attribute *attr, const char *buf, size_t size) | 120 | struct device_attribute *attr, const char *buf, size_t size) |
115 | { | 121 | { |
116 | struct omap_dss_device *dssdev = to_dss_device(dev); | 122 | struct omap_dss_device *dssdev = to_dss_device(dev); |
117 | unsigned long te; | 123 | int te, r; |
118 | int r; | ||
119 | 124 | ||
120 | if (!dssdev->driver->enable_te || !dssdev->driver->get_te) | 125 | if (!dssdev->driver->enable_te || !dssdev->driver->get_te) |
121 | return -ENOENT; | 126 | return -ENOENT; |
122 | 127 | ||
123 | te = simple_strtoul(buf, NULL, 0); | 128 | r = kstrtoint(buf, 0, &te); |
129 | if (r) | ||
130 | return r; | ||
131 | |||
132 | te = !!te; | ||
124 | 133 | ||
125 | r = dssdev->driver->enable_te(dssdev, te); | 134 | r = dssdev->driver->enable_te(dssdev, te); |
126 | if (r) | 135 | if (r) |
@@ -196,13 +205,14 @@ static ssize_t display_rotate_store(struct device *dev, | |||
196 | struct device_attribute *attr, const char *buf, size_t size) | 205 | struct device_attribute *attr, const char *buf, size_t size) |
197 | { | 206 | { |
198 | struct omap_dss_device *dssdev = to_dss_device(dev); | 207 | struct omap_dss_device *dssdev = to_dss_device(dev); |
199 | unsigned long rot; | 208 | int rot, r; |
200 | int r; | ||
201 | 209 | ||
202 | if (!dssdev->driver->set_rotate || !dssdev->driver->get_rotate) | 210 | if (!dssdev->driver->set_rotate || !dssdev->driver->get_rotate) |
203 | return -ENOENT; | 211 | return -ENOENT; |
204 | 212 | ||
205 | rot = simple_strtoul(buf, NULL, 0); | 213 | r = kstrtoint(buf, 0, &rot); |
214 | if (r) | ||
215 | return r; | ||
206 | 216 | ||
207 | r = dssdev->driver->set_rotate(dssdev, rot); | 217 | r = dssdev->driver->set_rotate(dssdev, rot); |
208 | if (r) | 218 | if (r) |
@@ -226,13 +236,16 @@ static ssize_t display_mirror_store(struct device *dev, | |||
226 | struct device_attribute *attr, const char *buf, size_t size) | 236 | struct device_attribute *attr, const char *buf, size_t size) |
227 | { | 237 | { |
228 | struct omap_dss_device *dssdev = to_dss_device(dev); | 238 | struct omap_dss_device *dssdev = to_dss_device(dev); |
229 | unsigned long mirror; | 239 | int mirror, r; |
230 | int r; | ||
231 | 240 | ||
232 | if (!dssdev->driver->set_mirror || !dssdev->driver->get_mirror) | 241 | if (!dssdev->driver->set_mirror || !dssdev->driver->get_mirror) |
233 | return -ENOENT; | 242 | return -ENOENT; |
234 | 243 | ||
235 | mirror = simple_strtoul(buf, NULL, 0); | 244 | r = kstrtoint(buf, 0, &mirror); |
245 | if (r) | ||
246 | return r; | ||
247 | |||
248 | mirror = !!mirror; | ||
236 | 249 | ||
237 | r = dssdev->driver->set_mirror(dssdev, mirror); | 250 | r = dssdev->driver->set_mirror(dssdev, mirror); |
238 | if (r) | 251 | if (r) |
@@ -259,14 +272,15 @@ static ssize_t display_wss_store(struct device *dev, | |||
259 | struct device_attribute *attr, const char *buf, size_t size) | 272 | struct device_attribute *attr, const char *buf, size_t size) |
260 | { | 273 | { |
261 | struct omap_dss_device *dssdev = to_dss_device(dev); | 274 | struct omap_dss_device *dssdev = to_dss_device(dev); |
262 | unsigned long wss; | 275 | u32 wss; |
263 | int r; | 276 | int r; |
264 | 277 | ||
265 | if (!dssdev->driver->get_wss || !dssdev->driver->set_wss) | 278 | if (!dssdev->driver->get_wss || !dssdev->driver->set_wss) |
266 | return -ENOENT; | 279 | return -ENOENT; |
267 | 280 | ||
268 | if (strict_strtoul(buf, 0, &wss)) | 281 | r = kstrtou32(buf, 0, &wss); |
269 | return -EINVAL; | 282 | if (r) |
283 | return r; | ||
270 | 284 | ||
271 | if (wss > 0xfffff) | 285 | if (wss > 0xfffff) |
272 | return -EINVAL; | 286 | return -EINVAL; |