]> git.karo-electronics.de Git - linux-beck.git/commitdiff
drm/armada: use number of CRTCs registered
authorRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 22 Apr 2014 10:02:23 +0000 (11:02 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 3 Jul 2014 15:24:45 +0000 (16:24 +0100)
Use the number of CRTCs registered to size the vblank arrays rather than
our own count.  Number CRTCs using this as well.  This permits us to
register CRTCs as components in the near future rather than as part of a
single device.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/gpu/drm/armada/armada_crtc.c
drivers/gpu/drm/armada/armada_crtc.h
drivers/gpu/drm/armada/armada_drv.c

index 9341a94cc90677e799a1220a10dd4d2a4fe51bdd..4336dfd3585d16fbd8cd8e4cfd80f7802f9e44c1 100644 (file)
@@ -1050,8 +1050,8 @@ static int armada_drm_crtc_create_properties(struct drm_device *dev)
        return 0;
 }
 
-int armada_drm_crtc_create(struct drm_device *dev, unsigned num,
-       struct resource *res, int irq)
+int armada_drm_crtc_create(struct drm_device *dev, struct resource *res,
+       int irq)
 {
        struct armada_private *priv = dev->dev_private;
        struct armada_crtc *dcrtc;
@@ -1075,7 +1075,7 @@ int armada_drm_crtc_create(struct drm_device *dev, unsigned num,
        }
 
        dcrtc->base = base;
-       dcrtc->num = num;
+       dcrtc->num = dev->mode_config.num_crtc;
        dcrtc->clk = ERR_PTR(-EINVAL);
        dcrtc->csc_yuv_mode = CSC_AUTO;
        dcrtc->csc_rgb_mode = CSC_AUTO;
index 0e952b2712121e6bb7280bbb44812eafe40144be..531a9b0bdcfb4a064e4bb611744b7a51fb7f298a 100644 (file)
@@ -72,8 +72,7 @@ struct armada_crtc {
 };
 #define drm_to_armada_crtc(c) container_of(c, struct armada_crtc, crtc)
 
-int armada_drm_crtc_create(struct drm_device *, unsigned, struct resource *,
-       int);
+int armada_drm_crtc_create(struct drm_device *, struct resource *, int);
 void armada_drm_crtc_gamma_set(struct drm_crtc *, u16, u16, u16, int);
 void armada_drm_crtc_gamma_get(struct drm_crtc *, u16 *, u16 *, u16 *, int);
 void armada_drm_crtc_disable_irq(struct armada_crtc *, u32);
index 58884d807e6c404f45e024a55ab33bd7c6fa5531..add8b101fa9eb5aaa63710015c762c1e09896360 100644 (file)
@@ -164,7 +164,7 @@ static int armada_drm_load(struct drm_device *dev, unsigned long flags)
                if (irq < 0)
                        goto err_kms;
 
-               ret = armada_drm_crtc_create(dev, n, res[n], irq);
+               ret = armada_drm_crtc_create(dev, res[n], irq);
                if (ret)
                        goto err_kms;
        }
@@ -175,7 +175,7 @@ static int armada_drm_load(struct drm_device *dev, unsigned long flags)
                goto err_kms;
 #endif
 
-       ret = drm_vblank_init(dev, n);
+       ret = drm_vblank_init(dev, dev->mode_config.num_crtc);
        if (ret)
                goto err_kms;