diff options
| author | Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | 2024-12-06 11:43:04 +0200 |
|---|---|---|
| committer | Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | 2024-12-16 18:02:07 +0200 |
| commit | df7c8e3dde37a9d81c0613285b43600f3cc70f34 (patch) | |
| tree | e63d1ec341d80bd6f76a492525b10dae68e5c747 /include | |
| parent | 67a615c5cb6dc33ed35492dc0d67e496cbe8de68 (diff) | |
drm/connector: add mutex to protect ELD from concurrent access
The connector->eld is accessed by the .get_eld() callback. This access
can collide with the drm_edid_to_eld() updating the data at the same
time. Add drm_connector.eld_mutex to protect the data from concurrenct
access. Individual drivers are not updated (to reduce possible issues
while applying the patch), maintainers are to find a best suitable way
to lock that mutex while accessing the ELD data.
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20241206-drm-connector-eld-mutex-v2-1-c9bce1ee8bea@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/drm/drm_connector.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index e3fa43291f44..1e2b25e204cb 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -2001,8 +2001,11 @@ struct drm_connector { struct drm_encoder *encoder; #define MAX_ELD_BYTES 128 - /** @eld: EDID-like data, if present */ + /** @eld: EDID-like data, if present, protected by @eld_mutex */ uint8_t eld[MAX_ELD_BYTES]; + /** @eld_mutex: protection for concurrenct access to @eld */ + struct mutex eld_mutex; + /** @latency_present: AV delay info from ELD, if found */ bool latency_present[2]; /** |
