aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm/drm_dp_helper.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2014-06-04 02:02:28 -0400
committerDave Airlie <airlied@redhat.com>2014-06-04 19:54:29 -0400
commit4f71d0cb76339a10fd445b0b281acc45c71b6271 (patch)
tree9badd446ee865db48ebebe77ed8f4e3b3ca089aa /include/drm/drm_dp_helper.h
parent885ae1c55ae46ee1064bc7cb99dc45ddd8bd0328 (diff)
drm/dp: add a hw mutex around the transfer functions. (v2)
This should avoid races between connector probing and HPD irqs in the future, currently mode_config.mutex blocks this possibility. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/drm/drm_dp_helper.h')
-rw-r--r--include/drm/drm_dp_helper.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
index 488b41635dec..a21568bf1514 100644
--- a/include/drm/drm_dp_helper.h
+++ b/include/drm/drm_dp_helper.h
@@ -514,6 +514,7 @@ struct drm_dp_aux_msg {
514 * @name: user-visible name of this AUX channel and the I2C-over-AUX adapter 514 * @name: user-visible name of this AUX channel and the I2C-over-AUX adapter
515 * @ddc: I2C adapter that can be used for I2C-over-AUX communication 515 * @ddc: I2C adapter that can be used for I2C-over-AUX communication
516 * @dev: pointer to struct device that is the parent for this AUX channel 516 * @dev: pointer to struct device that is the parent for this AUX channel
517 * @hw_mutex: internal mutex used for locking transfers
517 * @transfer: transfers a message representing a single AUX transaction 518 * @transfer: transfers a message representing a single AUX transaction
518 * 519 *
519 * The .dev field should be set to a pointer to the device that implements 520 * The .dev field should be set to a pointer to the device that implements
@@ -546,7 +547,7 @@ struct drm_dp_aux {
546 const char *name; 547 const char *name;
547 struct i2c_adapter ddc; 548 struct i2c_adapter ddc;
548 struct device *dev; 549 struct device *dev;
549 550 struct mutex hw_mutex;
550 ssize_t (*transfer)(struct drm_dp_aux *aux, 551 ssize_t (*transfer)(struct drm_dp_aux *aux,
551 struct drm_dp_aux_msg *msg); 552 struct drm_dp_aux_msg *msg);
552}; 553};
@@ -605,7 +606,7 @@ int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link);
605int drm_dp_link_power_up(struct drm_dp_aux *aux, struct drm_dp_link *link); 606int drm_dp_link_power_up(struct drm_dp_aux *aux, struct drm_dp_link *link);
606int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link); 607int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link);
607 608
608int drm_dp_aux_register_i2c_bus(struct drm_dp_aux *aux); 609int drm_dp_aux_register(struct drm_dp_aux *aux);
609void drm_dp_aux_unregister_i2c_bus(struct drm_dp_aux *aux); 610void drm_dp_aux_unregister(struct drm_dp_aux *aux);
610 611
611#endif /* _DRM_DP_HELPER_H_ */ 612#endif /* _DRM_DP_HELPER_H_ */