diff options
author | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2015-08-10 20:37:04 -0400 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2015-08-15 21:23:36 -0400 |
commit | b6595dc7e1ccc0964862a5bd436a8f004b36c02f (patch) | |
tree | f1156afe0c662d2851942d5ed4dd0683ec5e03c4 /drivers/gpu/drm/exynos/exynos_drm_dsi.c | |
parent | 08dd20099f3ce55a2ded0045b5a087aefea38cd8 (diff) |
drm/exynos: split display's .dpms() into .enable() and .disable()
The DRM Core doesn't have a dpms() operation anymore, everything
now is enable() or disable().
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_dsi.c')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_dsi.c | 44 |
1 files changed, 13 insertions, 31 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c index 0e58b36cb8c2..281b97d3465b 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c | |||
@@ -1518,16 +1518,17 @@ static void exynos_dsi_poweroff(struct exynos_dsi *dsi) | |||
1518 | dev_err(dsi->dev, "cannot disable regulators %d\n", ret); | 1518 | dev_err(dsi->dev, "cannot disable regulators %d\n", ret); |
1519 | } | 1519 | } |
1520 | 1520 | ||
1521 | static int exynos_dsi_enable(struct exynos_dsi *dsi) | 1521 | static void exynos_dsi_enable(struct exynos_drm_display *display) |
1522 | { | 1522 | { |
1523 | struct exynos_dsi *dsi = display_to_dsi(display); | ||
1523 | int ret; | 1524 | int ret; |
1524 | 1525 | ||
1525 | if (dsi->state & DSIM_STATE_ENABLED) | 1526 | if (dsi->state & DSIM_STATE_ENABLED) |
1526 | return 0; | 1527 | return; |
1527 | 1528 | ||
1528 | ret = exynos_dsi_poweron(dsi); | 1529 | ret = exynos_dsi_poweron(dsi); |
1529 | if (ret < 0) | 1530 | if (ret < 0) |
1530 | return ret; | 1531 | return; |
1531 | 1532 | ||
1532 | dsi->state |= DSIM_STATE_ENABLED; | 1533 | dsi->state |= DSIM_STATE_ENABLED; |
1533 | 1534 | ||
@@ -1535,7 +1536,7 @@ static int exynos_dsi_enable(struct exynos_dsi *dsi) | |||
1535 | if (ret < 0) { | 1536 | if (ret < 0) { |
1536 | dsi->state &= ~DSIM_STATE_ENABLED; | 1537 | dsi->state &= ~DSIM_STATE_ENABLED; |
1537 | exynos_dsi_poweroff(dsi); | 1538 | exynos_dsi_poweroff(dsi); |
1538 | return ret; | 1539 | return; |
1539 | } | 1540 | } |
1540 | 1541 | ||
1541 | exynos_dsi_set_display_mode(dsi); | 1542 | exynos_dsi_set_display_mode(dsi); |
@@ -1547,16 +1548,16 @@ static int exynos_dsi_enable(struct exynos_dsi *dsi) | |||
1547 | exynos_dsi_set_display_enable(dsi, false); | 1548 | exynos_dsi_set_display_enable(dsi, false); |
1548 | drm_panel_unprepare(dsi->panel); | 1549 | drm_panel_unprepare(dsi->panel); |
1549 | exynos_dsi_poweroff(dsi); | 1550 | exynos_dsi_poweroff(dsi); |
1550 | return ret; | 1551 | return; |
1551 | } | 1552 | } |
1552 | 1553 | ||
1553 | dsi->state |= DSIM_STATE_VIDOUT_AVAILABLE; | 1554 | dsi->state |= DSIM_STATE_VIDOUT_AVAILABLE; |
1554 | |||
1555 | return 0; | ||
1556 | } | 1555 | } |
1557 | 1556 | ||
1558 | static void exynos_dsi_disable(struct exynos_dsi *dsi) | 1557 | static void exynos_dsi_disable(struct exynos_drm_display *display) |
1559 | { | 1558 | { |
1559 | struct exynos_dsi *dsi = display_to_dsi(display); | ||
1560 | |||
1560 | if (!(dsi->state & DSIM_STATE_ENABLED)) | 1561 | if (!(dsi->state & DSIM_STATE_ENABLED)) |
1561 | return; | 1562 | return; |
1562 | 1563 | ||
@@ -1571,26 +1572,6 @@ static void exynos_dsi_disable(struct exynos_dsi *dsi) | |||
1571 | exynos_dsi_poweroff(dsi); | 1572 | exynos_dsi_poweroff(dsi); |
1572 | } | 1573 | } |
1573 | 1574 | ||
1574 | static void exynos_dsi_dpms(struct exynos_drm_display *display, int mode) | ||
1575 | { | ||
1576 | struct exynos_dsi *dsi = display_to_dsi(display); | ||
1577 | |||
1578 | if (dsi->panel) { | ||
1579 | switch (mode) { | ||
1580 | case DRM_MODE_DPMS_ON: | ||
1581 | exynos_dsi_enable(dsi); | ||
1582 | break; | ||
1583 | case DRM_MODE_DPMS_STANDBY: | ||
1584 | case DRM_MODE_DPMS_SUSPEND: | ||
1585 | case DRM_MODE_DPMS_OFF: | ||
1586 | exynos_dsi_disable(dsi); | ||
1587 | break; | ||
1588 | default: | ||
1589 | break; | ||
1590 | } | ||
1591 | } | ||
1592 | } | ||
1593 | |||
1594 | static enum drm_connector_status | 1575 | static enum drm_connector_status |
1595 | exynos_dsi_detect(struct drm_connector *connector, bool force) | 1576 | exynos_dsi_detect(struct drm_connector *connector, bool force) |
1596 | { | 1577 | { |
@@ -1604,7 +1585,7 @@ exynos_dsi_detect(struct drm_connector *connector, bool force) | |||
1604 | struct exynos_drm_display *display; | 1585 | struct exynos_drm_display *display; |
1605 | 1586 | ||
1606 | display = platform_get_drvdata(to_platform_device(dsi->dev)); | 1587 | display = platform_get_drvdata(to_platform_device(dsi->dev)); |
1607 | exynos_dsi_dpms(display, DRM_MODE_DPMS_OFF); | 1588 | exynos_dsi_disable(display); |
1608 | drm_panel_detach(dsi->panel); | 1589 | drm_panel_detach(dsi->panel); |
1609 | dsi->panel = NULL; | 1590 | dsi->panel = NULL; |
1610 | } | 1591 | } |
@@ -1698,7 +1679,8 @@ static void exynos_dsi_mode_set(struct exynos_drm_display *display, | |||
1698 | static struct exynos_drm_display_ops exynos_dsi_display_ops = { | 1679 | static struct exynos_drm_display_ops exynos_dsi_display_ops = { |
1699 | .create_connector = exynos_dsi_create_connector, | 1680 | .create_connector = exynos_dsi_create_connector, |
1700 | .mode_set = exynos_dsi_mode_set, | 1681 | .mode_set = exynos_dsi_mode_set, |
1701 | .dpms = exynos_dsi_dpms | 1682 | .enable = exynos_dsi_enable, |
1683 | .disable = exynos_dsi_disable, | ||
1702 | }; | 1684 | }; |
1703 | 1685 | ||
1704 | MODULE_DEVICE_TABLE(of, exynos_dsi_of_match); | 1686 | MODULE_DEVICE_TABLE(of, exynos_dsi_of_match); |
@@ -1849,7 +1831,7 @@ static void exynos_dsi_unbind(struct device *dev, struct device *master, | |||
1849 | struct exynos_drm_display *display = dev_get_drvdata(dev); | 1831 | struct exynos_drm_display *display = dev_get_drvdata(dev); |
1850 | struct exynos_dsi *dsi = display_to_dsi(display); | 1832 | struct exynos_dsi *dsi = display_to_dsi(display); |
1851 | 1833 | ||
1852 | exynos_dsi_dpms(display, DRM_MODE_DPMS_OFF); | 1834 | exynos_dsi_disable(display); |
1853 | 1835 | ||
1854 | mipi_dsi_host_unregister(&dsi->dsi_host); | 1836 | mipi_dsi_host_unregister(&dsi->dsi_host); |
1855 | } | 1837 | } |