On Thu, Nov 05, 2026 at 06:02:40PM +0200, Kai Vehmanen wrote:
> i915 never fills in the ELD Port_ID field, so it is always zero, and
> the ELDs of identical monitors connected to different outputs are
> byte-identical. Userspace then cannot tell which HDMI/DP PCM belongs to
> which DRM connector without toggling the connector audio property.
> 
> Use drm_eld_set_port_id() when computing the audio config, so the value
> reaches the audio driver through every path: the audio component
> get_eld() callback, the hardware ELD buffer, SDVO and LPE audio.
> 
> The value is fixed for the lifetime of the connector, so it does not
> cause extra audio re-enables when the ELD is compared across commits,
> and state readout stays consistent because it is copied from the
> programmed ELD.
> 
> Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16693
> Signed-off-by: Kai Vehmanen <[email protected]>

Reviewed-by: Ville Syrjälä <[email protected]>

> ---
>  drivers/gpu/drm/i915/display/intel_audio.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c 
> b/drivers/gpu/drm/i915/display/intel_audio.c
> index 32f8c5e55319..3277e67748ee 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
> @@ -881,6 +881,8 @@ bool intel_audio_compute_config(struct intel_encoder 
> *encoder,
>       crtc_state->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
>       mutex_unlock(&connector->eld_mutex);
>  
> +     drm_eld_set_port_id(crtc_state->eld, connector);
> +
>       return true;
>  }
>  
> -- 
> 2.43.0

-- 
Ville Syrjälä
Intel

Reply via email to