drm/exynos: add helper to get crtc from pipe
authorAndrzej Hajda <a.hajda@samsung.com>
Wed, 23 Mar 2016 13:25:57 +0000 (14:25 +0100)
committerInki Dae <daeinki@gmail.com>
Fri, 29 Apr 2016 16:04:22 +0000 (01:04 +0900)
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@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_crtc.c
drivers/gpu/drm/exynos/exynos_drm_drv.h

index e36579c..50dd33d 100644 (file)
@@ -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);
index 502f750..481b602 100644 (file)
@@ -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;