* [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld
@ 2024-11-30 23:55 Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 01/10] drm/connector: add mutex to protect ELD from concurrent access Dmitry Baryshkov
` (10 more replies)
0 siblings, 11 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
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.
The individual drivers were just compile tested. I propose to merge the
drm_connector and bridge drivers through drm-misc, allowing other
maintainers either to ack merging through drm-misc or merging the
drm-misc into their tree and then picking up correcponding patch.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
Dmitry Baryshkov (10):
drm/connector: add mutex to protect ELD from concurrent access
drm/bridge: anx7625: use eld_mutex to protect access to connector->eld
drm/bridge: ite-it66121: use eld_mutex to protect access to connector->eld
drm/amd/display: use eld_mutex to protect access to connector->eld
drm/exynos: hdmi: use eld_mutex to protect access to connector->eld
drm/i915/audio: use eld_mutex to protect access to connector->eld
drm/msm/dp: use eld_mutex to protect access to connector->eld
drm/radeon: use eld_mutex to protect access to connector->eld
drm/sti: hdmi: use eld_mutex to protect access to connector->eld
drm/vc4: hdmi: use eld_mutex to protect access to connector->eld
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 ++
drivers/gpu/drm/bridge/analogix/anx7625.c | 2 ++
drivers/gpu/drm/bridge/ite-it66121.c | 2 ++
drivers/gpu/drm/drm_connector.c | 1 +
drivers/gpu/drm/drm_edid.c | 4 ++++
drivers/gpu/drm/exynos/exynos_hdmi.c | 2 ++
drivers/gpu/drm/i915/display/intel_audio.c | 3 +++
drivers/gpu/drm/msm/dp/dp_audio.c | 2 ++
drivers/gpu/drm/radeon/radeon_audio.c | 2 ++
drivers/gpu/drm/sti/sti_hdmi.c | 2 ++
drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ++--
include/drm/drm_connector.h | 5 ++++-
12 files changed, 28 insertions(+), 3 deletions(-)
---
base-commit: 44cff6c5b0b17a78bc0b30372bcd816cf6dd282a
change-id: 20241201-drm-connector-eld-mutex-8a39a35e9a38
Best regards,
--
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 01/10] drm/connector: add mutex to protect ELD from concurrent access
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-12-02 10:23 ` Jani Nikula
2024-11-30 23:55 ` [PATCH 02/10] drm/bridge: anx7625: use eld_mutex to protect access to connector->eld Dmitry Baryshkov
` (9 subsequent siblings)
10 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
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.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/drm_connector.c | 1 +
drivers/gpu/drm/drm_edid.c | 4 ++++
include/drm/drm_connector.h | 5 ++++-
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index fc35f47e2849ed6786d6223ac9c69e1c359fc648..bbdaaf7022b62d84594a29f1b60144920903a99a 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -277,6 +277,7 @@ static int __drm_connector_init(struct drm_device *dev,
INIT_LIST_HEAD(&connector->probed_modes);
INIT_LIST_HEAD(&connector->modes);
mutex_init(&connector->mutex);
+ mutex_init(&connector->eld_mutex);
mutex_init(&connector->edid_override_mutex);
mutex_init(&connector->hdmi.infoframes.lock);
connector->edid_blob_ptr = NULL;
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 855beafb76ffbecf5c08d58e2f54bfb76f30b930..f0ca77bd42fd518d505d0db78557e0c8d83efb29 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -5657,6 +5657,8 @@ static void drm_edid_to_eld(struct drm_connector *connector,
if (!drm_edid)
return;
+ mutex_lock(&connector->eld_mutex);
+
mnl = get_monitor_name(drm_edid, &eld[DRM_ELD_MONITOR_NAME_STRING]);
drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] ELD monitor %s\n",
connector->base.id, connector->name,
@@ -5717,6 +5719,8 @@ static void drm_edid_to_eld(struct drm_connector *connector,
drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] ELD size %d, SAD count %d\n",
connector->base.id, connector->name,
drm_eld_size(eld), total_sad_count);
+
+ mutex_unlock(&connector->eld_mutex);
}
static int _drm_edid_to_sad(const struct drm_edid *drm_edid,
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index e3fa43291f449d70f3b92a00985336c4f2237bc6..1e2b25e204cb523d61d30f5409faa059bf2b86eb 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];
/**
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 02/10] drm/bridge: anx7625: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 01/10] drm/connector: add mutex to protect ELD from concurrent access Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 03/10] drm/bridge: ite-it66121: " Dmitry Baryshkov
` (8 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Reading access to connector->eld can happen at the same time the
drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
order to protect connector->eld from concurrent access.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/bridge/analogix/anx7625.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
index a2675b121fe44b96945f34215fd900f35bfde43a..c036bbc92ba96ec4663c55cca091cd5da9f6d271 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.c
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
@@ -2002,8 +2002,10 @@ static int anx7625_audio_get_eld(struct device *dev, void *data,
memset(buf, 0, len);
} else {
dev_dbg(dev, "audio copy eld\n");
+ mutex_lock(&ctx->connector->eld_mutex);
memcpy(buf, ctx->connector->eld,
min(sizeof(ctx->connector->eld), len));
+ mutex_unlock(&ctx->connector->eld_mutex);
}
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 03/10] drm/bridge: ite-it66121: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 01/10] drm/connector: add mutex to protect ELD from concurrent access Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 02/10] drm/bridge: anx7625: use eld_mutex to protect access to connector->eld Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 04/10] drm/amd/display: " Dmitry Baryshkov
` (7 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Reading access to connector->eld can happen at the same time the
drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
order to protect connector->eld from concurrent access.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/bridge/ite-it66121.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/bridge/ite-it66121.c b/drivers/gpu/drm/bridge/ite-it66121.c
index 35ae3f0e8f51f768229e055a086b53a419ffcd9f..940083e5d2ddbfc56f14e2bdc6ddd0b9dd50b1f8 100644
--- a/drivers/gpu/drm/bridge/ite-it66121.c
+++ b/drivers/gpu/drm/bridge/ite-it66121.c
@@ -1450,8 +1450,10 @@ static int it66121_audio_get_eld(struct device *dev, void *data,
dev_dbg(dev, "No connector present, passing empty EDID data");
memset(buf, 0, len);
} else {
+ mutex_lock(&ctx->connector->eld_mutex);
memcpy(buf, ctx->connector->eld,
min(sizeof(ctx->connector->eld), len));
+ mutex_unlock(&ctx->connector->eld_mutex);
}
mutex_unlock(&ctx->lock);
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 04/10] drm/amd/display: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
` (2 preceding siblings ...)
2024-11-30 23:55 ` [PATCH 03/10] drm/bridge: ite-it66121: " Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 05/10] drm/exynos: hdmi: " Dmitry Baryshkov
` (6 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Reading access to connector->eld can happen at the same time the
drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
order to protect connector->eld from concurrent access.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index a0bcc62f280f8e80f5d174cd2f567a8ec616e54f..2843283375551b0b85f5f897acdb2aeab652892c 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1037,8 +1037,10 @@ static int amdgpu_dm_audio_component_get_eld(struct device *kdev, int port,
continue;
*enabled = true;
+ mutex_lock(&connector->eld_mutex);
ret = drm_eld_size(connector->eld);
memcpy(buf, connector->eld, min(max_bytes, ret));
+ mutex_unlock(&connector->eld_mutex);
break;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 05/10] drm/exynos: hdmi: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
` (3 preceding siblings ...)
2024-11-30 23:55 ` [PATCH 04/10] drm/amd/display: " Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 06/10] drm/i915/audio: " Dmitry Baryshkov
` (5 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Reading access to connector->eld can happen at the same time the
drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
order to protect connector->eld from concurrent access.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/exynos/exynos_hdmi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index c9d4b9146df95bb46cb6bea4849c331616c2b463..6fc537c9048f5c8e57e30f083121c9aea6b99a5f 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -1648,7 +1648,9 @@ static int hdmi_audio_get_eld(struct device *dev, void *data, uint8_t *buf,
struct hdmi_context *hdata = dev_get_drvdata(dev);
struct drm_connector *connector = &hdata->connector;
+ mutex_lock(&connector->eld_mutex);
memcpy(buf, connector->eld, min(sizeof(connector->eld), len));
+ mutex_unlock(&connector->eld_mutex);
return 0;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 06/10] drm/i915/audio: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
` (4 preceding siblings ...)
2024-11-30 23:55 ` [PATCH 05/10] drm/exynos: hdmi: " Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-12-03 14:56 ` Jani Nikula
2024-11-30 23:55 ` [PATCH 07/10] drm/msm/dp: " Dmitry Baryshkov
` (4 subsequent siblings)
10 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Reading access to connector->eld can happen at the same time the
drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
order to protect connector->eld from concurrent access.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/i915/display/intel_audio.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
index 32aa9ec1a204d2ecde46cad36598aa768a3af671..3902ab8431139c3ff4dc17b841d94b6d3241dec3 100644
--- a/drivers/gpu/drm/i915/display/intel_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_audio.c
@@ -699,10 +699,12 @@ bool intel_audio_compute_config(struct intel_encoder *encoder,
const struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode;
+ mutex_lock(&connector->eld_mutex);
if (!connector->eld[0]) {
drm_dbg_kms(&i915->drm,
"Bogus ELD on [CONNECTOR:%d:%s]\n",
connector->base.id, connector->name);
+ mutex_unlock(&connector->eld_mutex);
return false;
}
@@ -710,6 +712,7 @@ bool intel_audio_compute_config(struct intel_encoder *encoder,
memcpy(crtc_state->eld, connector->eld, sizeof(crtc_state->eld));
crtc_state->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
+ mutex_unlock(&connector->eld_mutex);
return true;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 07/10] drm/msm/dp: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
` (5 preceding siblings ...)
2024-11-30 23:55 ` [PATCH 06/10] drm/i915/audio: " Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-12-03 3:27 ` Abhinav Kumar
2024-11-30 23:55 ` [PATCH 08/10] drm/radeon: " Dmitry Baryshkov
` (3 subsequent siblings)
10 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Reading access to connector->eld can happen at the same time the
drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
order to protect connector->eld from concurrent access.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/msm/dp/dp_audio.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/msm/dp/dp_audio.c b/drivers/gpu/drm/msm/dp/dp_audio.c
index a599fc5d63c524474276f5db98b05c7c512f332a..61952a0c49861efcb5e7c0884fcb85c040daf9ce 100644
--- a/drivers/gpu/drm/msm/dp/dp_audio.c
+++ b/drivers/gpu/drm/msm/dp/dp_audio.c
@@ -414,8 +414,10 @@ static int dp_audio_get_eld(struct device *dev,
return -ENODEV;
}
+ mutex_lock(&dp_display->connector->eld_mutex);
memcpy(buf, dp_display->connector->eld,
min(sizeof(dp_display->connector->eld), len));
+ mutex_unlock(&dp_display->connector->eld_mutex);
return 0;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 08/10] drm/radeon: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
` (6 preceding siblings ...)
2024-11-30 23:55 ` [PATCH 07/10] drm/msm/dp: " Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 09/10] drm/sti: hdmi: " Dmitry Baryshkov
` (2 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Reading access to connector->eld can happen at the same time the
drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
order to protect connector->eld from concurrent access.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/radeon/radeon_audio.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/radeon/radeon_audio.c b/drivers/gpu/drm/radeon/radeon_audio.c
index 47aa06a9a94221555a4828f41a57cbe03d637ee1..547d8f420669cdb949ffebd0677ddb8cc3c25812 100644
--- a/drivers/gpu/drm/radeon/radeon_audio.c
+++ b/drivers/gpu/drm/radeon/radeon_audio.c
@@ -771,8 +771,10 @@ static int radeon_audio_component_get_eld(struct device *kdev, int port,
if (!connector)
continue;
*enabled = true;
+ mutex_lock(&connector->eld_mutex);
ret = drm_eld_size(connector->eld);
memcpy(buf, connector->eld, min(max_bytes, ret));
+ mutex_unlock(&connector->eld_mutex);
break;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 09/10] drm/sti: hdmi: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
` (7 preceding siblings ...)
2024-11-30 23:55 ` [PATCH 08/10] drm/radeon: " Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-12-02 15:03 ` Raphaël Gallais-Pou
2024-11-30 23:55 ` [PATCH 10/10] drm/vc4: " Dmitry Baryshkov
2024-12-02 10:19 ` [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Maxime Ripard
10 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Reading access to connector->eld can happen at the same time the
drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
order to protect connector->eld from concurrent access.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/sti/sti_hdmi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
index 847470f747c0efad61c2ebdc3fb3746a7a13a863..3c8f3532c79723e7b1a720c855c90e40584cc6ca 100644
--- a/drivers/gpu/drm/sti/sti_hdmi.c
+++ b/drivers/gpu/drm/sti/sti_hdmi.c
@@ -1225,7 +1225,9 @@ static int hdmi_audio_get_eld(struct device *dev, void *data, uint8_t *buf, size
struct drm_connector *connector = hdmi->drm_connector;
DRM_DEBUG_DRIVER("\n");
+ mutex_lock(&connector->eld_mutex);
memcpy(buf, connector->eld, min(sizeof(connector->eld), len));
+ mutex_unlock(&connector->eld_mutex);
return 0;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 10/10] drm/vc4: hdmi: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
` (8 preceding siblings ...)
2024-11-30 23:55 ` [PATCH 09/10] drm/sti: hdmi: " Dmitry Baryshkov
@ 2024-11-30 23:55 ` Dmitry Baryshkov
2024-12-02 10:19 ` [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Maxime Ripard
10 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-11-30 23:55 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Abhinav Kumar,
Sean Paul, Marijn Suijten, Alain Volmat, Raphael Gallais-Pou,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Reading access to connector->eld can happen at the same time the
drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
order to protect connector->eld from concurrent access.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index b9fc4d981cf4d682bedd978795cf7284d2650e74..7295834e75fb1ab0cd241ed274e675567e66870b 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -2221,9 +2221,9 @@ static int vc4_hdmi_audio_get_eld(struct device *dev, void *data,
struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
struct drm_connector *connector = &vc4_hdmi->connector;
- mutex_lock(&vc4_hdmi->mutex);
+ mutex_lock(&connector->eld_mutex);
memcpy(buf, connector->eld, min(sizeof(connector->eld), len));
- mutex_unlock(&vc4_hdmi->mutex);
+ mutex_unlock(&connector->eld_mutex);
return 0;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
` (9 preceding siblings ...)
2024-11-30 23:55 ` [PATCH 10/10] drm/vc4: " Dmitry Baryshkov
@ 2024-12-02 10:19 ` Maxime Ripard
2024-12-02 11:03 ` Dmitry Baryshkov
10 siblings, 1 reply; 20+ messages in thread
From: Maxime Ripard @ 2024-12-02 10:19 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: amd-gfx, dri-devel, freedreno, intel-gfx, intel-xe,
linux-arm-kernel, linux-arm-msm, linux-kernel, linux-samsung-soc,
Abhinav Kumar, Alain Volmat, Alex Deucher, Alim Akhtar,
Andrzej Hajda, Christian König, Dave Stevenson, David Airlie,
Harry Wentland, Inki Dae, Jani Nikula, Jernej Skrabec,
Jonas Karlman, Joonas Lahtinen, Krzysztof Kozlowski,
Kyungmin Park, Laurent Pinchart, Leo Li, Maarten Lankhorst,
Marijn Suijten, Maxime Ripard, Maíra Canal, Neil Armstrong,
Phong LE, Raphael Gallais-Pou, Raspberry Pi Kernel Maintenance,
Rob Clark, Robert Foss, Rodrigo Siqueira, Rodrigo Vivi, Sean Paul,
Seung-Woo Kim, Simona Vetter, Thomas Zimmermann, Tvrtko Ursulin,
Xinhui Pan
On Sun, 1 Dec 2024 01:55:17 +0200, Dmitry Baryshkov wrote:
> 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.
>
>
> [ ... ]
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Thanks!
Maxime
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 01/10] drm/connector: add mutex to protect ELD from concurrent access
2024-11-30 23:55 ` [PATCH 01/10] drm/connector: add mutex to protect ELD from concurrent access Dmitry Baryshkov
@ 2024-12-02 10:23 ` Jani Nikula
0 siblings, 0 replies; 20+ messages in thread
From: Jani Nikula @ 2024-12-02 10:23 UTC (permalink / raw)
To: Dmitry Baryshkov, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Harry Wentland,
Leo Li, Rodrigo Siqueira, Alex Deucher, Christian König,
Xinhui Pan, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Phong LE,
Inki Dae, Seung-Woo Kim, Kyungmin Park, Krzysztof Kozlowski,
Alim Akhtar, Rodrigo Vivi, Joonas Lahtinen, Tvrtko Ursulin,
Rob Clark, Abhinav Kumar, Sean Paul, Marijn Suijten, Alain Volmat,
Raphael Gallais-Pou, Dave Stevenson, Maíra Canal,
Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
On Sun, 01 Dec 2024, Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote:
> 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.
Missed clear_eld().
BR,
Jani.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> drivers/gpu/drm/drm_connector.c | 1 +
> drivers/gpu/drm/drm_edid.c | 4 ++++
> include/drm/drm_connector.h | 5 ++++-
> 3 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index fc35f47e2849ed6786d6223ac9c69e1c359fc648..bbdaaf7022b62d84594a29f1b60144920903a99a 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -277,6 +277,7 @@ static int __drm_connector_init(struct drm_device *dev,
> INIT_LIST_HEAD(&connector->probed_modes);
> INIT_LIST_HEAD(&connector->modes);
> mutex_init(&connector->mutex);
> + mutex_init(&connector->eld_mutex);
> mutex_init(&connector->edid_override_mutex);
> mutex_init(&connector->hdmi.infoframes.lock);
> connector->edid_blob_ptr = NULL;
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 855beafb76ffbecf5c08d58e2f54bfb76f30b930..f0ca77bd42fd518d505d0db78557e0c8d83efb29 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -5657,6 +5657,8 @@ static void drm_edid_to_eld(struct drm_connector *connector,
> if (!drm_edid)
> return;
>
> + mutex_lock(&connector->eld_mutex);
> +
> mnl = get_monitor_name(drm_edid, &eld[DRM_ELD_MONITOR_NAME_STRING]);
> drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] ELD monitor %s\n",
> connector->base.id, connector->name,
> @@ -5717,6 +5719,8 @@ static void drm_edid_to_eld(struct drm_connector *connector,
> drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] ELD size %d, SAD count %d\n",
> connector->base.id, connector->name,
> drm_eld_size(eld), total_sad_count);
> +
> + mutex_unlock(&connector->eld_mutex);
> }
>
> static int _drm_edid_to_sad(const struct drm_edid *drm_edid,
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index e3fa43291f449d70f3b92a00985336c4f2237bc6..1e2b25e204cb523d61d30f5409faa059bf2b86eb 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];
> /**
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld
2024-12-02 10:19 ` [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Maxime Ripard
@ 2024-12-02 11:03 ` Dmitry Baryshkov
2024-12-02 12:00 ` Maxime Ripard
0 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-12-02 11:03 UTC (permalink / raw)
To: Maxime Ripard
Cc: amd-gfx, dri-devel, freedreno, intel-gfx, intel-xe,
linux-arm-kernel, linux-arm-msm, linux-kernel, linux-samsung-soc,
Abhinav Kumar, Alain Volmat, Alex Deucher, Alim Akhtar,
Andrzej Hajda, Christian König, Dave Stevenson, David Airlie,
Harry Wentland, Inki Dae, Jani Nikula, Jernej Skrabec,
Jonas Karlman, Joonas Lahtinen, Krzysztof Kozlowski,
Kyungmin Park, Laurent Pinchart, Leo Li, Maarten Lankhorst,
Marijn Suijten, Maíra Canal, Neil Armstrong, Phong LE,
Raphael Gallais-Pou, Raspberry Pi Kernel Maintenance, Rob Clark,
Robert Foss, Rodrigo Siqueira, Rodrigo Vivi, Sean Paul,
Seung-Woo Kim, Simona Vetter, Thomas Zimmermann, Tvrtko Ursulin,
Xinhui Pan
On Mon, Dec 02, 2024 at 10:19:41AM +0000, Maxime Ripard wrote:
> On Sun, 1 Dec 2024 01:55:17 +0200, Dmitry Baryshkov wrote:
> > 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.
> >
> >
> > [ ... ]
>
> Reviewed-by: Maxime Ripard <mripard@kernel.org>
Thanks!
I'm going to post v2 to fix Jani's comment, but what should be the merge
strategy? Merge patches 1-3, 5, 9-10 through drm-misc and the rest (AMD,
i915, MSM, radeon) through the driver trees?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld
2024-12-02 11:03 ` Dmitry Baryshkov
@ 2024-12-02 12:00 ` Maxime Ripard
0 siblings, 0 replies; 20+ messages in thread
From: Maxime Ripard @ 2024-12-02 12:00 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: amd-gfx, dri-devel, freedreno, intel-gfx, intel-xe,
linux-arm-kernel, linux-arm-msm, linux-kernel, linux-samsung-soc,
Abhinav Kumar, Alain Volmat, Alex Deucher, Alim Akhtar,
Andrzej Hajda, Christian König, Dave Stevenson, David Airlie,
Harry Wentland, Inki Dae, Jani Nikula, Jernej Skrabec,
Jonas Karlman, Joonas Lahtinen, Krzysztof Kozlowski,
Kyungmin Park, Laurent Pinchart, Leo Li, Maarten Lankhorst,
Marijn Suijten, Maíra Canal, Neil Armstrong, Phong LE,
Raphael Gallais-Pou, Raspberry Pi Kernel Maintenance, Rob Clark,
Robert Foss, Rodrigo Siqueira, Rodrigo Vivi, Sean Paul,
Seung-Woo Kim, Simona Vetter, Thomas Zimmermann, Tvrtko Ursulin,
Xinhui Pan
[-- Attachment #1: Type: text/plain, Size: 847 bytes --]
On Mon, Dec 02, 2024 at 01:03:07PM +0200, Dmitry Baryshkov wrote:
> On Mon, Dec 02, 2024 at 10:19:41AM +0000, Maxime Ripard wrote:
> > On Sun, 1 Dec 2024 01:55:17 +0200, Dmitry Baryshkov wrote:
> > > 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.
> > >
> > >
> > > [ ... ]
> >
> > Reviewed-by: Maxime Ripard <mripard@kernel.org>
>
> Thanks!
>
> I'm going to post v2 to fix Jani's comment, but what should be the merge
> strategy? Merge patches 1-3, 5, 9-10 through drm-misc and the rest (AMD,
> i915, MSM, radeon) through the driver trees?
The easiest is probably to merge everything through drm-misc if everyone agrees.
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 09/10] drm/sti: hdmi: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 ` [PATCH 09/10] drm/sti: hdmi: " Dmitry Baryshkov
@ 2024-12-02 15:03 ` Raphaël Gallais-Pou
0 siblings, 0 replies; 20+ messages in thread
From: Raphaël Gallais-Pou @ 2024-12-02 15:03 UTC (permalink / raw)
To: Dmitry Baryshkov, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Harry Wentland,
Leo Li, Rodrigo Siqueira, Alex Deucher, Christian König,
Xinhui Pan, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Phong LE,
Inki Dae, Seung-Woo Kim, Kyungmin Park, Krzysztof Kozlowski,
Alim Akhtar, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Rob Clark, Abhinav Kumar, Sean Paul,
Marijn Suijten, Alain Volmat, Dave Stevenson, Maíra Canal,
Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
Le 01/12/2024 à 00:55, Dmitry Baryshkov a écrit :
> Reading access to connector->eld can happen at the same time the
> drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
> order to protect connector->eld from concurrent access.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Hi Dmitry,
Acked-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
Thanks,
Raphaël
> ---
> drivers/gpu/drm/sti/sti_hdmi.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
> index 847470f747c0efad61c2ebdc3fb3746a7a13a863..3c8f3532c79723e7b1a720c855c90e40584cc6ca 100644
> --- a/drivers/gpu/drm/sti/sti_hdmi.c
> +++ b/drivers/gpu/drm/sti/sti_hdmi.c
> @@ -1225,7 +1225,9 @@ static int hdmi_audio_get_eld(struct device *dev, void *data, uint8_t *buf, size
> struct drm_connector *connector = hdmi->drm_connector;
>
> DRM_DEBUG_DRIVER("\n");
> + mutex_lock(&connector->eld_mutex);
> memcpy(buf, connector->eld, min(sizeof(connector->eld), len));
> + mutex_unlock(&connector->eld_mutex);
>
> return 0;
> }
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 07/10] drm/msm/dp: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 ` [PATCH 07/10] drm/msm/dp: " Dmitry Baryshkov
@ 2024-12-03 3:27 ` Abhinav Kumar
2024-12-03 13:58 ` Dmitry Baryshkov
0 siblings, 1 reply; 20+ messages in thread
From: Abhinav Kumar @ 2024-12-03 3:27 UTC (permalink / raw)
To: Dmitry Baryshkov, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Harry Wentland,
Leo Li, Rodrigo Siqueira, Alex Deucher, Christian König,
Xinhui Pan, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Phong LE,
Inki Dae, Seung-Woo Kim, Kyungmin Park, Krzysztof Kozlowski,
Alim Akhtar, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Rob Clark, Sean Paul, Marijn Suijten,
Alain Volmat, Raphael Gallais-Pou, Dave Stevenson,
Maíra Canal, Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
On 11/30/2024 3:55 PM, Dmitry Baryshkov wrote:
> Reading access to connector->eld can happen at the same time the
> drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
> order to protect connector->eld from concurrent access.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> drivers/gpu/drm/msm/dp/dp_audio.c | 2 ++
> 1 file changed, 2 insertions(+)
>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 07/10] drm/msm/dp: use eld_mutex to protect access to connector->eld
2024-12-03 3:27 ` Abhinav Kumar
@ 2024-12-03 13:58 ` Dmitry Baryshkov
2024-12-04 23:26 ` Abhinav Kumar
0 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2024-12-03 13:58 UTC (permalink / raw)
To: Abhinav Kumar
Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Sean Paul,
Marijn Suijten, Alain Volmat, Raphael Gallais-Pou, Dave Stevenson,
Maíra Canal, Raspberry Pi Kernel Maintenance, dri-devel,
linux-kernel, amd-gfx, linux-arm-kernel, linux-samsung-soc,
intel-gfx, intel-xe, linux-arm-msm, freedreno
On Mon, Dec 02, 2024 at 07:27:45PM -0800, Abhinav Kumar wrote:
>
>
> On 11/30/2024 3:55 PM, Dmitry Baryshkov wrote:
> > Reading access to connector->eld can happen at the same time the
> > drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
> > order to protect connector->eld from concurrent access.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> > drivers/gpu/drm/msm/dp/dp_audio.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
>
> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Ack to merge through drm-misc?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 06/10] drm/i915/audio: use eld_mutex to protect access to connector->eld
2024-11-30 23:55 ` [PATCH 06/10] drm/i915/audio: " Dmitry Baryshkov
@ 2024-12-03 14:56 ` Jani Nikula
0 siblings, 0 replies; 20+ messages in thread
From: Jani Nikula @ 2024-12-03 14:56 UTC (permalink / raw)
To: Dmitry Baryshkov, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Harry Wentland,
Leo Li, Rodrigo Siqueira, Alex Deucher, Christian König,
Xinhui Pan, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Phong LE,
Inki Dae, Seung-Woo Kim, Kyungmin Park, Krzysztof Kozlowski,
Alim Akhtar, Rodrigo Vivi, Joonas Lahtinen, Tvrtko Ursulin,
Rob Clark, Abhinav Kumar, Sean Paul, Marijn Suijten, Alain Volmat,
Raphael Gallais-Pou, Dave Stevenson, Maíra Canal,
Raspberry Pi Kernel Maintenance
Cc: dri-devel, linux-kernel, amd-gfx, linux-arm-kernel,
linux-samsung-soc, intel-gfx, intel-xe, linux-arm-msm, freedreno
On Sun, 01 Dec 2024, Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote:
> Reading access to connector->eld can happen at the same time the
> drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
> order to protect connector->eld from concurrent access.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
and
Acked-by: Jani Nikula <jani.nikula@intel.com>
for merging via whichever tree you find best.
> ---
> drivers/gpu/drm/i915/display/intel_audio.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
> index 32aa9ec1a204d2ecde46cad36598aa768a3af671..3902ab8431139c3ff4dc17b841d94b6d3241dec3 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
> @@ -699,10 +699,12 @@ bool intel_audio_compute_config(struct intel_encoder *encoder,
> const struct drm_display_mode *adjusted_mode =
> &crtc_state->hw.adjusted_mode;
>
> + mutex_lock(&connector->eld_mutex);
> if (!connector->eld[0]) {
> drm_dbg_kms(&i915->drm,
> "Bogus ELD on [CONNECTOR:%d:%s]\n",
> connector->base.id, connector->name);
> + mutex_unlock(&connector->eld_mutex);
> return false;
> }
>
> @@ -710,6 +712,7 @@ bool intel_audio_compute_config(struct intel_encoder *encoder,
> memcpy(crtc_state->eld, connector->eld, sizeof(crtc_state->eld));
>
> crtc_state->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
> + mutex_unlock(&connector->eld_mutex);
>
> return true;
> }
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 07/10] drm/msm/dp: use eld_mutex to protect access to connector->eld
2024-12-03 13:58 ` Dmitry Baryshkov
@ 2024-12-04 23:26 ` Abhinav Kumar
0 siblings, 0 replies; 20+ messages in thread
From: Abhinav Kumar @ 2024-12-04 23:26 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Harry Wentland, Leo Li, Rodrigo Siqueira,
Alex Deucher, Christian König, Xinhui Pan, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Phong LE, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Rob Clark, Sean Paul,
Marijn Suijten, Alain Volmat, Raphael Gallais-Pou, Dave Stevenson,
Maíra Canal, Raspberry Pi Kernel Maintenance, dri-devel,
linux-kernel, amd-gfx, linux-arm-kernel, linux-samsung-soc,
intel-gfx, intel-xe, linux-arm-msm, freedreno
On 12/3/2024 5:58 AM, Dmitry Baryshkov wrote:
> On Mon, Dec 02, 2024 at 07:27:45PM -0800, Abhinav Kumar wrote:
>>
>>
>> On 11/30/2024 3:55 PM, Dmitry Baryshkov wrote:
>>> Reading access to connector->eld can happen at the same time the
>>> drm_edid_to_eld() updates the data. Take the newly added eld_mutex in
>>> order to protect connector->eld from concurrent access.
>>>
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>>> ---
>>> drivers/gpu/drm/msm/dp/dp_audio.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>
>> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
>
> Ack to merge through drm-misc?
>
Yes,
Acked-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2024-12-04 23:37 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-30 23:55 [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 01/10] drm/connector: add mutex to protect ELD from concurrent access Dmitry Baryshkov
2024-12-02 10:23 ` Jani Nikula
2024-11-30 23:55 ` [PATCH 02/10] drm/bridge: anx7625: use eld_mutex to protect access to connector->eld Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 03/10] drm/bridge: ite-it66121: " Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 04/10] drm/amd/display: " Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 05/10] drm/exynos: hdmi: " Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 06/10] drm/i915/audio: " Dmitry Baryshkov
2024-12-03 14:56 ` Jani Nikula
2024-11-30 23:55 ` [PATCH 07/10] drm/msm/dp: " Dmitry Baryshkov
2024-12-03 3:27 ` Abhinav Kumar
2024-12-03 13:58 ` Dmitry Baryshkov
2024-12-04 23:26 ` Abhinav Kumar
2024-11-30 23:55 ` [PATCH 08/10] drm/radeon: " Dmitry Baryshkov
2024-11-30 23:55 ` [PATCH 09/10] drm/sti: hdmi: " Dmitry Baryshkov
2024-12-02 15:03 ` Raphaël Gallais-Pou
2024-11-30 23:55 ` [PATCH 10/10] drm/vc4: " Dmitry Baryshkov
2024-12-02 10:19 ` [PATCH 00/10] drm/connector: add eld_mutex to protect connector->eld Maxime Ripard
2024-12-02 11:03 ` Dmitry Baryshkov
2024-12-02 12:00 ` Maxime Ripard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).