summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>2024-12-06 11:43:04 +0200
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>2024-12-16 18:02:07 +0200
commitdf7c8e3dde37a9d81c0613285b43600f3cc70f34 (patch)
treee63d1ec341d80bd6f76a492525b10dae68e5c747 /include
parent67a615c5cb6dc33ed35492dc0d67e496cbe8de68 (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.h5
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];
/**