From: Imre Deak <imre.deak@intel.com>
To: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: <intel-gfx@lists.freedesktop.org>,
<intel-xe@lists.freedesktop.org>,
Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Subject: Re: [PATCH 14/14] drm/i915/display: Add upper limit check for pixel clock
Date: Fri, 23 Jan 2026 21:48:11 +0200 [thread overview]
Message-ID: <aXPQe2SaD-mDvksb@ideak-desk> (raw)
In-Reply-To: <20260121035330.2793386-15-ankit.k.nautiyal@intel.com>
On Wed, Jan 21, 2026 at 09:23:30AM +0530, Ankit Nautiyal wrote:
> From: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
>
> Add upper limit check for pixel clock by platform. Limits don't apply
> when DSC is enabled.
>
> For the currently supported versions of HDMI, pixel clock is already
> limited to 600Mhz so nothing needs to be done there as of now.
>
> BSpec: 49199, 68912
>
> v2: Add this limit to the new helper
> intel_dp_pixel_rate_fits_dotclk(). (Ankit)
>
> Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 12 ++++++++++++
> drivers/gpu/drm/i915/display/intel_display.h | 1 +
> drivers/gpu/drm/i915/display/intel_dp.c | 3 +++
> 3 files changed, 16 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 7491e00e3858..04021ad6b473 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -8001,6 +8001,18 @@ void intel_setup_outputs(struct intel_display *display)
> drm_helper_move_panel_connectors_to_head(display->drm);
> }
>
> +int intel_dotclock_limit(struct intel_display *display)
The name should reflect that it's the (stricter) non-DSC dotclock limit,
so maybe intel_max_uncompressed_dotclock()?
> +{
I guess display->cdclk.max_dotclk_freq could be used as a base, reducing
it if needed.
> + if (DISPLAY_VERx100(display) == 3002)
> + return 937500;
While the above WCL limit is indeed in bspec, I couldn't find the HSD
for it. Windows doesn't use this limit either. So could it be a
follow-up to add the limit for this platform, to reduce the number of
affacted platforms until it's clarified why Windows doesn't use it?
> + else if (DISPLAY_VER(display) >= 30)
> + return 1350000;
This one for PTL matches bspec, there is an HSD for it and it is also
used by Windows.
> + else if (DISPLAY_VER(display) >= 13)
> + return 1200000;
> + else
> + return 1100000;
The above ICL-MTL limits are not used by Windows either and I couldn't
find the corresponding HSDs. So could adding these two be done
separately as a follow-up (even though they are listed by bspec)?
> +}
> +
> static int max_dotclock(struct intel_display *display)
> {
> int max_dotclock = display->cdclk.max_dotclk_freq;
> diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> index f8e6e4e82722..0009c305f140 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.h
> +++ b/drivers/gpu/drm/i915/display/intel_display.h
> @@ -488,6 +488,7 @@ void intel_cpu_transcoder_get_m2_n2(struct intel_crtc *crtc,
> struct intel_link_m_n *m_n);
> int intel_dotclock_calculate(int link_freq, const struct intel_link_m_n *m_n);
> int intel_crtc_dotclock(const struct intel_crtc_state *pipe_config);
> +int intel_dotclock_limit(struct intel_display *display);
> enum intel_display_power_domain intel_port_to_power_domain(struct intel_digital_port *dig_port);
> enum intel_display_power_domain
> intel_aux_power_domain(struct intel_digital_port *dig_port);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index a6a1a803d860..bd8ba6db01db 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -1456,6 +1456,9 @@ bool intel_dp_pixel_rate_fits_dotclk(struct intel_display *display,
> target_clock,
> htotal,
> dsc_slice_count);
> + else
> + effective_dotclk_limit =
> + min(max_dotclk, intel_dotclock_limit(display)) * num_joined_pipes;
>
> return target_clock <= effective_dotclk_limit;
> }
> --
> 2.45.2
>
next prev parent reply other threads:[~2026-01-23 19:48 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-21 3:53 [PATCH 00/14] Account for DSC bubble overhead for horizontal slices Ankit Nautiyal
2026-01-21 3:53 ` [PATCH 01/14] drm/i915/dp: Early reject bad hdisplay in intel_dp_mode_valid Ankit Nautiyal
2026-01-23 18:06 ` Imre Deak
2026-01-21 3:53 ` [PATCH 02/14] drm/i915/dp: Move num_joined_pipes and related checks together Ankit Nautiyal
2026-01-23 18:25 ` Imre Deak
2026-01-21 3:53 ` [PATCH 03/14] drm/i915/dp: Extract helper to get the hdisplay limit Ankit Nautiyal
2026-01-23 18:28 ` Imre Deak
2026-01-21 3:53 ` [PATCH 04/14] drm/i915/dp: Rework pipe joiner logic in mode_valid Ankit Nautiyal
2026-01-21 10:54 ` Jani Nikula
2026-01-21 11:19 ` Nautiyal, Ankit K
2026-01-23 18:44 ` Imre Deak
2026-01-21 3:53 ` [PATCH 05/14] drm/i915/dp: Rework pipe joiner logic in compute_config Ankit Nautiyal
2026-01-23 19:06 ` Imre Deak
2026-01-21 3:53 ` [PATCH 06/14] drm/i915/dp_mst: Move the check for dotclock at the end Ankit Nautiyal
2026-01-23 19:11 ` Imre Deak
2026-01-21 3:53 ` [PATCH 07/14] drm/i915/dp_mst: Move the joiner dependent code together Ankit Nautiyal
2026-01-23 19:16 ` Imre Deak
2026-01-21 3:53 ` [PATCH 08/14] drm/i915/dp_mst: Rework pipe joiner logic in mode_valid Ankit Nautiyal
2026-01-21 3:53 ` [PATCH 09/14] drm/i915/dp_mst: Extract helper to compute link for given joiner config Ankit Nautiyal
2026-01-23 19:23 ` Imre Deak
2026-01-21 3:53 ` [PATCH 10/14] drm/i915/dp_mst: Rework pipe joiner logic in compute_config Ankit Nautiyal
2026-01-21 3:53 ` [PATCH 11/14] drm/i915/dp: Introduce helper to check pixel rate against dotclock limits Ankit Nautiyal
2026-01-23 19:30 ` Imre Deak
2026-01-21 3:53 ` [PATCH 12/14] drm/i915/dp: Refactor dsc_slice_count handling in intel_dp_mode_valid() Ankit Nautiyal
2026-01-21 3:53 ` [PATCH 13/14] drm/i915/dp: Account for DSC slice overhead Ankit Nautiyal
2026-01-21 3:53 ` [PATCH 14/14] drm/i915/display: Add upper limit check for pixel clock Ankit Nautiyal
2026-01-23 19:48 ` Imre Deak [this message]
2026-01-21 4:16 ` ✓ CI.KUnit: success for Account for DSC bubble overhead for horizontal slices (rev3) Patchwork
2026-01-21 4:52 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-01-21 5:59 ` ✗ i915.CI.BAT: " Patchwork
2026-01-21 6:36 ` ✗ Xe.CI.Full: " 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=aXPQe2SaD-mDvksb@ideak-desk \
--to=imre.deak@intel.com \
--cc=ankit.k.nautiyal@intel.com \
--cc=chaitanya.kumar.borah@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.