From: Libin Yang <[email protected]>

When disconnecting monitor, dev_priv->dig_port_map[port]
will be set NULL, which causes eld will not be updated in
i915_audio_component_get_eld().

This patch clears the eld buf when dev_priv->dig_port_map[port]
is NULL.

Signed-off-by: Libin Yang <[email protected]>
---
 drivers/gpu/drm/i915/intel_audio.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_audio.c 
b/drivers/gpu/drm/i915/intel_audio.c
index fdc8b2a..9d3879e 100644
--- a/drivers/gpu/drm/i915/intel_audio.c
+++ b/drivers/gpu/drm/i915/intel_audio.c
@@ -732,6 +732,13 @@ static int i915_audio_component_get_eld(struct device 
*dev, int port,
                        ret = drm_eld_size(eld);
                        memcpy(buf, eld, min(max_bytes, ret));
                }
+       } else {
+               /* dev_priv->dig_port_map[port] will be set NULL in
+                * intel_audio_codec_disable when disconnecting monitor.
+                * We need clear the eld buf.
+                */
+               memset(buf, 0, max_bytes);
+               ret = 0;
        }
 
        mutex_unlock(&dev_priv->av_mutex);
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to