diff options
author | Dave Airlie <airlied@redhat.com> | 2014-06-04 10:02:28 +0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2014-06-05 03:54:29 +0400 |
commit | 4f71d0cb76339a10fd445b0b281acc45c71b6271 (patch) | |
tree | 9badd446ee865db48ebebe77ed8f4e3b3ca089aa /include/drm | |
parent | 885ae1c55ae46ee1064bc7cb99dc45ddd8bd0328 (diff) | |
download | linux-4f71d0cb76339a10fd445b0b281acc45c71b6271.tar.xz |
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')
-rw-r--r-- | include/drm/drm_dp_helper.h | 7 |
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 { * @name: user-visible name of this AUX channel and the I2C-over-AUX adapter * @ddc: I2C adapter that can be used for I2C-over-AUX communication * @dev: pointer to struct device that is the parent for this AUX channel + * @hw_mutex: internal mutex used for locking transfers * @transfer: transfers a message representing a single AUX transaction * * The .dev field should be set to a pointer to the device that implements @@ -546,7 +547,7 @@ struct drm_dp_aux { const char *name; struct i2c_adapter ddc; struct device *dev; - + struct mutex hw_mutex; ssize_t (*transfer)(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg); }; @@ -605,7 +606,7 @@ int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link); int drm_dp_link_power_up(struct drm_dp_aux *aux, struct drm_dp_link *link); int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link); -int drm_dp_aux_register_i2c_bus(struct drm_dp_aux *aux); -void drm_dp_aux_unregister_i2c_bus(struct drm_dp_aux *aux); +int drm_dp_aux_register(struct drm_dp_aux *aux); +void drm_dp_aux_unregister(struct drm_dp_aux *aux); #endif /* _DRM_DP_HELPER_H_ */ |