From: Shawn Guo <shawn....@linaro.org>

Use drm_crtc_from_index() to find drm_crtc for given index.

Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
Cc: Ben Skeggs <bskeggs at redhat.com>
---
 drivers/gpu/drm/nouveau/nouveau_display.c | 33 +++++++++++++++++--------------
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c 
b/drivers/gpu/drm/nouveau/nouveau_display.c
index cef08da1da4e..a0e7221d6568 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -58,27 +58,30 @@
 nouveau_display_vblank_enable(struct drm_device *dev, unsigned int pipe)
 {
        struct drm_crtc *crtc;
-       list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
-               struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
-               if (nv_crtc->index == pipe) {
-                       nvif_notify_get(&nv_crtc->vblank);
-                       return 0;
-               }
-       }
-       return -EINVAL;
+       struct nouveau_crtc *nv_crtc;
+
+       crtc = drm_crtc_from_index(dev, pipe);
+       if (!crtc)
+               return -EINVAL;
+
+       nv_crtc = nouveau_crtc(crtc);
+       nvif_notify_get(&nv_crtc->vblank);
+
+       return 0;
 }

 void
 nouveau_display_vblank_disable(struct drm_device *dev, unsigned int pipe)
 {
        struct drm_crtc *crtc;
-       list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
-               struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
-               if (nv_crtc->index == pipe) {
-                       nvif_notify_put(&nv_crtc->vblank);
-                       return;
-               }
-       }
+       struct nouveau_crtc *nv_crtc;
+
+       crtc = drm_crtc_from_index(dev, pipe);
+       if (!crtc)
+               return;
+
+       nv_crtc = nouveau_crtc(crtc);
+       nvif_notify_put(&nv_crtc->vblank);
 }

 static inline int
-- 
1.9.1

Reply via email to