aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2014-04-22 06:02:23 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-07-03 11:24:45 -0400
commitd016540722bb412ffa8376a9db0de757ce915bfb (patch)
tree36aefe4ee59e489c84042f817260d90173bd09c2
parente5d9ddfbb79667fb4b16db07c3282a2304fbf3ff (diff)
drm/armada: use number of CRTCs registered
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>
-rw-r--r--drivers/gpu/drm/armada/armada_crtc.c6
-rw-r--r--drivers/gpu/drm/armada/armada_crtc.h3
-rw-r--r--drivers/gpu/drm/armada/armada_drv.c4
3 files changed, 6 insertions, 7 deletions
diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c
index 9341a94cc906..4336dfd3585d 100644
--- a/drivers/gpu/drm/armada/armada_crtc.c
+++ b/drivers/gpu/drm/armada/armada_crtc.c
@@ -1050,8 +1050,8 @@ static int armada_drm_crtc_create_properties(struct drm_device *dev)
1050 return 0; 1050 return 0;
1051} 1051}
1052 1052
1053int armada_drm_crtc_create(struct drm_device *dev, unsigned num, 1053int armada_drm_crtc_create(struct drm_device *dev, struct resource *res,
1054 struct resource *res, int irq) 1054 int irq)
1055{ 1055{
1056 struct armada_private *priv = dev->dev_private; 1056 struct armada_private *priv = dev->dev_private;
1057 struct armada_crtc *dcrtc; 1057 struct armada_crtc *dcrtc;
@@ -1075,7 +1075,7 @@ int armada_drm_crtc_create(struct drm_device *dev, unsigned num,
1075 } 1075 }
1076 1076
1077 dcrtc->base = base; 1077 dcrtc->base = base;
1078 dcrtc->num = num; 1078 dcrtc->num = dev->mode_config.num_crtc;
1079 dcrtc->clk = ERR_PTR(-EINVAL); 1079 dcrtc->clk = ERR_PTR(-EINVAL);
1080 dcrtc->csc_yuv_mode = CSC_AUTO; 1080 dcrtc->csc_yuv_mode = CSC_AUTO;
1081 dcrtc->csc_rgb_mode = CSC_AUTO; 1081 dcrtc->csc_rgb_mode = CSC_AUTO;
diff --git a/drivers/gpu/drm/armada/armada_crtc.h b/drivers/gpu/drm/armada/armada_crtc.h
index 0e952b271212..531a9b0bdcfb 100644
--- a/drivers/gpu/drm/armada/armada_crtc.h
+++ b/drivers/gpu/drm/armada/armada_crtc.h
@@ -72,8 +72,7 @@ struct armada_crtc {
72}; 72};
73#define drm_to_armada_crtc(c) container_of(c, struct armada_crtc, crtc) 73#define drm_to_armada_crtc(c) container_of(c, struct armada_crtc, crtc)
74 74
75int armada_drm_crtc_create(struct drm_device *, unsigned, struct resource *, 75int armada_drm_crtc_create(struct drm_device *, struct resource *, int);
76 int);
77void armada_drm_crtc_gamma_set(struct drm_crtc *, u16, u16, u16, int); 76void armada_drm_crtc_gamma_set(struct drm_crtc *, u16, u16, u16, int);
78void armada_drm_crtc_gamma_get(struct drm_crtc *, u16 *, u16 *, u16 *, int); 77void armada_drm_crtc_gamma_get(struct drm_crtc *, u16 *, u16 *, u16 *, int);
79void armada_drm_crtc_disable_irq(struct armada_crtc *, u32); 78void armada_drm_crtc_disable_irq(struct armada_crtc *, u32);
diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
index 58884d807e6c..add8b101fa9e 100644
--- a/drivers/gpu/drm/armada/armada_drv.c
+++ b/drivers/gpu/drm/armada/armada_drv.c
@@ -164,7 +164,7 @@ static int armada_drm_load(struct drm_device *dev, unsigned long flags)
164 if (irq < 0) 164 if (irq < 0)
165 goto err_kms; 165 goto err_kms;
166 166
167 ret = armada_drm_crtc_create(dev, n, res[n], irq); 167 ret = armada_drm_crtc_create(dev, res[n], irq);
168 if (ret) 168 if (ret)
169 goto err_kms; 169 goto err_kms;
170 } 170 }
@@ -175,7 +175,7 @@ static int armada_drm_load(struct drm_device *dev, unsigned long flags)
175 goto err_kms; 175 goto err_kms;
176#endif 176#endif
177 177
178 ret = drm_vblank_init(dev, n); 178 ret = drm_vblank_init(dev, dev->mode_config.num_crtc);
179 if (ret) 179 if (ret)
180 goto err_kms; 180 goto err_kms;
181 181