aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/displays
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2013-03-04 05:57:35 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2013-04-03 08:19:01 -0400
commitd9f4e46714b11503f53619e9896db0506c35351c (patch)
tree2980971620433c260eb3754ecd3e09903f9b611d /drivers/video/omap2/displays
parent2c1a3ea0dc48d6b5d580781578a40f9a9e4acef8 (diff)
OMAPDSS: Taal: remove rotate & mirror support
Taal panel driver has support to set rotation and mirroring. However, these features cannot be used without causing tearing, and are never used. The code is just extra bloat, so let's remove it. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
Diffstat (limited to 'drivers/video/omap2/displays')
-rw-r--r--drivers/video/omap2/displays/panel-taal.c170
1 files changed, 2 insertions, 168 deletions
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c
index 038a815ba6c8..bc4c95ee41cc 100644
--- a/drivers/video/omap2/displays/panel-taal.c
+++ b/drivers/video/omap2/displays/panel-taal.c
@@ -76,8 +76,6 @@ struct taal_data {
76 76
77 /* runtime variables */ 77 /* runtime variables */
78 bool enabled; 78 bool enabled;
79 u8 rotate;
80 bool mirror;
81 79
82 bool te_enabled; 80 bool te_enabled;
83 81
@@ -202,49 +200,6 @@ static int taal_get_id(struct taal_data *td, u8 *id1, u8 *id2, u8 *id3)
202 return 0; 200 return 0;
203} 201}
204 202
205static int taal_set_addr_mode(struct taal_data *td, u8 rotate, bool mirror)
206{
207 int r;
208 u8 mode;
209 int b5, b6, b7;
210
211 r = taal_dcs_read_1(td, MIPI_DCS_GET_ADDRESS_MODE, &mode);
212 if (r)
213 return r;
214
215 switch (rotate) {
216 default:
217 case 0:
218 b7 = 0;
219 b6 = 0;
220 b5 = 0;
221 break;
222 case 1:
223 b7 = 0;
224 b6 = 1;
225 b5 = 1;
226 break;
227 case 2:
228 b7 = 1;
229 b6 = 1;
230 b5 = 0;
231 break;
232 case 3:
233 b7 = 1;
234 b6 = 0;
235 b5 = 1;
236 break;
237 }
238
239 if (mirror)
240 b6 = !b6;
241
242 mode &= ~((1<<7) | (1<<6) | (1<<5));
243 mode |= (b7 << 7) | (b6 << 6) | (b5 << 5);
244
245 return taal_dcs_write_1(td, MIPI_DCS_SET_ADDRESS_MODE, mode);
246}
247
248static int taal_set_update_window(struct taal_data *td, 203static int taal_set_update_window(struct taal_data *td,
249 u16 x, u16 y, u16 w, u16 h) 204 u16 x, u16 y, u16 w, u16 h)
250{ 205{
@@ -455,15 +410,8 @@ static const struct backlight_ops taal_bl_ops = {
455static void taal_get_resolution(struct omap_dss_device *dssdev, 410static void taal_get_resolution(struct omap_dss_device *dssdev,
456 u16 *xres, u16 *yres) 411 u16 *xres, u16 *yres)
457{ 412{
458 struct taal_data *td = dev_get_drvdata(&dssdev->dev); 413 *xres = dssdev->panel.timings.x_res;
459 414 *yres = dssdev->panel.timings.y_res;
460 if (td->rotate == 0 || td->rotate == 2) {
461 *xres = dssdev->panel.timings.x_res;
462 *yres = dssdev->panel.timings.y_res;
463 } else {
464 *yres = dssdev->panel.timings.x_res;
465 *xres = dssdev->panel.timings.y_res;
466 }
467} 415}
468 416
469static ssize_t taal_num_errors_show(struct device *dev, 417static ssize_t taal_num_errors_show(struct device *dev,
@@ -1025,10 +973,6 @@ static int taal_power_on(struct omap_dss_device *dssdev)
1025 if (r) 973 if (r)
1026 goto err; 974 goto err;
1027 975
1028 r = taal_set_addr_mode(td, td->rotate, td->mirror);
1029 if (r)
1030 goto err;
1031
1032 if (!td->cabc_broken) { 976 if (!td->cabc_broken) {
1033 r = taal_dcs_write_1(td, DCS_WRITE_CABC, td->cabc_mode); 977 r = taal_dcs_write_1(td, DCS_WRITE_CABC, td->cabc_mode);
1034 if (r) 978 if (r)
@@ -1340,112 +1284,6 @@ static int taal_get_te(struct omap_dss_device *dssdev)
1340 return r; 1284 return r;
1341} 1285}
1342 1286
1343static int taal_rotate(struct omap_dss_device *dssdev, u8 rotate)
1344{
1345 struct taal_data *td = dev_get_drvdata(&dssdev->dev);
1346 u16 dw, dh;
1347 int r;
1348
1349 dev_dbg(&dssdev->dev, "rotate %d\n", rotate);
1350
1351 mutex_lock(&td->lock);
1352
1353 if (td->rotate == rotate)
1354 goto end;
1355
1356 dsi_bus_lock(dssdev);
1357
1358 if (td->enabled) {
1359 r = taal_wake_up(dssdev);
1360 if (r)
1361 goto err;
1362
1363 r = taal_set_addr_mode(td, rotate, td->mirror);
1364 if (r)
1365 goto err;
1366 }
1367
1368 if (rotate == 0 || rotate == 2) {
1369 dw = dssdev->panel.timings.x_res;
1370 dh = dssdev->panel.timings.y_res;
1371 } else {
1372 dw = dssdev->panel.timings.y_res;
1373 dh = dssdev->panel.timings.x_res;
1374 }
1375
1376 omapdss_dsi_set_size(dssdev, dw, dh);
1377
1378 td->rotate = rotate;
1379
1380 dsi_bus_unlock(dssdev);
1381end:
1382 mutex_unlock(&td->lock);
1383 return 0;
1384err:
1385 dsi_bus_unlock(dssdev);
1386 mutex_unlock(&td->lock);
1387 return r;
1388}
1389
1390static u8 taal_get_rotate(struct omap_dss_device *dssdev)
1391{
1392 struct taal_data *td = dev_get_drvdata(&dssdev->dev);
1393 int r;
1394
1395 mutex_lock(&td->lock);
1396 r = td->rotate;
1397 mutex_unlock(&td->lock);
1398
1399 return r;
1400}
1401
1402static int taal_mirror(struct omap_dss_device *dssdev, bool enable)
1403{
1404 struct taal_data *td = dev_get_drvdata(&dssdev->dev);
1405 int r;
1406
1407 dev_dbg(&dssdev->dev, "mirror %d\n", enable);
1408
1409 mutex_lock(&td->lock);
1410
1411 if (td->mirror == enable)
1412 goto end;
1413
1414 dsi_bus_lock(dssdev);
1415 if (td->enabled) {
1416 r = taal_wake_up(dssdev);
1417 if (r)
1418 goto err;
1419
1420 r = taal_set_addr_mode(td, td->rotate, enable);
1421 if (r)
1422 goto err;
1423 }
1424
1425 td->mirror = enable;
1426
1427 dsi_bus_unlock(dssdev);
1428end:
1429 mutex_unlock(&td->lock);
1430 return 0;
1431err:
1432 dsi_bus_unlock(dssdev);
1433 mutex_unlock(&td->lock);
1434 return r;
1435}
1436
1437static bool taal_get_mirror(struct omap_dss_device *dssdev)
1438{
1439 struct taal_data *td = dev_get_drvdata(&dssdev->dev);
1440 int r;
1441
1442 mutex_lock(&td->lock);
1443 r = td->mirror;
1444 mutex_unlock(&td->lock);
1445
1446 return r;
1447}
1448
1449static int taal_run_test(struct omap_dss_device *dssdev, int test_num) 1287static int taal_run_test(struct omap_dss_device *dssdev, int test_num)
1450{ 1288{
1451 struct taal_data *td = dev_get_drvdata(&dssdev->dev); 1289 struct taal_data *td = dev_get_drvdata(&dssdev->dev);
@@ -1679,10 +1517,6 @@ static struct omap_dss_driver taal_driver = {
1679 .enable_te = taal_enable_te, 1517 .enable_te = taal_enable_te,
1680 .get_te = taal_get_te, 1518 .get_te = taal_get_te,
1681 1519
1682 .set_rotate = taal_rotate,
1683 .get_rotate = taal_get_rotate,
1684 .set_mirror = taal_mirror,
1685 .get_mirror = taal_get_mirror,
1686 .run_test = taal_run_test, 1520 .run_test = taal_run_test,
1687 .memory_read = taal_memory_read, 1521 .memory_read = taal_memory_read,
1688 1522