diff options
| -rw-r--r-- | arch/arm/plat-omap/include/plat/display.h | 3 | ||||
| -rw-r--r-- | drivers/video/omap2/displays/panel-taal.c | 9 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/display.c | 8 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/dsi.c | 33 |
4 files changed, 11 insertions, 42 deletions
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h index aefd0676cd81..9291aa133e71 100644 --- a/arch/arm/plat-omap/include/plat/display.h +++ b/arch/arm/plat-omap/include/plat/display.h | |||
| @@ -489,9 +489,6 @@ struct omap_dss_device { | |||
| 489 | int (*enable_te)(struct omap_dss_device *dssdev, bool enable); | 489 | int (*enable_te)(struct omap_dss_device *dssdev, bool enable); |
| 490 | int (*get_te)(struct omap_dss_device *dssdev); | 490 | int (*get_te)(struct omap_dss_device *dssdev); |
| 491 | 491 | ||
| 492 | u8 (*get_rotate)(struct omap_dss_device *dssdev); | ||
| 493 | int (*set_rotate)(struct omap_dss_device *dssdev, u8 rotate); | ||
| 494 | |||
| 495 | int (*set_wss)(struct omap_dss_device *dssdev, u32 wss); | 492 | int (*set_wss)(struct omap_dss_device *dssdev, u32 wss); |
| 496 | u32 (*get_wss)(struct omap_dss_device *dssdev); | 493 | u32 (*get_wss)(struct omap_dss_device *dssdev); |
| 497 | 494 | ||
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c index 4d644497431d..8f90de0d2b4b 100644 --- a/drivers/video/omap2/displays/panel-taal.c +++ b/drivers/video/omap2/displays/panel-taal.c | |||
| @@ -772,16 +772,21 @@ static int taal_rotate(struct omap_dss_device *dssdev, u8 rotate) | |||
| 772 | 772 | ||
| 773 | dev_dbg(&dssdev->dev, "rotate %d\n", rotate); | 773 | dev_dbg(&dssdev->dev, "rotate %d\n", rotate); |
| 774 | 774 | ||
| 775 | dsi_bus_lock(); | ||
| 776 | |||
| 775 | if (td->enabled) { | 777 | if (td->enabled) { |
| 776 | r = taal_set_addr_mode(rotate, td->mirror); | 778 | r = taal_set_addr_mode(rotate, td->mirror); |
| 777 | |||
| 778 | if (r) | 779 | if (r) |
| 779 | return r; | 780 | goto err; |
| 780 | } | 781 | } |
| 781 | 782 | ||
| 782 | td->rotate = rotate; | 783 | td->rotate = rotate; |
| 783 | 784 | ||
| 785 | dsi_bus_unlock(); | ||
| 784 | return 0; | 786 | return 0; |
| 787 | err: | ||
| 788 | dsi_bus_unlock(); | ||
| 789 | return r; | ||
| 785 | } | 790 | } |
| 786 | 791 | ||
| 787 | static u8 taal_get_rotate(struct omap_dss_device *dssdev) | 792 | static u8 taal_get_rotate(struct omap_dss_device *dssdev) |
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c index 8b9179668f48..263d2fd93bac 100644 --- a/drivers/video/omap2/dss/display.c +++ b/drivers/video/omap2/dss/display.c | |||
| @@ -185,9 +185,9 @@ static ssize_t display_rotate_show(struct device *dev, | |||
| 185 | { | 185 | { |
| 186 | struct omap_dss_device *dssdev = to_dss_device(dev); | 186 | struct omap_dss_device *dssdev = to_dss_device(dev); |
| 187 | int rotate; | 187 | int rotate; |
| 188 | if (!dssdev->get_rotate) | 188 | if (!dssdev->driver->get_rotate) |
| 189 | return -ENOENT; | 189 | return -ENOENT; |
| 190 | rotate = dssdev->get_rotate(dssdev); | 190 | rotate = dssdev->driver->get_rotate(dssdev); |
| 191 | return snprintf(buf, PAGE_SIZE, "%u\n", rotate); | 191 | return snprintf(buf, PAGE_SIZE, "%u\n", rotate); |
| 192 | } | 192 | } |
| 193 | 193 | ||
| @@ -198,12 +198,12 @@ static ssize_t display_rotate_store(struct device *dev, | |||
| 198 | unsigned long rot; | 198 | unsigned long rot; |
| 199 | int r; | 199 | int r; |
| 200 | 200 | ||
| 201 | if (!dssdev->set_rotate || !dssdev->get_rotate) | 201 | if (!dssdev->driver->set_rotate || !dssdev->driver->get_rotate) |
| 202 | return -ENOENT; | 202 | return -ENOENT; |
| 203 | 203 | ||
| 204 | rot = simple_strtoul(buf, NULL, 0); | 204 | rot = simple_strtoul(buf, NULL, 0); |
| 205 | 205 | ||
| 206 | r = dssdev->set_rotate(dssdev, rot); | 206 | r = dssdev->driver->set_rotate(dssdev, rot); |
| 207 | if (r) | 207 | if (r) |
| 208 | return r; | 208 | return r; |
| 209 | 209 | ||
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c index 2f356d471b0e..82733d18c0ac 100644 --- a/drivers/video/omap2/dss/dsi.c +++ b/drivers/video/omap2/dss/dsi.c | |||
| @@ -3532,36 +3532,6 @@ static int dsi_display_get_te(struct omap_dss_device *dssdev) | |||
| 3532 | return dsi.te_enabled; | 3532 | return dsi.te_enabled; |
| 3533 | } | 3533 | } |
| 3534 | 3534 | ||
| 3535 | static int dsi_display_set_rotate(struct omap_dss_device *dssdev, u8 rotate) | ||
| 3536 | { | ||
| 3537 | |||
| 3538 | DSSDBGF("%d", rotate); | ||
| 3539 | |||
| 3540 | if (!dssdev->driver->set_rotate || !dssdev->driver->get_rotate) | ||
| 3541 | return -EINVAL; | ||
| 3542 | |||
| 3543 | dsi_bus_lock(); | ||
| 3544 | dssdev->driver->set_rotate(dssdev, rotate); | ||
| 3545 | if (dsi.update_mode == OMAP_DSS_UPDATE_AUTO) { | ||
| 3546 | u16 w, h; | ||
| 3547 | /* the display dimensions may have changed, so set a new | ||
| 3548 | * update region */ | ||
| 3549 | dssdev->get_resolution(dssdev, &w, &h); | ||
| 3550 | dsi_set_update_region(dssdev, 0, 0, w, h); | ||
| 3551 | } | ||
| 3552 | dsi_bus_unlock(); | ||
| 3553 | |||
| 3554 | return 0; | ||
| 3555 | } | ||
| 3556 | |||
| 3557 | static u8 dsi_display_get_rotate(struct omap_dss_device *dssdev) | ||
| 3558 | { | ||
| 3559 | if (!dssdev->driver->set_rotate || !dssdev->driver->get_rotate) | ||
| 3560 | return 0; | ||
| 3561 | |||
| 3562 | return dssdev->driver->get_rotate(dssdev); | ||
| 3563 | } | ||
| 3564 | |||
| 3565 | void dsi_get_overlay_fifo_thresholds(enum omap_plane plane, | 3535 | void dsi_get_overlay_fifo_thresholds(enum omap_plane plane, |
| 3566 | u32 fifo_size, enum omap_burst_size *burst_size, | 3536 | u32 fifo_size, enum omap_burst_size *burst_size, |
| 3567 | u32 *fifo_low, u32 *fifo_high) | 3537 | u32 *fifo_low, u32 *fifo_high) |
| @@ -3590,9 +3560,6 @@ int dsi_init_display(struct omap_dss_device *dssdev) | |||
| 3590 | dssdev->enable_te = dsi_display_enable_te; | 3560 | dssdev->enable_te = dsi_display_enable_te; |
| 3591 | dssdev->get_te = dsi_display_get_te; | 3561 | dssdev->get_te = dsi_display_get_te; |
| 3592 | 3562 | ||
| 3593 | dssdev->get_rotate = dsi_display_get_rotate; | ||
| 3594 | dssdev->set_rotate = dsi_display_set_rotate; | ||
| 3595 | |||
| 3596 | /* XXX these should be figured out dynamically */ | 3563 | /* XXX these should be figured out dynamically */ |
| 3597 | dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE | | 3564 | dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE | |
| 3598 | OMAP_DSS_DISPLAY_CAP_TEAR_ELIM; | 3565 | OMAP_DSS_DISPLAY_CAP_TEAR_ELIM; |
