The helper abstracts out conversion from pipeline
to crtc. Currently it is used in two places, but
there will be more uses in next patches.

Signed-off-by: Andrzej Hajda <a.hajda at samsung.com>
---
 drivers/gpu/drm/exynos/exynos_drm_crtc.c | 10 ++++------
 drivers/gpu/drm/exynos/exynos_drm_drv.h  |  8 ++++++++
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c 
b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
index e36579c..50dd33d 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
@@ -157,9 +157,8 @@ err_crtc:

 int exynos_drm_crtc_enable_vblank(struct drm_device *dev, unsigned int pipe)
 {
-       struct exynos_drm_private *private = dev->dev_private;
-       struct exynos_drm_crtc *exynos_crtc =
-               to_exynos_crtc(private->crtc[pipe]);
+       struct exynos_drm_crtc *exynos_crtc = exynos_drm_crtc_from_pipe(dev,
+                                                                       pipe);

        if (exynos_crtc->ops->enable_vblank)
                return exynos_crtc->ops->enable_vblank(exynos_crtc);
@@ -169,9 +168,8 @@ int exynos_drm_crtc_enable_vblank(struct drm_device *dev, 
unsigned int pipe)

 void exynos_drm_crtc_disable_vblank(struct drm_device *dev, unsigned int pipe)
 {
-       struct exynos_drm_private *private = dev->dev_private;
-       struct exynos_drm_crtc *exynos_crtc =
-               to_exynos_crtc(private->crtc[pipe]);
+       struct exynos_drm_crtc *exynos_crtc = exynos_drm_crtc_from_pipe(dev,
+                                                                       pipe);

        if (exynos_crtc->ops->disable_vblank)
                exynos_crtc->ops->disable_vblank(exynos_crtc);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h 
b/drivers/gpu/drm/exynos/exynos_drm_drv.h
index 3f170ce..fcea940 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
@@ -232,6 +232,14 @@ struct exynos_drm_private {
        wait_queue_head_t       wait;
 };

+static inline struct exynos_drm_crtc *
+exynos_drm_crtc_from_pipe(struct drm_device *dev, int pipe)
+{
+       struct exynos_drm_private *private = dev->dev_private;
+
+       return to_exynos_crtc(private->crtc[pipe]);
+}
+
 static inline struct device *to_dma_dev(struct drm_device *dev)
 {
        struct exynos_drm_private *priv = dev->dev_private;
-- 
1.9.1

Reply via email to