aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/omapdrm/dss/base.c9
-rw-r--r--drivers/gpu/drm/omapdrm/dss/omapdss.h1
-rw-r--r--drivers/gpu/drm/omapdrm/omap_crtc.c7
-rw-r--r--drivers/gpu/drm/omapdrm/omap_crtc.h4
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.c2
5 files changed, 8 insertions, 15 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/base.c b/drivers/gpu/drm/omapdrm/dss/base.c
index 89472715ee8f..2051bab30484 100644
--- a/drivers/gpu/drm/omapdrm/dss/base.c
+++ b/drivers/gpu/drm/omapdrm/dss/base.c
@@ -246,15 +246,6 @@ void omapdss_device_disconnect(struct omap_dss_device *src,
246} 246}
247EXPORT_SYMBOL_GPL(omapdss_device_disconnect); 247EXPORT_SYMBOL_GPL(omapdss_device_disconnect);
248 248
249enum omap_channel omapdss_device_get_dispc_channel(struct omap_dss_device *dssdev)
250{
251 while (dssdev->src)
252 dssdev = dssdev->src;
253
254 return dssdev->dispc_channel;
255}
256EXPORT_SYMBOL(omapdss_device_get_dispc_channel);
257
258/* ----------------------------------------------------------------------------- 249/* -----------------------------------------------------------------------------
259 * Components Handling 250 * Components Handling
260 */ 251 */
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
index 8f9538e17ea4..a732a4a0dc36 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
@@ -513,7 +513,6 @@ int omapdss_device_connect(struct dss_device *dss,
513 struct omap_dss_device *dst); 513 struct omap_dss_device *dst);
514void omapdss_device_disconnect(struct omap_dss_device *src, 514void omapdss_device_disconnect(struct omap_dss_device *src,
515 struct omap_dss_device *dst); 515 struct omap_dss_device *dst);
516enum omap_channel omapdss_device_get_dispc_channel(struct omap_dss_device *dssdev);
517 516
518int omap_dss_get_num_overlay_managers(void); 517int omap_dss_get_num_overlay_managers(void);
519 518
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index f5bf553a862f..f5bdb8de98f4 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -693,7 +693,8 @@ void omap_crtc_pre_uninit(struct omap_drm_private *priv)
693 693
694/* initialize crtc */ 694/* initialize crtc */
695struct drm_crtc *omap_crtc_init(struct drm_device *dev, 695struct drm_crtc *omap_crtc_init(struct drm_device *dev,
696 struct drm_plane *plane, struct omap_dss_device *dssdev) 696 struct omap_drm_pipeline *pipe,
697 struct drm_plane *plane)
697{ 698{
698 struct omap_drm_private *priv = dev->dev_private; 699 struct omap_drm_private *priv = dev->dev_private;
699 struct drm_crtc *crtc = NULL; 700 struct drm_crtc *crtc = NULL;
@@ -701,7 +702,7 @@ struct drm_crtc *omap_crtc_init(struct drm_device *dev,
701 enum omap_channel channel; 702 enum omap_channel channel;
702 int ret; 703 int ret;
703 704
704 channel = omapdss_device_get_dispc_channel(dssdev); 705 channel = pipe->output->dispc_channel;
705 706
706 DBG("%s", channel_names[channel]); 707 DBG("%s", channel_names[channel]);
707 708
@@ -724,7 +725,7 @@ struct drm_crtc *omap_crtc_init(struct drm_device *dev,
724 &omap_crtc_funcs, NULL); 725 &omap_crtc_funcs, NULL);
725 if (ret < 0) { 726 if (ret < 0) {
726 dev_err(dev->dev, "%s(): could not init crtc for: %s\n", 727 dev_err(dev->dev, "%s(): could not init crtc for: %s\n",
727 __func__, dssdev->name); 728 __func__, pipe->display->name);
728 kfree(omap_crtc); 729 kfree(omap_crtc);
729 return ERR_PTR(ret); 730 return ERR_PTR(ret);
730 } 731 }
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.h b/drivers/gpu/drm/omapdrm/omap_crtc.h
index 1c6530703855..d9de437ba9dd 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.h
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.h
@@ -27,6 +27,7 @@ enum omap_channel;
27struct drm_crtc; 27struct drm_crtc;
28struct drm_device; 28struct drm_device;
29struct drm_plane; 29struct drm_plane;
30struct omap_drm_pipeline;
30struct omap_dss_device; 31struct omap_dss_device;
31struct videomode; 32struct videomode;
32 33
@@ -35,7 +36,8 @@ enum omap_channel omap_crtc_channel(struct drm_crtc *crtc);
35void omap_crtc_pre_init(struct omap_drm_private *priv); 36void omap_crtc_pre_init(struct omap_drm_private *priv);
36void omap_crtc_pre_uninit(struct omap_drm_private *priv); 37void omap_crtc_pre_uninit(struct omap_drm_private *priv);
37struct drm_crtc *omap_crtc_init(struct drm_device *dev, 38struct drm_crtc *omap_crtc_init(struct drm_device *dev,
38 struct drm_plane *plane, struct omap_dss_device *dssdev); 39 struct omap_drm_pipeline *pipe,
40 struct drm_plane *plane);
39int omap_crtc_wait_pending(struct drm_crtc *crtc); 41int omap_crtc_wait_pending(struct drm_crtc *crtc);
40void omap_crtc_error_irq(struct drm_crtc *crtc, u32 irqstatus); 42void omap_crtc_error_irq(struct drm_crtc *crtc, u32 irqstatus);
41void omap_crtc_vblank_irq(struct drm_crtc *crtc); 43void omap_crtc_vblank_irq(struct drm_crtc *crtc);
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 0052f151bf7a..bb9ee2c93eca 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -308,7 +308,7 @@ static int omap_modeset_init(struct drm_device *dev)
308 if (!connector) 308 if (!connector)
309 return -ENOMEM; 309 return -ENOMEM;
310 310
311 crtc = omap_crtc_init(dev, priv->planes[i], display); 311 crtc = omap_crtc_init(dev, pipe, priv->planes[i]);
312 if (IS_ERR(crtc)) 312 if (IS_ERR(crtc))
313 return PTR_ERR(crtc); 313 return PTR_ERR(crtc);
314 314