Re: [PATCH v2 2/3] drm/i915/cx0: 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 modfied.
> 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.

Perhaps can be re-phrased as :

DDI_CLK_VALFREQ does not configure hardware, it only records the 
frequency software intends to set, so there is no functional impact.

Patch LGTM.

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


>
> Fixes: 51390cc0e00a ("drm/i915/mtl: Add Support for C10 PHY message bus and pll programming")
> Fixes: 73fc3abcb797 ("drm/i915/mtl: Enabling/disabling sequence Thunderbolt pll")
> Signed-off-by: Suraj Kandpal <[email protected]>
> ---
>   drivers/gpu/drm/i915/display/intel_cx0_phy.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> index 452062417ce9..dbebd7210848 100644
> --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> @@ -3233,7 +3233,8 @@ static void intel_cx0pll_enable(struct intel_encoder *encoder,
>   	 * 8. 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));
>   
>   	/*
>   	 * 9. Set PORT_CLOCK_CTL register PCLK PLL Request
> @@ -3406,7 +3407,7 @@ void intel_mtl_tbt_pll_enable_clock(struct intel_encoder *encoder, int port_cloc
>   	 * clock frequency.
>   	 */
>   	intel_de_write(display, DDI_CLK_VALFREQ(encoder->port),
> -		       port_clock);
> +		       intel_ddi_link_symbol_clock(encoder, port_clock));
>   }
>   
>   void intel_mtl_pll_enable(struct intel_encoder *encoder,
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.