aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/omap_drv.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2018-02-13 07:00:42 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2018-03-01 02:18:18 -0500
commit50638ae569dc097a95218eb70140e68aa213b07c (patch)
treeee05794dd9530d70183c7e3f5d649e2a95940e12 /drivers/gpu/drm/omapdrm/omap_drv.c
parentd3541ca81dbddeefa0c42df448211a9dbaef0843 (diff)
drm: omapdrm: dispc: Pass DISPC pointer to dispc_ops operations
This removes the need to access the global DISPC private data in those functions (both for the current accesses and the future ones that will be introduced when allocating the DISPC private data dynamically). In order to allow the omapdrm side to call the dispc_ops with a DISPC pointer, we also introduce a new function dss_get_dispc() to retrieve the DISPC corresponding to the DSS. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_drv.c')
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index a93916cd0258..65a567dcf3ab 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -69,7 +69,7 @@ static void omap_atomic_commit_tail(struct drm_atomic_state *old_state)
69 struct drm_device *dev = old_state->dev; 69 struct drm_device *dev = old_state->dev;
70 struct omap_drm_private *priv = dev->dev_private; 70 struct omap_drm_private *priv = dev->dev_private;
71 71
72 priv->dispc_ops->runtime_get(); 72 priv->dispc_ops->runtime_get(priv->dispc);
73 73
74 /* Apply the atomic update. */ 74 /* Apply the atomic update. */
75 drm_atomic_helper_commit_modeset_disables(dev, old_state); 75 drm_atomic_helper_commit_modeset_disables(dev, old_state);
@@ -113,7 +113,7 @@ static void omap_atomic_commit_tail(struct drm_atomic_state *old_state)
113 113
114 drm_atomic_helper_cleanup_planes(dev, old_state); 114 drm_atomic_helper_cleanup_planes(dev, old_state);
115 115
116 priv->dispc_ops->runtime_put(); 116 priv->dispc_ops->runtime_put(priv->dispc);
117} 117}
118 118
119static const struct drm_mode_config_helper_funcs omap_mode_config_helper_funcs = { 119static const struct drm_mode_config_helper_funcs omap_mode_config_helper_funcs = {
@@ -191,7 +191,7 @@ cleanup:
191static int omap_modeset_init_properties(struct drm_device *dev) 191static int omap_modeset_init_properties(struct drm_device *dev)
192{ 192{
193 struct omap_drm_private *priv = dev->dev_private; 193 struct omap_drm_private *priv = dev->dev_private;
194 unsigned int num_planes = priv->dispc_ops->get_num_ovls(); 194 unsigned int num_planes = priv->dispc_ops->get_num_ovls(priv->dispc);
195 195
196 priv->zorder_prop = drm_property_create_range(dev, 0, "zorder", 0, 196 priv->zorder_prop = drm_property_create_range(dev, 0, "zorder", 0,
197 num_planes - 1); 197 num_planes - 1);
@@ -205,8 +205,8 @@ static int omap_modeset_init(struct drm_device *dev)
205{ 205{
206 struct omap_drm_private *priv = dev->dev_private; 206 struct omap_drm_private *priv = dev->dev_private;
207 struct omap_dss_device *dssdev = NULL; 207 struct omap_dss_device *dssdev = NULL;
208 int num_ovls = priv->dispc_ops->get_num_ovls(); 208 int num_ovls = priv->dispc_ops->get_num_ovls(priv->dispc);
209 int num_mgrs = priv->dispc_ops->get_num_mgrs(); 209 int num_mgrs = priv->dispc_ops->get_num_mgrs(priv->dispc);
210 int num_crtcs, crtc_idx, plane_idx; 210 int num_crtcs, crtc_idx, plane_idx;
211 int ret; 211 int ret;
212 u32 plane_crtc_mask; 212 u32 plane_crtc_mask;
@@ -521,6 +521,7 @@ static int omapdrm_init(struct omap_drm_private *priv, struct device *dev)
521 521
522 priv->dev = dev; 522 priv->dev = dev;
523 priv->dss = omapdss_get_dss(); 523 priv->dss = omapdss_get_dss();
524 priv->dispc = dispc_get_dispc(priv->dss);
524 priv->dispc_ops = dispc_get_ops(priv->dss); 525 priv->dispc_ops = dispc_get_ops(priv->dss);
525 526
526 omap_crtc_pre_init(priv); 527 omap_crtc_pre_init(priv);
@@ -549,7 +550,7 @@ static int omapdrm_init(struct omap_drm_private *priv, struct device *dev)
549 /* Get memory bandwidth limits */ 550 /* Get memory bandwidth limits */
550 if (priv->dispc_ops->get_memory_bandwidth_limit) 551 if (priv->dispc_ops->get_memory_bandwidth_limit)
551 priv->max_bandwidth = 552 priv->max_bandwidth =
552 priv->dispc_ops->get_memory_bandwidth_limit(); 553 priv->dispc_ops->get_memory_bandwidth_limit(priv->dispc);
553 554
554 omap_gem_init(ddev); 555 omap_gem_init(ddev);
555 556