drm/imx: Drop pipe field from struct imx_drm_crtc
authorThierry Reding <treding@nvidia.com>
Tue, 15 Dec 2015 11:20:52 +0000 (12:20 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 15 Dec 2015 12:36:44 +0000 (13:36 +0100)
Use the drm_crtc_index() helper to determine the pipe number of the CRTC
instead.

Cc: Philipp Zabel <p.zabel@pengutronix.de>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-5-git-send-email-boris.brezillon@free-electrons.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/imx/imx-drm-core.c

index 9211473f62a1fada57a3a5faba597c7682d02014..303a6737b87efbb9c810c1eace574ec0abb091af 100644 (file)
@@ -45,7 +45,6 @@ struct imx_drm_device {
 
 struct imx_drm_crtc {
        struct drm_crtc                         *crtc;
-       unsigned int                            pipe;
        struct imx_drm_crtc_helper_funcs        imx_drm_helper_funcs;
 };
 
@@ -56,7 +55,7 @@ module_param(legacyfb_depth, int, 0444);
 
 unsigned int imx_drm_crtc_id(struct imx_drm_crtc *crtc)
 {
-       return crtc->pipe;
+       return drm_crtc_index(crtc->crtc);
 }
 EXPORT_SYMBOL_GPL(imx_drm_crtc_id);
 
@@ -124,19 +123,19 @@ EXPORT_SYMBOL_GPL(imx_drm_set_bus_format);
 
 int imx_drm_crtc_vblank_get(struct imx_drm_crtc *imx_drm_crtc)
 {
-       return drm_vblank_get(imx_drm_crtc->crtc->dev, imx_drm_crtc->pipe);
+       return drm_crtc_vblank_get(imx_drm_crtc->crtc);
 }
 EXPORT_SYMBOL_GPL(imx_drm_crtc_vblank_get);
 
 void imx_drm_crtc_vblank_put(struct imx_drm_crtc *imx_drm_crtc)
 {
-       drm_vblank_put(imx_drm_crtc->crtc->dev, imx_drm_crtc->pipe);
+       drm_crtc_vblank_put(imx_drm_crtc->crtc);
 }
 EXPORT_SYMBOL_GPL(imx_drm_crtc_vblank_put);
 
 void imx_drm_handle_vblank(struct imx_drm_crtc *imx_drm_crtc)
 {
-       drm_handle_vblank(imx_drm_crtc->crtc->dev, imx_drm_crtc->pipe);
+       drm_crtc_handle_vblank(imx_drm_crtc->crtc);
 }
 EXPORT_SYMBOL_GPL(imx_drm_handle_vblank);
 
@@ -356,12 +355,11 @@ int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
                return -ENOMEM;
 
        imx_drm_crtc->imx_drm_helper_funcs = *imx_drm_helper_funcs;
-       imx_drm_crtc->pipe = imxdrm->pipes++;
        imx_drm_crtc->crtc = crtc;
 
        crtc->port = port;
 
-       imxdrm->crtc[imx_drm_crtc->pipe] = imx_drm_crtc;
+       imxdrm->crtc[imxdrm->pipes++] = imx_drm_crtc;
 
        *new_crtc = imx_drm_crtc;
 
@@ -378,7 +376,7 @@ int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
        return 0;
 
 err_register:
-       imxdrm->crtc[imx_drm_crtc->pipe] = NULL;
+       imxdrm->crtc[--imxdrm->pipes] = NULL;
        kfree(imx_drm_crtc);
        return ret;
 }
@@ -390,10 +388,11 @@ EXPORT_SYMBOL_GPL(imx_drm_add_crtc);
 int imx_drm_remove_crtc(struct imx_drm_crtc *imx_drm_crtc)
 {
        struct imx_drm_device *imxdrm = imx_drm_crtc->crtc->dev->dev_private;
+       unsigned int pipe = drm_crtc_index(imx_drm_crtc->crtc);
 
        drm_crtc_cleanup(imx_drm_crtc->crtc);
 
-       imxdrm->crtc[imx_drm_crtc->pipe] = NULL;
+       imxdrm->crtc[pipe] = NULL;
 
        kfree(imx_drm_crtc);