Re: [PATCH v2 3/3] drm/i915/lt_phy: program DDI_CLK_VALFREQ with DDI clock frequency

"Nautiyal, Ankit K" <[email protected]>
Newsgroups org.freedesktop.lists.intel-gfx,org.freedesktop.lists.intel-xe
Message-ID <[email protected]>
On 8/11/2026 11:28 PM, Suraj Kandpal wrote:
> DDI_CLK_VALFREQ is programmed with the port clock, which for DP is the
> symbol clock computed assuming 8b/10b encoding (link_rate / 10). For
> DP 128b/132b (UHBR) rates and for HDMI FRL the port clock needs to
> be modified.
> On silicon DDI_CLK_VALFREQ is a scratch register with no
> functional impact, so the bug is not observed.
> Use intel_ddi_link_symbol_clock() to write the correct DDI clock in
> kHz
>
> Fixes: 5ec58d714935 ("drm/i915/lt_phy: Add .enable_clock hook on DDI")
> Signed-off-by: Suraj Kandpal <[email protected]>

Reviewed-by: Ankit Nautiyal <[email protected]>


> ---
>   drivers/gpu/drm/i915/display/intel_lt_phy.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_lt_phy.c b/drivers/gpu/drm/i915/display/intel_lt_phy.c
> index 8fc6d230493f..86492651b01d 100644
> --- a/drivers/gpu/drm/i915/display/intel_lt_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_lt_phy.c
> @@ -1976,7 +1976,8 @@ void intel_lt_phy_pll_enable(struct intel_encoder *encoder,
>   		 * Change. We handle this step in bxt_set_cdclk().
>   		 */
>   		/* 10. Program DDI_CLK_VALFREQ to match intended DDI clock frequency. */
> -		intel_de_write(display, DDI_CLK_VALFREQ(encoder->port), port_clock);
> +		intel_de_write(display, DDI_CLK_VALFREQ(encoder->port),
> +			       intel_ddi_link_symbol_clock(encoder, port_clock));
>   
>   		/* 11. Program PORT_CLOCK_CTL[PCLK PLL Request LN0] = 1. */
>   		intel_de_rmw(display, XELPDP_PORT_CLOCK_CTL(display, port),
> @@ -2023,7 +2024,8 @@ void intel_lt_phy_pll_enable(struct intel_encoder *encoder,
>   			     lane_phy_pulse_status,
>   			     lane_phy_pulse_status);
>   	} else {
> -		intel_de_write(display, DDI_CLK_VALFREQ(encoder->port), port_clock);
> +		intel_de_write(display, DDI_CLK_VALFREQ(encoder->port),
> +			       intel_ddi_link_symbol_clock(encoder, port_clock));
>   	}
>   
>   	/*
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.