aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAjay Kumar <ajaykumar.rs@samsung.com>2015-01-20 11:38:43 -0500
committerThierry Reding <treding@nvidia.com>2015-01-28 02:45:40 -0500
commitb07b90fd178a4797b0454ead491b717b41046bee (patch)
tree910390d54786443561d9e45bfdb8ef154f246001
parent94d50d57c4403aac70d23d2f442ab9ef4a668791 (diff)
drm/bridge: do not pass drm_bridge_funcs to drm_bridge_init
Assign the pointer to bridge ops structure(drm_bridge_funcs) in the bridge driver itself, instead of passing it to drm_bridge_init. This will allow bridge driver developer to pack bridge private information inside the bridge object and pass only the drm-relevant information to drm_bridge_init. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Tested-by: Rahul Sharma <rahul.sharma@samsung.com> Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Tested-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Tested-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r--drivers/gpu/drm/bridge/ptn3460.c3
-rw-r--r--drivers/gpu/drm/drm_crtc.c5
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_bridge.c3
-rw-r--r--drivers/gpu/drm/sti/sti_hda.c3
-rw-r--r--drivers/gpu/drm/sti/sti_hdmi.c3
-rw-r--r--include/drm/drm_crtc.h3
6 files changed, 10 insertions, 10 deletions
diff --git a/drivers/gpu/drm/bridge/ptn3460.c b/drivers/gpu/drm/bridge/ptn3460.c
index 4db38e1f7a1f..a2ddc8d73c6a 100644
--- a/drivers/gpu/drm/bridge/ptn3460.c
+++ b/drivers/gpu/drm/bridge/ptn3460.c
@@ -313,7 +313,8 @@ int ptn3460_init(struct drm_device *dev, struct drm_encoder *encoder,
313 goto err; 313 goto err;
314 } 314 }
315 315
316 ret = drm_bridge_init(dev, &ptn_bridge->bridge, &ptn3460_bridge_funcs); 316 ptn_bridge->bridge.funcs = &ptn3460_bridge_funcs;
317 ret = drm_bridge_init(dev, &ptn_bridge->bridge);
317 if (ret) { 318 if (ret) {
318 DRM_ERROR("Failed to initialize bridge with drm\n"); 319 DRM_ERROR("Failed to initialize bridge with drm\n");
319 goto err; 320 goto err;
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index b459888f6310..7936c5c2314c 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1069,7 +1069,6 @@ EXPORT_SYMBOL(drm_connector_unplug_all);
1069 * drm_bridge_init - initialize a drm transcoder/bridge 1069 * drm_bridge_init - initialize a drm transcoder/bridge
1070 * @dev: drm device 1070 * @dev: drm device
1071 * @bridge: transcoder/bridge to set up 1071 * @bridge: transcoder/bridge to set up
1072 * @funcs: bridge function table
1073 * 1072 *
1074 * Initialises a preallocated bridge. Bridges should be 1073 * Initialises a preallocated bridge. Bridges should be
1075 * subclassed as part of driver connector objects. 1074 * subclassed as part of driver connector objects.
@@ -1077,8 +1076,7 @@ EXPORT_SYMBOL(drm_connector_unplug_all);
1077 * Returns: 1076 * Returns:
1078 * Zero on success, error code on failure. 1077 * Zero on success, error code on failure.
1079 */ 1078 */
1080int drm_bridge_init(struct drm_device *dev, struct drm_bridge *bridge, 1079int drm_bridge_init(struct drm_device *dev, struct drm_bridge *bridge)
1081 const struct drm_bridge_funcs *funcs)
1082{ 1080{
1083 int ret; 1081 int ret;
1084 1082
@@ -1089,7 +1087,6 @@ int drm_bridge_init(struct drm_device *dev, struct drm_bridge *bridge,
1089 goto out; 1087 goto out;
1090 1088
1091 bridge->dev = dev; 1089 bridge->dev = dev;
1092 bridge->funcs = funcs;
1093 1090
1094 list_add_tail(&bridge->head, &dev->mode_config.bridge_list); 1091 list_add_tail(&bridge->head, &dev->mode_config.bridge_list);
1095 dev->mode_config.num_bridge++; 1092 dev->mode_config.num_bridge++;
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c
index 6902ad6da710..52ed2b53b246 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c
@@ -220,8 +220,9 @@ struct drm_bridge *hdmi_bridge_init(struct hdmi *hdmi)
220 hdmi_bridge->hdmi = hdmi; 220 hdmi_bridge->hdmi = hdmi;
221 221
222 bridge = &hdmi_bridge->base; 222 bridge = &hdmi_bridge->base;
223 bridge->funcs = &hdmi_bridge_funcs;
223 224
224 drm_bridge_init(hdmi->dev, bridge, &hdmi_bridge_funcs); 225 drm_bridge_init(hdmi->dev, bridge);
225 226
226 return bridge; 227 return bridge;
227 228
diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
index 2ae9a9b73666..6cf145de9b41 100644
--- a/drivers/gpu/drm/sti/sti_hda.c
+++ b/drivers/gpu/drm/sti/sti_hda.c
@@ -664,7 +664,8 @@ static int sti_hda_bind(struct device *dev, struct device *master, void *data)
664 return -ENOMEM; 664 return -ENOMEM;
665 665
666 bridge->driver_private = hda; 666 bridge->driver_private = hda;
667 drm_bridge_init(drm_dev, bridge, &sti_hda_bridge_funcs); 667 bridge->funcs = &sti_hda_bridge_funcs;
668 drm_bridge_init(drm_dev, bridge);
668 669
669 encoder->bridge = bridge; 670 encoder->bridge = bridge;
670 connector->encoder = encoder; 671 connector->encoder = encoder;
diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
index d032e024b0b8..74e943e655d1 100644
--- a/drivers/gpu/drm/sti/sti_hdmi.c
+++ b/drivers/gpu/drm/sti/sti_hdmi.c
@@ -635,7 +635,8 @@ static int sti_hdmi_bind(struct device *dev, struct device *master, void *data)
635 goto err_adapt; 635 goto err_adapt;
636 636
637 bridge->driver_private = hdmi; 637 bridge->driver_private = hdmi;
638 drm_bridge_init(drm_dev, bridge, &sti_hdmi_bridge_funcs); 638 bridge->funcs = &sti_hdmi_bridge_funcs;
639 drm_bridge_init(drm_dev, bridge);
639 640
640 encoder->bridge = bridge; 641 encoder->bridge = bridge;
641 connector->encoder = encoder; 642 connector->encoder = encoder;
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 02614170c034..15bb762fb316 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -1222,8 +1222,7 @@ extern unsigned int drm_connector_index(struct drm_connector *connector);
1222/* helper to unplug all connectors from sysfs for device */ 1222/* helper to unplug all connectors from sysfs for device */
1223extern void drm_connector_unplug_all(struct drm_device *dev); 1223extern void drm_connector_unplug_all(struct drm_device *dev);
1224 1224
1225extern int drm_bridge_init(struct drm_device *dev, struct drm_bridge *bridge, 1225extern int drm_bridge_init(struct drm_device *dev, struct drm_bridge *bridge);
1226 const struct drm_bridge_funcs *funcs);
1227extern void drm_bridge_cleanup(struct drm_bridge *bridge); 1226extern void drm_bridge_cleanup(struct drm_bridge *bridge);
1228 1227
1229extern int drm_encoder_init(struct drm_device *dev, 1228extern int drm_encoder_init(struct drm_device *dev,