diff options
author | Ajay Kumar <ajaykumar.rs@samsung.com> | 2015-01-20 11:38:43 -0500 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2015-01-28 02:45:40 -0500 |
commit | b07b90fd178a4797b0454ead491b717b41046bee (patch) | |
tree | 910390d54786443561d9e45bfdb8ef154f246001 | |
parent | 94d50d57c4403aac70d23d2f442ab9ef4a668791 (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.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/sti/sti_hda.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/sti/sti_hdmi.c | 3 | ||||
-rw-r--r-- | include/drm/drm_crtc.h | 3 |
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 | */ |
1080 | int drm_bridge_init(struct drm_device *dev, struct drm_bridge *bridge, | 1079 | int 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 */ |
1223 | extern void drm_connector_unplug_all(struct drm_device *dev); | 1223 | extern void drm_connector_unplug_all(struct drm_device *dev); |
1224 | 1224 | ||
1225 | extern int drm_bridge_init(struct drm_device *dev, struct drm_bridge *bridge, | 1225 | extern int drm_bridge_init(struct drm_device *dev, struct drm_bridge *bridge); |
1226 | const struct drm_bridge_funcs *funcs); | ||
1227 | extern void drm_bridge_cleanup(struct drm_bridge *bridge); | 1226 | extern void drm_bridge_cleanup(struct drm_bridge *bridge); |
1228 | 1227 | ||
1229 | extern int drm_encoder_init(struct drm_device *dev, | 1228 | extern int drm_encoder_init(struct drm_device *dev, |