Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: "Kandpal, Suraj" <suraj.kandpal@intel.com>
Cc: "Kahola, Mika" <mika.kahola@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
Subject: Re: [PATCH v2 11/15] drm/i915/cx0: Verify C10/C20 pll dividers
Date: Thu, 8 Jan 2026 16:30:35 +0200	[thread overview]
Message-ID: <aV-_iwPmDy7Xk74s@ideak-desk> (raw)
In-Reply-To: <IA3PR11MB893760F05BC486300F40B951E387A@IA3PR11MB8937.namprd11.prod.outlook.com>

On Tue, Jan 06, 2026 at 05:04:48AM +0000, Kandpal, Suraj wrote:
> > ...
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.h b/drivers/gpu/drm/i915/display/intel_cx0_phy.h
> > index 3d9c580eb562..c0ac67f7b11f 100644
> > --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.h
> > +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.h
> > @@ -78,6 +78,7 @@ bool intel_mtl_tbt_pll_readout_hw_state(struct intel_display *display,
> >  					struct intel_dpll_hw_state *hw_state);
> > int intel_mtl_tbt_calc_port_clock(struct intel_encoder *encoder);
> > 
> > +void intel_cx0pll_verify_plls(struct intel_display *display);
> >  void intel_cx0_pll_power_save_wa(struct intel_display *display); 
> > void
> > intel_lnl_mac_transmit_lfps(struct intel_encoder *encoder,
> >  				 const struct intel_crtc_state *crtc_state); diff
> > --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> > b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> > index 9aa84a430f09..7127bc2a0898 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> > @@ -4613,7 +4613,7 @@ void intel_dpll_init(struct intel_display *display)
> >  		dpll_mgr = &pch_pll_mgr;
> > 
> >  	if (!dpll_mgr)
> > -		return;
> > +		goto out_verify;
> > 
> >  	dpll_info = dpll_mgr->dpll_info;
> > 
> > @@ -4632,6 +4632,13 @@ void intel_dpll_init(struct intel_display *display)
> > 
> >  	display->dpll.mgr = dpll_mgr;
> >  	display->dpll.num_dpll = i;
> > +
> > +out_verify:
> > +	/*
> > +	 * TODO: Convert these to a KUnit test or dependent on a kconfig
> > +	 * debug option.
> > +	 */
> > +	intel_cx0pll_verify_plls(display);
> 
> According to me having this done during every boot does not make
> sense, maybe as a test it may but here having the driver Spend time
> doing these calculations for every table for all the rates seems like
> a waste.

The overhead of the calculation is insignificant. There is also a TODO:
comment above to move it to KUnit/debug test which would remove even
that insignificant overhead.

> Specially when you take into account that all these tables
> are static which means you have the values and the algorithm
> beforehand And before adding the static tables you can get this the
> algorithm tested against the table and fix it accordingly.  Also it
> should be the responsibility of anyone who adds any other static table
> to see if the clock matches.

The purpose is to make sure that no PLL table entries are changed,
breaking them, after they were initially added, even if the initally
added entry was verified manually, separately.

Additionally the function calculating the PLL clock value from the
PLL dividers and the inverse function calculating the PLL divider values
from the clock must be also checked and kept correct against any
potential future change that would break these functions.

> Regards,
> Suraj Kandpal
> 
> >  }
> > 
> >  /**
> > --
> > 2.34.1
> 

  reply	other threads:[~2026-01-08 14:30 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-17 15:19 [PATCH v2 00/15] drm/i915/pll: Verify pll dividers and remove redundant .clock member Mika Kahola
2025-12-17 15:19 ` [PATCH v2 01/15] drm/i915/c10: Move C10 port clock calculation Mika Kahola
2026-01-06  5:08   ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 02/15] drm/i915/c20: Move C20 " Mika Kahola
2026-01-06  5:10   ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 03/15] drm/i915/cx0: Drop Cx0 crtc_state from HDMI TMDS pll divider calculation Mika Kahola
2026-01-06  5:13   ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 04/15] drm/i915/lt_phy: Drop LT PHY crtc_state for port calculation Mika Kahola
2026-01-06  5:49   ` Kandpal, Suraj
2026-01-08 14:15     ` Imre Deak
2026-01-14  5:25       ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 05/15] drm/i915/cx0: Drop encoder from port clock calculation Mika Kahola
2026-01-06  6:02   ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 06/15] drm/i915/cx0: Create macro around pll tables Mika Kahola
2026-01-06  5:54   ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 07/15] drm/i915/lt_phy: Create macro for lt phy pll state Mika Kahola
2026-01-06  5:56   ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 08/15] drm/i915/display: Add helper function for fuzzy clock check Mika Kahola
2026-01-08  3:53   ` Kandpal, Suraj
2026-01-14 13:01     ` Kahola, Mika
2025-12-17 15:19 ` [PATCH v2 09/15] drm/i915/cx0: Fix HDMI FRL clock rates Mika Kahola
2026-01-06  6:04   ` Kandpal, Suraj
2026-01-08 14:19     ` Imre Deak
2026-01-09  4:09       ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 10/15] drm/i915/cx0: Add a fuzzy check for DP/HDMI clock rates during programming Mika Kahola
2026-01-14  5:32   ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 11/15] drm/i915/cx0: Verify C10/C20 pll dividers Mika Kahola
2026-01-06  5:04   ` Kandpal, Suraj
2026-01-08 14:30     ` Imre Deak [this message]
2026-01-14  5:24       ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 12/15] drm/i915/lt_phy: Add verification for lt phy " Mika Kahola
2026-01-06  5:07   ` Kandpal, Suraj
2026-01-08 14:35     ` Imre Deak
2026-01-09  4:12       ` Kandpal, Suraj
2026-01-09  9:39         ` Kahola, Mika
2026-01-13 14:36         ` Imre Deak
2026-01-13 14:57           ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 13/15] drm/i915/cx0: Drop C20 25.175 MHz rate Mika Kahola
2026-01-06  6:15   ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 14/15] drm/i915/lt_phy: Drop 27.2 " Mika Kahola
2026-01-06  6:16   ` Kandpal, Suraj
2025-12-17 15:19 ` [PATCH v2 15/15] drm/i915/display: Remove .clock member from eDP/DP/HDMI pll tables Mika Kahola
2026-01-06  5:51   ` Kandpal, Suraj
2026-01-06  6:01     ` Kandpal, Suraj
2025-12-17 17:34 ` ✗ CI.checkpatch: warning for drm/i915/pll: Verify pll dividers and remove redundant .clock member (rev2) Patchwork
2025-12-17 17:36 ` ✓ CI.KUnit: success " Patchwork
2025-12-17 18:16 ` ✓ Xe.CI.BAT: " Patchwork
2025-12-18 16:39 ` ✗ Xe.CI.Full: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aV-_iwPmDy7Xk74s@ideak-desk \
    --to=imre.deak@intel.com \
    --cc=ankit.k.nautiyal@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=mika.kahola@intel.com \
    --cc=suraj.kandpal@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox