drm: kirin: use crtc helper drm_crtc_from_index()
authorShawn Guo <shawn.guo@linaro.org>
Mon, 9 Jan 2017 11:25:41 +0000 (19:25 +0800)
committerSean Paul <seanpaul@chromium.org>
Wed, 18 Jan 2017 14:19:56 +0000 (09:19 -0500)
Use drm_crtc_from_index() to find drm_crtc for given index, so that we
do not need to maintain a pointer array in struct kirin_drm_private.

Reviewed-by: Xinliang Liu<z.liuxinliang@hisilicon.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1483961145-18453-3-git-send-email-shawnguo@kernel.org
drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h

index 307d460ab684184b3028aa6ef956ca6233f99a79..9a0678a33e0dcd9cafaf95ec377cad354bfbcc01 100644 (file)
@@ -304,8 +304,8 @@ static void ade_set_medianoc_qos(struct ade_crtc *acrtc)
 
 static int ade_enable_vblank(struct drm_device *dev, unsigned int pipe)
 {
-       struct kirin_drm_private *priv = dev->dev_private;
-       struct ade_crtc *acrtc = to_ade_crtc(priv->crtc[pipe]);
+       struct drm_crtc *crtc = drm_crtc_from_index(dev, pipe);
+       struct ade_crtc *acrtc = to_ade_crtc(crtc);
        struct ade_hw_ctx *ctx = acrtc->ctx;
        void __iomem *base = ctx->base;
 
@@ -320,8 +320,8 @@ static int ade_enable_vblank(struct drm_device *dev, unsigned int pipe)
 
 static void ade_disable_vblank(struct drm_device *dev, unsigned int pipe)
 {
-       struct kirin_drm_private *priv = dev->dev_private;
-       struct ade_crtc *acrtc = to_ade_crtc(priv->crtc[pipe]);
+       struct drm_crtc *crtc = drm_crtc_from_index(dev, pipe);
+       struct ade_crtc *acrtc = to_ade_crtc(crtc);
        struct ade_hw_ctx *ctx = acrtc->ctx;
        void __iomem *base = ctx->base;
 
@@ -575,7 +575,6 @@ static const struct drm_crtc_funcs ade_crtc_funcs = {
 static int ade_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
                         struct drm_plane *plane)
 {
-       struct kirin_drm_private *priv = dev->dev_private;
        struct device_node *port;
        int ret;
 
@@ -599,7 +598,6 @@ static int ade_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
        }
 
        drm_crtc_helper_add(crtc, &ade_crtc_helper_funcs);
-       priv->crtc[drm_crtc_index(crtc)] = crtc;
 
        return 0;
 }
index a0bb217c4c643363ea21a290fb3ff600d13a58f3..7f60c64915d953563155de418764c74951f5bbb6 100644 (file)
@@ -20,7 +20,6 @@ struct kirin_dc_ops {
 };
 
 struct kirin_drm_private {
-       struct drm_crtc *crtc[MAX_CRTC];
 #ifdef CONFIG_DRM_FBDEV_EMULATION
        struct drm_fbdev_cma *fbdev;
 #endif