Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Gustavo Sousa <gustavo.sousa@intel.com>
To: Matt Roper <matthew.d.roper@intel.com>
Cc: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
	"Ankit Nautiyal" <ankit.k.nautiyal@intel.com>,
	"Dnyaneshwar Bhadane" <dnyaneshwar.bhadane@intel.com>,
	"Jouni Högander" <jouni.hogander@intel.com>,
	"Juha-pekka Heikkila" <juha-pekka.heikkila@intel.com>,
	"Luca Coelho" <luciano.coelho@intel.com>,
	"Lucas De Marchi" <lucas.demarchi@intel.com>,
	"Matt Atwood" <matthew.s.atwood@intel.com>,
	"Ravi Kumar Vodapalli" <ravi.kumar.vodapalli@intel.com>,
	"Shekhar Chauhan" <shekhar.chauhan@intel.com>,
	"Vinod Govindapillai" <vinod.govindapillai@intel.com>
Subject: Re: [PATCH 06/32] drm/i915/xe3p_lpd: Update bandwidth parameters
Date: Wed, 15 Oct 2025 16:51:00 -0300	[thread overview]
Message-ID: <176055786016.3168.7709157523441847015@intel.com> (raw)
In-Reply-To: <20251015191241.GQ1207432@mdroper-desk1.amr.corp.intel.com>

Quoting Matt Roper (2025-10-15 16:12:41-03:00)
>On Wed, Oct 15, 2025 at 03:12:34PM -0300, Gustavo Sousa wrote:
>> Quoting Matt Roper (2025-10-15 14:48:30-03:00)
>> >On Wed, Oct 15, 2025 at 12:15:06AM -0300, Gustavo Sousa wrote:
>> >> From: Matt Atwood <matthew.s.atwood@intel.com>
>> >> 
>> >> Bandwidth parameters for Xe3p_LPD are basically the same as for Xe3_LPD.
>> >> However, now Xe3p_LPD has the ecc_impacting_de field, which could impact
>> >> how the derating is defined.
>> >> 
>> >> For the cases where that field is true, we use xe3p_lpd_ecc_sa_info,
>> >> similarly to what was done for Xe2_HPD.  Note, however, that Bspec
>> >> specifies the ECC derating value only for GDDR memory.  For now, we just
>> >> re-use the value that was defined for Xe2_HPD, namely 45.  We need to
>> >> confirm with the hardware team what would be the correct value(s) to use
>> >> for the ECC case.
>> >
>> >I think we need to use .derating = 10.  This specific block of the bspec
>> >is a shared block that applies to lots of IPs/platforms.  GDDR isn't
>> >relevant to an LPD platform and .derating = 10 is the documented value
>> >for all other types of memory.
>> 
>> In that case, do mean we should drop the patch adding the field
>> ecc_impacting_de and unconditionally use xe3lpd_sa_info?
>
>They're somewhat orthogonal.  The hardware (or rather firmware I guess?)
>now has a way to tell software that there's ECC present that would
>impact bandwidth, and in general that notification could be used with
>any kind of RAM.  Some platforms will never have a situation where ECC
>matters to bandwidth (so this new flag will never be set), some igpu
>platforms will have cases where system memory ECC impacts bandwidth, and
>some dgpu platforms will have cases where vram ECC impacts bandwidth.
>We don't have any relevant rules at the moment, but real details may get
>added to the spec later as we get closer to supporting the specific
>platform(s) that these IP versions will be incorporated into.  But
>adding the general ability to read out the new flag and have it ready
>for when platform-specific details start arriving in the future seems
>fine to me.  We could add a warning print if the flag is actually
>getting set on some platform before we have any rules documenting what
>we're supposed to do about it.

Yep.  Adding a warning sounds good to me.  I think that would be better
as part of the previous patch.

>
>In general, I'm wondering if the memory bandwidth numbers are something
>that we should consider moving back to platform-based checks.  The
>hardware teams tie these kinds of changes to tickets associated with
>specific IPs, but that's mostly just because of how the databases for
>hardware changes are organized these days.  The reality is that the
>details for memory characteristics are something that's more defined by
>the underlying platform rather than the IP (and that's especially true
>for igpu platforms where where we're talking about system memory that's
>used by the CPU and all the other devices on the platform as well).

Hm... Probably.  As an example that illustrates your point, we have PTL
and WCL, which contain the same display architecture, but one different
instance of struct intel_sa_info for each.

--
Gustavo Sousa

>
>
>Matt
>
>> 
>> In the meantime I'll try to get clarifications from HW team on this.
>> 
>> --
>> Gustavo Sousa
>> 
>> >
>> >
>> >Matt
>> >
>> >> 
>> >> Bspec: 68859, 69131
>> >> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
>> >> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
>> >> ---
>> >>  drivers/gpu/drm/i915/display/intel_bw.c | 21 ++++++++++++++++++++-
>> >>  1 file changed, 20 insertions(+), 1 deletion(-)
>> >> 
>> >> diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
>> >> index 8f5b86cd91b6..f0940ff9d19b 100644
>> >> --- a/drivers/gpu/drm/i915/display/intel_bw.c
>> >> +++ b/drivers/gpu/drm/i915/display/intel_bw.c
>> >> @@ -461,6 +461,20 @@ static const struct intel_sa_info xe3lpd_3002_sa_info = {
>> >>          .derating = 10,
>> >>  };
>> >>  
>> >> +static const struct intel_sa_info xe3p_lpd_ecc_sa_info = {
>> >> +        .deburst = 32,
>> >> +        .deprogbwlimit = 65, /* GB/s */
>> >> +        .displayrtids = 256,
>> >> +        /*
>> >> +         * FIXME: The Bspec only shows that derating for ECC should be 45 for
>> >> +         * GDDR memory and does not mention other types of memory.  For now, we
>> >> +         * just re-use that value, but we need to confirm whether that is
>> >> +         * correct or if there are different values depending on the memory
>> >> +         * type.
>> >> +         */
>> >> +        .derating = 45,
>> >> +};
>> >> +
>> >>  static int icl_get_bw_info(struct intel_display *display,
>> >>                             const struct dram_info *dram_info,
>> >>                             const struct intel_sa_info *sa)
>> >> @@ -812,7 +826,12 @@ void intel_bw_init_hw(struct intel_display *display)
>> >>          if (!HAS_DISPLAY(display))
>> >>                  return;
>> >>  
>> >> -        if (DISPLAY_VERx100(display) >= 3002) {
>> >> +        if (DISPLAY_VER(display) >= 35) {
>> >> +                if (dram_info->ecc_impacting_de)
>> >> +                        tgl_get_bw_info(display, dram_info, &xe3p_lpd_ecc_sa_info);
>> >> +                else
>> >> +                        tgl_get_bw_info(display, dram_info, &xe3lpd_sa_info);
>> >> +        } else if (DISPLAY_VERx100(display) >= 3002) {
>> >>                  tgl_get_bw_info(display, dram_info, &xe3lpd_3002_sa_info);
>> >>          } else if (DISPLAY_VER(display) >= 30) {
>> >>                  tgl_get_bw_info(display, dram_info, &xe3lpd_sa_info);
>> >> 
>> >> -- 
>> >> 2.51.0
>> >> 
>> >
>> >-- 
>> >Matt Roper
>> >Graphics Software Engineer
>> >Linux GPU Platform Enablement
>> >Intel Corporation
>
>-- 
>Matt Roper
>Graphics Software Engineer
>Linux GPU Platform Enablement
>Intel Corporation

  reply	other threads:[~2025-10-15 19:51 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-15  3:15 [PATCH 00/32] drm/i915/display: Add initial support for Xe3p_LPD Gustavo Sousa
2025-10-15  3:15 ` [PATCH 01/32] drm/xe/nvl: Define NVL-S platform Gustavo Sousa
2025-10-15  8:07   ` Shekhar Chauhan
2025-10-15  8:09     ` Shekhar Chauhan
2025-10-15 17:43       ` Lucas De Marchi
2025-10-15  3:15 ` [PATCH 02/32] drm/i915/xe3p_lpd: Add Xe3p_LPD display IP features Gustavo Sousa
2025-10-15  8:11   ` Shekhar Chauhan
2025-10-15  3:15 ` [PATCH 03/32] drm/i915/xe3p_lpd: Drop north display reset option programming Gustavo Sousa
2025-10-15 15:56   ` Matt Atwood
2025-10-15  3:15 ` [PATCH 04/32] drm/i915/display: Use braces for if-ladder in intel_bw_init_hw() Gustavo Sousa
2025-10-15 17:40   ` Matt Roper
2025-10-15  3:15 ` [PATCH 05/32] drm/i915/dram: Add field ecc_impacting_de Gustavo Sousa
2025-10-15 14:46   ` Jani Nikula
2025-10-15 15:54     ` Matt Atwood
2025-10-15 16:13     ` Gustavo Sousa
2025-10-15 16:20       ` Matt Atwood
2025-10-15  3:15 ` [PATCH 06/32] drm/i915/xe3p_lpd: Update bandwidth parameters Gustavo Sousa
2025-10-15 17:48   ` Matt Roper
2025-10-15 18:12     ` Gustavo Sousa
2025-10-15 19:12       ` Matt Roper
2025-10-15 19:51         ` Gustavo Sousa [this message]
2025-10-15  3:15 ` [PATCH 07/32] drm/i915/xe3p_lpd: Expand bifield masks dbuf blocks fields Gustavo Sousa
2025-10-15 17:55   ` Matt Roper
2025-10-15  3:15 ` [PATCH 08/32] drm/i915/xe3p_lpd: Support UINT16 formats Gustavo Sousa
2025-10-15 20:23   ` Matt Atwood
2025-10-15 20:55     ` Matt Atwood
2025-10-15  3:15 ` [PATCH 09/32] drm/i915/xe3p_lpd: Extend FBC support to " Gustavo Sousa
2025-10-15  3:15 ` [PATCH 10/32] drm/i915/xe3p_lpd: Horizontal flip support for linear surfaces Gustavo Sousa
2025-10-15 17:58   ` Matt Roper
2025-10-15  3:15 ` [PATCH 11/32] drm/i915/xe3p_lpd: Wait for AUX channel power status Gustavo Sousa
2025-10-15  3:15 ` [PATCH 12/32] drm/i915/xe3p_lpd: Underrun debuggability and error codes/hints Gustavo Sousa
2025-10-15 14:56   ` Jani Nikula
2025-10-15 15:01   ` Ville Syrjälä
2025-10-15  3:15 ` [PATCH 13/32] drm/i915/xe3p_lpd: Remove gamma,csc bottom color checks Gustavo Sousa
2025-10-17  6:02   ` Borah, Chaitanya Kumar
2025-10-15  3:15 ` [PATCH 14/32] drm/i915/xe3p_lpd: Adapt to updates on MBUS_CTL/DBUF_CTL registers Gustavo Sousa
2025-10-15 14:58   ` Jani Nikula
2025-10-16 20:33     ` Gustavo Sousa
2025-10-15  3:15 ` [PATCH 15/32] drm/i915/xe3p_lpd: Always apply level-0 watermark adjustment Gustavo Sousa
2025-10-16 20:53   ` Matt Atwood
2025-10-16 21:03   ` Ville Syrjälä
2025-10-17 18:38     ` Gustavo Sousa
2025-10-15  3:15 ` [PATCH 16/32] drm/i915/xe3p_lpd: Add CDCLK table Gustavo Sousa
2025-10-15 17:39   ` Matt Roper
2025-10-15 17:43   ` Matt Atwood
2025-10-15  3:15 ` [PATCH 17/32] drm/i915/xe3p_lpd: Load DMC firmware Gustavo Sousa
2025-10-15 16:22   ` Matt Atwood
2025-10-15  3:15 ` [PATCH 18/32] drm/i915/xe3p_lpd: Drop support for interlace mode Gustavo Sousa
2025-10-15  4:21   ` Kandpal, Suraj
2025-10-15  3:15 ` [PATCH 19/32] drm/i915/xe3p_lpd: PSR SU minimum lines is 4 Gustavo Sousa
2025-10-15 15:00   ` Jani Nikula
2025-10-15 16:18     ` Gustavo Sousa
2025-10-15  3:15 ` [PATCH 20/32] drm/i915/xe3p_lpd: Enable system caching for FBC Gustavo Sousa
2025-10-15  3:15 ` [PATCH 21/32] drm/i915/xe3p_lpd: Extend Wa_16025573575 Gustavo Sousa
2025-10-15  8:13   ` Shekhar Chauhan
2025-10-15  3:15 ` [PATCH 22/32] drm/i915/xe3p_lpd: Don't allow odd ypan or ysize with semiplanar format Gustavo Sousa
2025-10-16 20:50   ` Matt Atwood
2025-10-15  3:15 ` [PATCH 23/32] drm/i915/xe3p_lpd: Reload DMC MMIO for pipes C and D Gustavo Sousa
2025-10-15 17:47   ` Matt Atwood
2025-10-15  3:15 ` [PATCH 24/32] drm/i915/xe3p_lpd: Introduce pixel normalizer config support Gustavo Sousa
2025-10-15 15:11   ` Jani Nikula
2025-10-20  9:35     ` Govindapillai, Vinod
2025-10-15  3:15 ` [PATCH 25/32] drm/i915/xe3p_lpd: Add FBC support for FP16 formats Gustavo Sousa
2025-10-15 15:13   ` Jani Nikula
2025-10-15  3:15 ` [PATCH 26/32] drm/i915/xe3p_lpd: Enable pixel normalizer for fp16 formats for FBC Gustavo Sousa
2025-10-15 15:15   ` Jani Nikula
2025-10-15  3:15 ` [PATCH 27/32] drm/i915/vbt: Add fields dedicated_external and dyn_port_over_tc Gustavo Sousa
2025-10-15 15:24   ` Jani Nikula
2025-10-17 19:52     ` Gustavo Sousa
2025-10-20  7:45       ` Jani Nikula
2025-10-20 12:43         ` Gustavo Sousa
2025-10-15 15:29   ` Jani Nikula
2025-10-17 20:20     ` Gustavo Sousa
2025-10-21  8:32       ` Jani Nikula
2025-10-15  3:15 ` [PATCH 28/32] drm/i915/power: Use intel_encoder_is_tc() Gustavo Sousa
2025-10-15  4:20   ` Kandpal, Suraj
2025-10-15  3:15 ` [PATCH 29/32] drm/i915/display: Handle dedicated external ports in intel_encoder_is_tc() Gustavo Sousa
2025-10-15 15:33   ` Jani Nikula
2025-10-15 16:25     ` Gustavo Sousa
2025-10-21  8:36       ` Jani Nikula
2025-10-15  3:15 ` [PATCH 30/32] drm/i915/wm: don't use method1 in Xe3p_LPD onwards Gustavo Sousa
2025-10-15  8:02   ` Shekhar Chauhan
2025-10-21 20:19     ` Gustavo Sousa
2025-10-15  3:15 ` [PATCH 31/32] drm/i915/xe3p_lpd: Extend Type-C flow for static DDI allocation Gustavo Sousa
2025-10-15  3:15 ` [PATCH 32/32] drm/i915/nvls: Add NVL-S display support Gustavo Sousa
2025-10-15  4:30 ` ✓ i915.CI.BAT: success for drm/i915/display: Add initial support for Xe3p_LPD Patchwork
2025-10-15 11:00 ` ✓ i915.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=176055786016.3168.7709157523441847015@intel.com \
    --to=gustavo.sousa@intel.com \
    --cc=ankit.k.nautiyal@intel.com \
    --cc=dnyaneshwar.bhadane@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jouni.hogander@intel.com \
    --cc=juha-pekka.heikkila@intel.com \
    --cc=lucas.demarchi@intel.com \
    --cc=luciano.coelho@intel.com \
    --cc=matthew.d.roper@intel.com \
    --cc=matthew.s.atwood@intel.com \
    --cc=ravi.kumar.vodapalli@intel.com \
    --cc=shekhar.chauhan@intel.com \
    --cc=vinod.govindapillai@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