* [PATCH 0/5] drm/i915 and drm/xe: remove fsb/mem freq cleanups @ 2025-07-31 14:21 Jani Nikula 2025-07-31 14:21 ` [PATCH 1/5] drm/i915/dram: add intel_fsb_freq() and use it Jani Nikula ` (5 more replies) 0 siblings, 6 replies; 16+ messages in thread From: Jani Nikula @ 2025-07-31 14:21 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula Main goal here is to remove the fsb_freq, mem_freq, and is_ddr3 members from drm_i915_private and xe_device. Jani Nikula (5): drm/i915/dram: add intel_fsb_freq() and use it drm/i915/dram: add intel_mem_freq() drm/i915/rps: use intel_fsb_freq() and intel_mem_freq() drm/i915/dram: bypass fsb/mem freq detection on dg2 and no display drm/i915/dram: move fsb_freq and mem_freq to dram info drivers/gpu/drm/i915/display/i9xx_wm.c | 13 +++-- drivers/gpu/drm/i915/display/intel_cdclk.c | 2 +- .../gpu/drm/i915/gt/intel_gt_clock_utils.c | 2 +- drivers/gpu/drm/i915/gt/intel_rps.c | 11 ++-- drivers/gpu/drm/i915/i915_drv.h | 2 - drivers/gpu/drm/i915/soc/intel_dram.c | 54 +++++++++++-------- drivers/gpu/drm/i915/soc/intel_dram.h | 5 +- drivers/gpu/drm/xe/xe_device_types.h | 1 - 8 files changed, 54 insertions(+), 36 deletions(-) -- 2.39.5 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/5] drm/i915/dram: add intel_fsb_freq() and use it 2025-07-31 14:21 [PATCH 0/5] drm/i915 and drm/xe: remove fsb/mem freq cleanups Jani Nikula @ 2025-07-31 14:21 ` Jani Nikula 2025-08-05 22:17 ` Rodrigo Vivi 2025-07-31 14:21 ` [PATCH 2/5] drm/i915/dram: add intel_mem_freq() Jani Nikula ` (4 subsequent siblings) 5 siblings, 1 reply; 16+ messages in thread From: Jani Nikula @ 2025-07-31 14:21 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula Add a more generic intel_fsb_freq() function instead of platform specific ones. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/display/intel_cdclk.c | 2 +- drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c | 2 +- drivers/gpu/drm/i915/soc/intel_dram.c | 14 ++++++++++---- drivers/gpu/drm/i915/soc/intel_dram.h | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c index 228aa64c1349..50f8e8e7b2a2 100644 --- a/drivers/gpu/drm/i915/display/intel_cdclk.c +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c @@ -3569,7 +3569,7 @@ static int i9xx_hrawclk(struct intel_display *display) struct drm_i915_private *i915 = to_i915(display->drm); /* hrawclock is 1/4 the FSB frequency */ - return DIV_ROUND_CLOSEST(i9xx_fsb_freq(i915), 4); + return DIV_ROUND_CLOSEST(intel_fsb_freq(i915), 4); } /** diff --git a/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c b/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c index 6c499692d61e..88b147fa5cb1 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c +++ b/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c @@ -148,7 +148,7 @@ static u32 gen4_read_clock_frequency(struct intel_uncore *uncore) * * Testing on actual hardware has shown there is no /16. */ - return DIV_ROUND_CLOSEST(i9xx_fsb_freq(uncore->i915), 4) * 1000; + return DIV_ROUND_CLOSEST(intel_fsb_freq(uncore->i915), 4) * 1000; } static u32 read_clock_frequency(struct intel_uncore *uncore) diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c index deb159548a09..6be3618d4885 100644 --- a/drivers/gpu/drm/i915/soc/intel_dram.c +++ b/drivers/gpu/drm/i915/soc/intel_dram.c @@ -153,7 +153,7 @@ static void detect_mem_freq(struct drm_i915_private *i915) drm_dbg(&i915->drm, "DDR speed: %d kHz\n", i915->mem_freq); } -unsigned int i9xx_fsb_freq(struct drm_i915_private *i915) +static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915) { u32 fsb; @@ -235,13 +235,19 @@ static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv) } } -static void detect_fsb_freq(struct drm_i915_private *i915) +unsigned int intel_fsb_freq(struct drm_i915_private *i915) { if (GRAPHICS_VER(i915) == 5) - i915->fsb_freq = ilk_fsb_freq(i915); + return ilk_fsb_freq(i915); else if (GRAPHICS_VER(i915) == 3 || GRAPHICS_VER(i915) == 4) - i915->fsb_freq = i9xx_fsb_freq(i915); + return i9xx_fsb_freq(i915); + else + return 0; +} +static void detect_fsb_freq(struct drm_i915_private *i915) +{ + i915->fsb_freq = intel_fsb_freq(i915); if (i915->fsb_freq) drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", i915->fsb_freq); } diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/soc/intel_dram.h index 2a696e03aad4..09a7a581d949 100644 --- a/drivers/gpu/drm/i915/soc/intel_dram.h +++ b/drivers/gpu/drm/i915/soc/intel_dram.h @@ -33,7 +33,7 @@ struct dram_info { void intel_dram_edram_detect(struct drm_i915_private *i915); int intel_dram_detect(struct drm_i915_private *i915); -unsigned int i9xx_fsb_freq(struct drm_i915_private *i915); +unsigned int intel_fsb_freq(struct drm_i915_private *i915); const struct dram_info *intel_dram_info(struct drm_device *drm); #endif /* __INTEL_DRAM_H__ */ -- 2.39.5 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 1/5] drm/i915/dram: add intel_fsb_freq() and use it 2025-07-31 14:21 ` [PATCH 1/5] drm/i915/dram: add intel_fsb_freq() and use it Jani Nikula @ 2025-08-05 22:17 ` Rodrigo Vivi 0 siblings, 0 replies; 16+ messages in thread From: Rodrigo Vivi @ 2025-08-05 22:17 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Thu, Jul 31, 2025 at 05:21:21PM +0300, Jani Nikula wrote: > Add a more generic intel_fsb_freq() function instead of platform > specific ones. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cdclk.c | 2 +- > drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c | 2 +- > drivers/gpu/drm/i915/soc/intel_dram.c | 14 ++++++++++---- > drivers/gpu/drm/i915/soc/intel_dram.h | 2 +- > 4 files changed, 13 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c > index 228aa64c1349..50f8e8e7b2a2 100644 > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c > @@ -3569,7 +3569,7 @@ static int i9xx_hrawclk(struct intel_display *display) > struct drm_i915_private *i915 = to_i915(display->drm); > > /* hrawclock is 1/4 the FSB frequency */ > - return DIV_ROUND_CLOSEST(i9xx_fsb_freq(i915), 4); > + return DIV_ROUND_CLOSEST(intel_fsb_freq(i915), 4); > } > > /** > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c b/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c > index 6c499692d61e..88b147fa5cb1 100644 > --- a/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c > +++ b/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c > @@ -148,7 +148,7 @@ static u32 gen4_read_clock_frequency(struct intel_uncore *uncore) > * > * Testing on actual hardware has shown there is no /16. > */ > - return DIV_ROUND_CLOSEST(i9xx_fsb_freq(uncore->i915), 4) * 1000; > + return DIV_ROUND_CLOSEST(intel_fsb_freq(uncore->i915), 4) * 1000; > } > > static u32 read_clock_frequency(struct intel_uncore *uncore) > diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c > index deb159548a09..6be3618d4885 100644 > --- a/drivers/gpu/drm/i915/soc/intel_dram.c > +++ b/drivers/gpu/drm/i915/soc/intel_dram.c > @@ -153,7 +153,7 @@ static void detect_mem_freq(struct drm_i915_private *i915) > drm_dbg(&i915->drm, "DDR speed: %d kHz\n", i915->mem_freq); > } > > -unsigned int i9xx_fsb_freq(struct drm_i915_private *i915) > +static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915) > { > u32 fsb; > > @@ -235,13 +235,19 @@ static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv) > } > } > > -static void detect_fsb_freq(struct drm_i915_private *i915) > +unsigned int intel_fsb_freq(struct drm_i915_private *i915) > { > if (GRAPHICS_VER(i915) == 5) > - i915->fsb_freq = ilk_fsb_freq(i915); > + return ilk_fsb_freq(i915); > else if (GRAPHICS_VER(i915) == 3 || GRAPHICS_VER(i915) == 4) > - i915->fsb_freq = i9xx_fsb_freq(i915); > + return i9xx_fsb_freq(i915); > + else > + return 0; > +} > > +static void detect_fsb_freq(struct drm_i915_private *i915) > +{ > + i915->fsb_freq = intel_fsb_freq(i915); > if (i915->fsb_freq) > drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", i915->fsb_freq); > } > diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/soc/intel_dram.h > index 2a696e03aad4..09a7a581d949 100644 > --- a/drivers/gpu/drm/i915/soc/intel_dram.h > +++ b/drivers/gpu/drm/i915/soc/intel_dram.h > @@ -33,7 +33,7 @@ struct dram_info { > > void intel_dram_edram_detect(struct drm_i915_private *i915); > int intel_dram_detect(struct drm_i915_private *i915); > -unsigned int i9xx_fsb_freq(struct drm_i915_private *i915); > +unsigned int intel_fsb_freq(struct drm_i915_private *i915); > const struct dram_info *intel_dram_info(struct drm_device *drm); > > #endif /* __INTEL_DRAM_H__ */ > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/5] drm/i915/dram: add intel_mem_freq() 2025-07-31 14:21 [PATCH 0/5] drm/i915 and drm/xe: remove fsb/mem freq cleanups Jani Nikula 2025-07-31 14:21 ` [PATCH 1/5] drm/i915/dram: add intel_fsb_freq() and use it Jani Nikula @ 2025-07-31 14:21 ` Jani Nikula 2025-08-05 22:18 ` Rodrigo Vivi 2025-07-31 14:21 ` [PATCH 3/5] drm/i915/rps: use intel_fsb_freq() and intel_mem_freq() Jani Nikula ` (3 subsequent siblings) 5 siblings, 1 reply; 16+ messages in thread From: Jani Nikula @ 2025-07-31 14:21 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula Add a more generic intel_mem_freq() function instead of platform specific ones. Expose it for future use outside of intel_dram.c. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/soc/intel_dram.c | 17 ++++++++++++----- drivers/gpu/drm/i915/soc/intel_dram.h | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c index 6be3618d4885..193e7f71a356 100644 --- a/drivers/gpu/drm/i915/soc/intel_dram.c +++ b/drivers/gpu/drm/i915/soc/intel_dram.c @@ -135,16 +135,23 @@ static unsigned int vlv_mem_freq(struct drm_i915_private *i915) return 0; } -static void detect_mem_freq(struct drm_i915_private *i915) +unsigned int intel_mem_freq(struct drm_i915_private *i915) { if (IS_PINEVIEW(i915)) - i915->mem_freq = pnv_mem_freq(i915); + return pnv_mem_freq(i915); else if (GRAPHICS_VER(i915) == 5) - i915->mem_freq = ilk_mem_freq(i915); + return ilk_mem_freq(i915); else if (IS_CHERRYVIEW(i915)) - i915->mem_freq = chv_mem_freq(i915); + return chv_mem_freq(i915); else if (IS_VALLEYVIEW(i915)) - i915->mem_freq = vlv_mem_freq(i915); + return vlv_mem_freq(i915); + else + return 0; +} + +static void detect_mem_freq(struct drm_i915_private *i915) +{ + i915->mem_freq = intel_mem_freq(i915); if (IS_PINEVIEW(i915)) i915->is_ddr3 = pnv_is_ddr3(i915); diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/soc/intel_dram.h index 09a7a581d949..5ba75e279e84 100644 --- a/drivers/gpu/drm/i915/soc/intel_dram.h +++ b/drivers/gpu/drm/i915/soc/intel_dram.h @@ -34,6 +34,7 @@ struct dram_info { void intel_dram_edram_detect(struct drm_i915_private *i915); int intel_dram_detect(struct drm_i915_private *i915); unsigned int intel_fsb_freq(struct drm_i915_private *i915); +unsigned int intel_mem_freq(struct drm_i915_private *i915); const struct dram_info *intel_dram_info(struct drm_device *drm); #endif /* __INTEL_DRAM_H__ */ -- 2.39.5 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 2/5] drm/i915/dram: add intel_mem_freq() 2025-07-31 14:21 ` [PATCH 2/5] drm/i915/dram: add intel_mem_freq() Jani Nikula @ 2025-08-05 22:18 ` Rodrigo Vivi 0 siblings, 0 replies; 16+ messages in thread From: Rodrigo Vivi @ 2025-08-05 22:18 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Thu, Jul 31, 2025 at 05:21:22PM +0300, Jani Nikula wrote: > Add a more generic intel_mem_freq() function instead of platform > specific ones. Expose it for future use outside of intel_dram.c. > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/soc/intel_dram.c | 17 ++++++++++++----- > drivers/gpu/drm/i915/soc/intel_dram.h | 1 + > 2 files changed, 13 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c > index 6be3618d4885..193e7f71a356 100644 > --- a/drivers/gpu/drm/i915/soc/intel_dram.c > +++ b/drivers/gpu/drm/i915/soc/intel_dram.c > @@ -135,16 +135,23 @@ static unsigned int vlv_mem_freq(struct drm_i915_private *i915) > return 0; > } > > -static void detect_mem_freq(struct drm_i915_private *i915) > +unsigned int intel_mem_freq(struct drm_i915_private *i915) > { > if (IS_PINEVIEW(i915)) > - i915->mem_freq = pnv_mem_freq(i915); > + return pnv_mem_freq(i915); > else if (GRAPHICS_VER(i915) == 5) > - i915->mem_freq = ilk_mem_freq(i915); > + return ilk_mem_freq(i915); > else if (IS_CHERRYVIEW(i915)) > - i915->mem_freq = chv_mem_freq(i915); > + return chv_mem_freq(i915); > else if (IS_VALLEYVIEW(i915)) > - i915->mem_freq = vlv_mem_freq(i915); > + return vlv_mem_freq(i915); > + else > + return 0; > +} > + > +static void detect_mem_freq(struct drm_i915_private *i915) > +{ > + i915->mem_freq = intel_mem_freq(i915); > > if (IS_PINEVIEW(i915)) > i915->is_ddr3 = pnv_is_ddr3(i915); > diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/soc/intel_dram.h > index 09a7a581d949..5ba75e279e84 100644 > --- a/drivers/gpu/drm/i915/soc/intel_dram.h > +++ b/drivers/gpu/drm/i915/soc/intel_dram.h > @@ -34,6 +34,7 @@ struct dram_info { > void intel_dram_edram_detect(struct drm_i915_private *i915); > int intel_dram_detect(struct drm_i915_private *i915); > unsigned int intel_fsb_freq(struct drm_i915_private *i915); > +unsigned int intel_mem_freq(struct drm_i915_private *i915); > const struct dram_info *intel_dram_info(struct drm_device *drm); > > #endif /* __INTEL_DRAM_H__ */ > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 3/5] drm/i915/rps: use intel_fsb_freq() and intel_mem_freq() 2025-07-31 14:21 [PATCH 0/5] drm/i915 and drm/xe: remove fsb/mem freq cleanups Jani Nikula 2025-07-31 14:21 ` [PATCH 1/5] drm/i915/dram: add intel_fsb_freq() and use it Jani Nikula 2025-07-31 14:21 ` [PATCH 2/5] drm/i915/dram: add intel_mem_freq() Jani Nikula @ 2025-07-31 14:21 ` Jani Nikula 2025-08-05 22:20 ` Rodrigo Vivi 2025-07-31 14:21 ` [PATCH 4/5] drm/i915/dram: bypass fsb/mem freq detection on dg2 and no display Jani Nikula ` (2 subsequent siblings) 5 siblings, 1 reply; 16+ messages in thread From: Jani Nikula @ 2025-07-31 14:21 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula The rps init only happens once, so it's not important to use the cached versions, and we can drop the dependency on them. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/gt/intel_rps.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c index 0b35fdd461d4..006042e0b229 100644 --- a/drivers/gpu/drm/i915/gt/intel_rps.c +++ b/drivers/gpu/drm/i915/gt/intel_rps.c @@ -9,6 +9,7 @@ #include "display/intel_display.h" #include "display/intel_display_rps.h" +#include "soc/intel_dram.h" #include "i915_drv.h" #include "i915_irq.h" #include "i915_reg.h" @@ -276,20 +277,24 @@ static void gen5_rps_init(struct intel_rps *rps) { struct drm_i915_private *i915 = rps_to_i915(rps); struct intel_uncore *uncore = rps_to_uncore(rps); + unsigned int fsb_freq, mem_freq; u8 fmax, fmin, fstart; u32 rgvmodectl; int c_m, i; - if (i915->fsb_freq <= 3200000) + fsb_freq = intel_fsb_freq(i915); + mem_freq = intel_mem_freq(i915); + + if (fsb_freq <= 3200000) c_m = 0; - else if (i915->fsb_freq <= 4800000) + else if (fsb_freq <= 4800000) c_m = 1; else c_m = 2; for (i = 0; i < ARRAY_SIZE(cparams); i++) { if (cparams[i].i == c_m && - cparams[i].t == DIV_ROUND_CLOSEST(i915->mem_freq, 1000)) { + cparams[i].t == DIV_ROUND_CLOSEST(mem_freq, 1000)) { rps->ips.m = cparams[i].m; rps->ips.c = cparams[i].c; break; -- 2.39.5 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 3/5] drm/i915/rps: use intel_fsb_freq() and intel_mem_freq() 2025-07-31 14:21 ` [PATCH 3/5] drm/i915/rps: use intel_fsb_freq() and intel_mem_freq() Jani Nikula @ 2025-08-05 22:20 ` Rodrigo Vivi 0 siblings, 0 replies; 16+ messages in thread From: Rodrigo Vivi @ 2025-08-05 22:20 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Thu, Jul 31, 2025 at 05:21:23PM +0300, Jani Nikula wrote: > The rps init only happens once, so it's not important to use the cached > versions, and we can drop the dependency on them. Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/gt/intel_rps.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c > index 0b35fdd461d4..006042e0b229 100644 > --- a/drivers/gpu/drm/i915/gt/intel_rps.c > +++ b/drivers/gpu/drm/i915/gt/intel_rps.c > @@ -9,6 +9,7 @@ > > #include "display/intel_display.h" > #include "display/intel_display_rps.h" > +#include "soc/intel_dram.h" > #include "i915_drv.h" > #include "i915_irq.h" > #include "i915_reg.h" > @@ -276,20 +277,24 @@ static void gen5_rps_init(struct intel_rps *rps) > { > struct drm_i915_private *i915 = rps_to_i915(rps); > struct intel_uncore *uncore = rps_to_uncore(rps); > + unsigned int fsb_freq, mem_freq; > u8 fmax, fmin, fstart; > u32 rgvmodectl; > int c_m, i; > > - if (i915->fsb_freq <= 3200000) > + fsb_freq = intel_fsb_freq(i915); > + mem_freq = intel_mem_freq(i915); > + > + if (fsb_freq <= 3200000) > c_m = 0; > - else if (i915->fsb_freq <= 4800000) > + else if (fsb_freq <= 4800000) > c_m = 1; > else > c_m = 2; > > for (i = 0; i < ARRAY_SIZE(cparams); i++) { > if (cparams[i].i == c_m && > - cparams[i].t == DIV_ROUND_CLOSEST(i915->mem_freq, 1000)) { > + cparams[i].t == DIV_ROUND_CLOSEST(mem_freq, 1000)) { > rps->ips.m = cparams[i].m; > rps->ips.c = cparams[i].c; > break; > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 4/5] drm/i915/dram: bypass fsb/mem freq detection on dg2 and no display 2025-07-31 14:21 [PATCH 0/5] drm/i915 and drm/xe: remove fsb/mem freq cleanups Jani Nikula ` (2 preceding siblings ...) 2025-07-31 14:21 ` [PATCH 3/5] drm/i915/rps: use intel_fsb_freq() and intel_mem_freq() Jani Nikula @ 2025-07-31 14:21 ` Jani Nikula 2025-08-05 22:24 ` Rodrigo Vivi 2025-07-31 14:21 ` [PATCH 5/5] drm/i915/dram: move fsb_freq and mem_freq to dram info Jani Nikula 2025-07-31 16:58 ` ✗ i915.CI.BAT: failure for drm/i915 and drm/xe: remove fsb/mem freq cleanups Patchwork 5 siblings, 1 reply; 16+ messages in thread From: Jani Nikula @ 2025-07-31 14:21 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula Non-display now calls the intel_fsb_freq() and intel_mem_freq() functions, so we don't have to have the frequencies initialized for dg2 or non-display cases. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/soc/intel_dram.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c index 193e7f71a356..d896fb67270f 100644 --- a/drivers/gpu/drm/i915/soc/intel_dram.c +++ b/drivers/gpu/drm/i915/soc/intel_dram.c @@ -725,10 +725,13 @@ int intel_dram_detect(struct drm_i915_private *i915) struct dram_info *dram_info; int ret; + if (IS_DG2(i915) || !HAS_DISPLAY(i915)) + return 0; + detect_fsb_freq(i915); detect_mem_freq(i915); - if (GRAPHICS_VER(i915) < 9 || IS_DG2(i915) || !HAS_DISPLAY(i915)) + if (GRAPHICS_VER(i915) < 9) return 0; dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL); -- 2.39.5 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 4/5] drm/i915/dram: bypass fsb/mem freq detection on dg2 and no display 2025-07-31 14:21 ` [PATCH 4/5] drm/i915/dram: bypass fsb/mem freq detection on dg2 and no display Jani Nikula @ 2025-08-05 22:24 ` Rodrigo Vivi 2025-08-06 13:52 ` Jani Nikula 0 siblings, 1 reply; 16+ messages in thread From: Rodrigo Vivi @ 2025-08-05 22:24 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Thu, Jul 31, 2025 at 05:21:24PM +0300, Jani Nikula wrote: > Non-display now calls the intel_fsb_freq() and intel_mem_freq() > functions, so we don't have to have the frequencies initialized for dg2 > or non-display cases. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/soc/intel_dram.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c > index 193e7f71a356..d896fb67270f 100644 > --- a/drivers/gpu/drm/i915/soc/intel_dram.c > +++ b/drivers/gpu/drm/i915/soc/intel_dram.c > @@ -725,10 +725,13 @@ int intel_dram_detect(struct drm_i915_private *i915) > struct dram_info *dram_info; > int ret; > > + if (IS_DG2(i915) || !HAS_DISPLAY(i915)) > + return 0; > + > detect_fsb_freq(i915); > detect_mem_freq(i915); but they will only be set to zero no? do we really need to avoid it? if so, perhaps make this change earlier? Also I wonder what's special in DG2, but not in BMG... > > - if (GRAPHICS_VER(i915) < 9 || IS_DG2(i915) || !HAS_DISPLAY(i915)) > + if (GRAPHICS_VER(i915) < 9) what about the old gen remaining here? at least deserves a comment on why it needs the upper calls, but not the call bellow? or should the upper calls be in another function/flow? > return 0; > > dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL); > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/5] drm/i915/dram: bypass fsb/mem freq detection on dg2 and no display 2025-08-05 22:24 ` Rodrigo Vivi @ 2025-08-06 13:52 ` Jani Nikula 2025-08-15 15:43 ` Rodrigo Vivi 0 siblings, 1 reply; 16+ messages in thread From: Jani Nikula @ 2025-08-06 13:52 UTC (permalink / raw) To: Rodrigo Vivi; +Cc: intel-gfx, intel-xe On Tue, 05 Aug 2025, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote: > On Thu, Jul 31, 2025 at 05:21:24PM +0300, Jani Nikula wrote: >> Non-display now calls the intel_fsb_freq() and intel_mem_freq() >> functions, so we don't have to have the frequencies initialized for dg2 >> or non-display cases. Is this enough amendmend for the commit message: """ This is in preparation for unifying the pre-gen9 handling in dram info. DG2 remains a special case as described in commit 5eb6bf0b44e7 ("drm/i915/dg2: Don't read DRAM info"). """ Or do you want more? BR, Jani. >> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> >> --- >> drivers/gpu/drm/i915/soc/intel_dram.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c >> index 193e7f71a356..d896fb67270f 100644 >> --- a/drivers/gpu/drm/i915/soc/intel_dram.c >> +++ b/drivers/gpu/drm/i915/soc/intel_dram.c >> @@ -725,10 +725,13 @@ int intel_dram_detect(struct drm_i915_private *i915) >> struct dram_info *dram_info; >> int ret; >> >> + if (IS_DG2(i915) || !HAS_DISPLAY(i915)) >> + return 0; >> + >> detect_fsb_freq(i915); >> detect_mem_freq(i915); > > but they will only be set to zero no? do we really need to avoid it? > if so, perhaps make this change earlier? > > Also I wonder what's special in DG2, but not in BMG... > >> >> - if (GRAPHICS_VER(i915) < 9 || IS_DG2(i915) || !HAS_DISPLAY(i915)) >> + if (GRAPHICS_VER(i915) < 9) > > what about the old gen remaining here? at least deserves a comment on why > it needs the upper calls, but not the call bellow? or should the upper > calls be in another function/flow? > >> return 0; >> >> dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL); >> -- >> 2.39.5 >> -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/5] drm/i915/dram: bypass fsb/mem freq detection on dg2 and no display 2025-08-06 13:52 ` Jani Nikula @ 2025-08-15 15:43 ` Rodrigo Vivi 0 siblings, 0 replies; 16+ messages in thread From: Rodrigo Vivi @ 2025-08-15 15:43 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Wed, Aug 06, 2025 at 04:52:06PM +0300, Jani Nikula wrote: > On Tue, 05 Aug 2025, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote: > > On Thu, Jul 31, 2025 at 05:21:24PM +0300, Jani Nikula wrote: > >> Non-display now calls the intel_fsb_freq() and intel_mem_freq() > >> functions, so we don't have to have the frequencies initialized for dg2 > >> or non-display cases. > > Is this enough amendmend for the commit message: > > """ > This is in preparation for unifying the pre-gen9 handling in dram info. > > DG2 remains a special case as described in commit 5eb6bf0b44e7 > ("drm/i915/dg2: Don't read DRAM info"). > """ > > Or do you want more? this is great, with that Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > BR, > Jani. > > >> > >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> > >> --- > >> drivers/gpu/drm/i915/soc/intel_dram.c | 5 ++++- > >> 1 file changed, 4 insertions(+), 1 deletion(-) > >> > >> diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c > >> index 193e7f71a356..d896fb67270f 100644 > >> --- a/drivers/gpu/drm/i915/soc/intel_dram.c > >> +++ b/drivers/gpu/drm/i915/soc/intel_dram.c > >> @@ -725,10 +725,13 @@ int intel_dram_detect(struct drm_i915_private *i915) > >> struct dram_info *dram_info; > >> int ret; > >> > >> + if (IS_DG2(i915) || !HAS_DISPLAY(i915)) > >> + return 0; > >> + > >> detect_fsb_freq(i915); > >> detect_mem_freq(i915); > > > > but they will only be set to zero no? do we really need to avoid it? > > if so, perhaps make this change earlier? > > > > Also I wonder what's special in DG2, but not in BMG... > > > >> > >> - if (GRAPHICS_VER(i915) < 9 || IS_DG2(i915) || !HAS_DISPLAY(i915)) > >> + if (GRAPHICS_VER(i915) < 9) > > > > what about the old gen remaining here? at least deserves a comment on why > > it needs the upper calls, but not the call bellow? or should the upper > > calls be in another function/flow? > > > >> return 0; > >> > >> dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL); > >> -- > >> 2.39.5 > >> > > -- > Jani Nikula, Intel ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 5/5] drm/i915/dram: move fsb_freq and mem_freq to dram info 2025-07-31 14:21 [PATCH 0/5] drm/i915 and drm/xe: remove fsb/mem freq cleanups Jani Nikula ` (3 preceding siblings ...) 2025-07-31 14:21 ` [PATCH 4/5] drm/i915/dram: bypass fsb/mem freq detection on dg2 and no display Jani Nikula @ 2025-07-31 14:21 ` Jani Nikula 2025-08-05 22:28 ` Rodrigo Vivi 2025-07-31 16:58 ` ✗ i915.CI.BAT: failure for drm/i915 and drm/xe: remove fsb/mem freq cleanups Patchwork 5 siblings, 1 reply; 16+ messages in thread From: Jani Nikula @ 2025-07-31 14:21 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: jani.nikula Store fsb_freq and mem_freq in dram info the same way we do for other memory info on later platforms for a slightly more unified approach. This allows us to remove fsb_freq, mem_freq and is_ddr3 members from struct drm_i915_private and struct xe_device. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/display/i9xx_wm.c | 13 +++++---- drivers/gpu/drm/i915/i915_drv.h | 2 -- drivers/gpu/drm/i915/soc/intel_dram.c | 38 +++++++++++--------------- drivers/gpu/drm/i915/soc/intel_dram.h | 2 ++ drivers/gpu/drm/xe/xe_device_types.h | 1 - 5 files changed, 26 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/i915/display/i9xx_wm.c b/drivers/gpu/drm/i915/display/i9xx_wm.c index 1f9db5118777..591acce2a4b1 100644 --- a/drivers/gpu/drm/i915/display/i9xx_wm.c +++ b/drivers/gpu/drm/i915/display/i9xx_wm.c @@ -3,6 +3,8 @@ * Copyright © 2023 Intel Corporation */ +#include "soc/intel_dram.h" + #include "i915_drv.h" #include "i915_reg.h" #include "i9xx_wm.h" @@ -85,7 +87,8 @@ static const struct cxsr_latency cxsr_latency_table[] = { static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *display) { - struct drm_i915_private *i915 = to_i915(display->drm); + const struct dram_info *dram_info = intel_dram_info(display->drm); + bool is_ddr3 = dram_info->type == INTEL_DRAM_DDR3; int i; for (i = 0; i < ARRAY_SIZE(cxsr_latency_table); i++) { @@ -93,15 +96,15 @@ static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *dis bool is_desktop = !display->platform.mobile; if (is_desktop == latency->is_desktop && - i915->is_ddr3 == latency->is_ddr3 && - DIV_ROUND_CLOSEST(i915->fsb_freq, 1000) == latency->fsb_freq && - DIV_ROUND_CLOSEST(i915->mem_freq, 1000) == latency->mem_freq) + is_ddr3 == latency->is_ddr3 && + DIV_ROUND_CLOSEST(dram_info->fsb_freq, 1000) == latency->fsb_freq && + DIV_ROUND_CLOSEST(dram_info->mem_freq, 1000) == latency->mem_freq) return latency; } drm_dbg_kms(display->drm, "Could not find CxSR latency for DDR%s, FSB %u kHz, MEM %u kHz\n", - i915->is_ddr3 ? "3" : "2", i915->fsb_freq, i915->mem_freq); + is_ddr3 ? "3" : "2", dram_info->fsb_freq, dram_info->mem_freq); return NULL; } diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 4e4e89746aa6..2f3965feada1 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -237,8 +237,6 @@ struct drm_i915_private { bool preserve_bios_swizzle; - unsigned int fsb_freq, mem_freq, is_ddr3; - unsigned int hpll_freq; unsigned int czclk_freq; diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c index d896fb67270f..6405a3d0b930 100644 --- a/drivers/gpu/drm/i915/soc/intel_dram.c +++ b/drivers/gpu/drm/i915/soc/intel_dram.c @@ -149,17 +149,6 @@ unsigned int intel_mem_freq(struct drm_i915_private *i915) return 0; } -static void detect_mem_freq(struct drm_i915_private *i915) -{ - i915->mem_freq = intel_mem_freq(i915); - - if (IS_PINEVIEW(i915)) - i915->is_ddr3 = pnv_is_ddr3(i915); - - if (i915->mem_freq) - drm_dbg(&i915->drm, "DDR speed: %d kHz\n", i915->mem_freq); -} - static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915) { u32 fsb; @@ -252,11 +241,20 @@ unsigned int intel_fsb_freq(struct drm_i915_private *i915) return 0; } -static void detect_fsb_freq(struct drm_i915_private *i915) +static int i915_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info) { - i915->fsb_freq = intel_fsb_freq(i915); - if (i915->fsb_freq) - drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", i915->fsb_freq); + dram_info->fsb_freq = intel_fsb_freq(i915); + if (dram_info->fsb_freq) + drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq); + + dram_info->mem_freq = intel_mem_freq(i915); + if (dram_info->mem_freq) + drm_dbg(&i915->drm, "DDR speed: %d kHz\n", dram_info->mem_freq); + + if (IS_PINEVIEW(i915) && pnv_is_ddr3(i915)) + dram_info->type = INTEL_DRAM_DDR3; + + return 0; } static int intel_dimm_num_devices(const struct dram_dimm_info *dimm) @@ -728,12 +726,6 @@ int intel_dram_detect(struct drm_i915_private *i915) if (IS_DG2(i915) || !HAS_DISPLAY(i915)) return 0; - detect_fsb_freq(i915); - detect_mem_freq(i915); - - if (GRAPHICS_VER(i915) < 9) - return 0; - dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL); if (!dram_info) return -ENOMEM; @@ -754,8 +746,10 @@ int intel_dram_detect(struct drm_i915_private *i915) ret = gen11_get_dram_info(i915, dram_info); else if (IS_BROXTON(i915) || IS_GEMINILAKE(i915)) ret = bxt_get_dram_info(i915, dram_info); - else + else if (GRAPHICS_VER(i915) >= 9) ret = skl_get_dram_info(i915, dram_info); + else + ret = i915_get_dram_info(i915, dram_info); drm_dbg_kms(&i915->drm, "DRAM type: %s\n", intel_dram_type_str(dram_info->type)); diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/soc/intel_dram.h index 5ba75e279e84..97d21894abdc 100644 --- a/drivers/gpu/drm/i915/soc/intel_dram.h +++ b/drivers/gpu/drm/i915/soc/intel_dram.h @@ -29,6 +29,8 @@ struct dram_info { } type; u8 num_qgv_points; u8 num_psf_gv_points; + unsigned int fsb_freq; + unsigned int mem_freq; }; void intel_dram_edram_detect(struct drm_i915_private *i915); diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h index 38c8329b4d2c..e2206e867b33 100644 --- a/drivers/gpu/drm/xe/xe_device_types.h +++ b/drivers/gpu/drm/xe/xe_device_types.h @@ -609,7 +609,6 @@ struct xe_device { struct { unsigned int hpll_freq; unsigned int czclk_freq; - unsigned int fsb_freq, mem_freq, is_ddr3; }; #endif }; -- 2.39.5 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 5/5] drm/i915/dram: move fsb_freq and mem_freq to dram info 2025-07-31 14:21 ` [PATCH 5/5] drm/i915/dram: move fsb_freq and mem_freq to dram info Jani Nikula @ 2025-08-05 22:28 ` Rodrigo Vivi 2025-08-06 13:57 ` Jani Nikula 0 siblings, 1 reply; 16+ messages in thread From: Rodrigo Vivi @ 2025-08-05 22:28 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Thu, Jul 31, 2025 at 05:21:25PM +0300, Jani Nikula wrote: > Store fsb_freq and mem_freq in dram info the same way we do for other > memory info on later platforms for a slightly more unified approach. > > This allows us to remove fsb_freq, mem_freq and is_ddr3 members from > struct drm_i915_private and struct xe_device. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/i9xx_wm.c | 13 +++++---- > drivers/gpu/drm/i915/i915_drv.h | 2 -- > drivers/gpu/drm/i915/soc/intel_dram.c | 38 +++++++++++--------------- > drivers/gpu/drm/i915/soc/intel_dram.h | 2 ++ > drivers/gpu/drm/xe/xe_device_types.h | 1 - > 5 files changed, 26 insertions(+), 30 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/i9xx_wm.c b/drivers/gpu/drm/i915/display/i9xx_wm.c > index 1f9db5118777..591acce2a4b1 100644 > --- a/drivers/gpu/drm/i915/display/i9xx_wm.c > +++ b/drivers/gpu/drm/i915/display/i9xx_wm.c > @@ -3,6 +3,8 @@ > * Copyright © 2023 Intel Corporation > */ > > +#include "soc/intel_dram.h" > + > #include "i915_drv.h" > #include "i915_reg.h" > #include "i9xx_wm.h" > @@ -85,7 +87,8 @@ static const struct cxsr_latency cxsr_latency_table[] = { > > static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *display) > { > - struct drm_i915_private *i915 = to_i915(display->drm); > + const struct dram_info *dram_info = intel_dram_info(display->drm); > + bool is_ddr3 = dram_info->type == INTEL_DRAM_DDR3; does this deserves a separate patch? I'm not sure if I followed here... > int i; > > for (i = 0; i < ARRAY_SIZE(cxsr_latency_table); i++) { > @@ -93,15 +96,15 @@ static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *dis > bool is_desktop = !display->platform.mobile; > > if (is_desktop == latency->is_desktop && > - i915->is_ddr3 == latency->is_ddr3 && > - DIV_ROUND_CLOSEST(i915->fsb_freq, 1000) == latency->fsb_freq && > - DIV_ROUND_CLOSEST(i915->mem_freq, 1000) == latency->mem_freq) > + is_ddr3 == latency->is_ddr3 && > + DIV_ROUND_CLOSEST(dram_info->fsb_freq, 1000) == latency->fsb_freq && > + DIV_ROUND_CLOSEST(dram_info->mem_freq, 1000) == latency->mem_freq) > return latency; > } > > drm_dbg_kms(display->drm, > "Could not find CxSR latency for DDR%s, FSB %u kHz, MEM %u kHz\n", > - i915->is_ddr3 ? "3" : "2", i915->fsb_freq, i915->mem_freq); > + is_ddr3 ? "3" : "2", dram_info->fsb_freq, dram_info->mem_freq); > > return NULL; > } > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 4e4e89746aa6..2f3965feada1 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -237,8 +237,6 @@ struct drm_i915_private { > > bool preserve_bios_swizzle; > > - unsigned int fsb_freq, mem_freq, is_ddr3; > - > unsigned int hpll_freq; > unsigned int czclk_freq; > > diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c > index d896fb67270f..6405a3d0b930 100644 > --- a/drivers/gpu/drm/i915/soc/intel_dram.c > +++ b/drivers/gpu/drm/i915/soc/intel_dram.c > @@ -149,17 +149,6 @@ unsigned int intel_mem_freq(struct drm_i915_private *i915) > return 0; > } > > -static void detect_mem_freq(struct drm_i915_private *i915) > -{ > - i915->mem_freq = intel_mem_freq(i915); > - > - if (IS_PINEVIEW(i915)) > - i915->is_ddr3 = pnv_is_ddr3(i915); > - > - if (i915->mem_freq) > - drm_dbg(&i915->drm, "DDR speed: %d kHz\n", i915->mem_freq); > -} > - > static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915) > { > u32 fsb; > @@ -252,11 +241,20 @@ unsigned int intel_fsb_freq(struct drm_i915_private *i915) > return 0; > } > > -static void detect_fsb_freq(struct drm_i915_private *i915) > +static int i915_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info) > { > - i915->fsb_freq = intel_fsb_freq(i915); > - if (i915->fsb_freq) > - drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", i915->fsb_freq); > + dram_info->fsb_freq = intel_fsb_freq(i915); > + if (dram_info->fsb_freq) > + drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq); > + > + dram_info->mem_freq = intel_mem_freq(i915); > + if (dram_info->mem_freq) > + drm_dbg(&i915->drm, "DDR speed: %d kHz\n", dram_info->mem_freq); > + > + if (IS_PINEVIEW(i915) && pnv_is_ddr3(i915)) > + dram_info->type = INTEL_DRAM_DDR3; > + > + return 0; > } > > static int intel_dimm_num_devices(const struct dram_dimm_info *dimm) > @@ -728,12 +726,6 @@ int intel_dram_detect(struct drm_i915_private *i915) > if (IS_DG2(i915) || !HAS_DISPLAY(i915)) > return 0; > > - detect_fsb_freq(i915); > - detect_mem_freq(i915); > - > - if (GRAPHICS_VER(i915) < 9) > - return 0; oh! this responds my last question in the previous patch... > - > dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL); > if (!dram_info) > return -ENOMEM; > @@ -754,8 +746,10 @@ int intel_dram_detect(struct drm_i915_private *i915) > ret = gen11_get_dram_info(i915, dram_info); > else if (IS_BROXTON(i915) || IS_GEMINILAKE(i915)) > ret = bxt_get_dram_info(i915, dram_info); > - else > + else if (GRAPHICS_VER(i915) >= 9) > ret = skl_get_dram_info(i915, dram_info); > + else > + ret = i915_get_dram_info(i915, dram_info); > > drm_dbg_kms(&i915->drm, "DRAM type: %s\n", > intel_dram_type_str(dram_info->type)); > diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/soc/intel_dram.h > index 5ba75e279e84..97d21894abdc 100644 > --- a/drivers/gpu/drm/i915/soc/intel_dram.h > +++ b/drivers/gpu/drm/i915/soc/intel_dram.h > @@ -29,6 +29,8 @@ struct dram_info { > } type; > u8 num_qgv_points; > u8 num_psf_gv_points; > + unsigned int fsb_freq; > + unsigned int mem_freq; > }; > > void intel_dram_edram_detect(struct drm_i915_private *i915); > diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h > index 38c8329b4d2c..e2206e867b33 100644 > --- a/drivers/gpu/drm/xe/xe_device_types.h > +++ b/drivers/gpu/drm/xe/xe_device_types.h > @@ -609,7 +609,6 @@ struct xe_device { > struct { > unsigned int hpll_freq; > unsigned int czclk_freq; > - unsigned int fsb_freq, mem_freq, is_ddr3; > }; > #endif > }; > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 5/5] drm/i915/dram: move fsb_freq and mem_freq to dram info 2025-08-05 22:28 ` Rodrigo Vivi @ 2025-08-06 13:57 ` Jani Nikula 2025-08-15 15:49 ` Rodrigo Vivi 0 siblings, 1 reply; 16+ messages in thread From: Jani Nikula @ 2025-08-06 13:57 UTC (permalink / raw) To: Rodrigo Vivi; +Cc: intel-gfx, intel-xe On Tue, 05 Aug 2025, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote: > On Thu, Jul 31, 2025 at 05:21:25PM +0300, Jani Nikula wrote: >> Store fsb_freq and mem_freq in dram info the same way we do for other >> memory info on later platforms for a slightly more unified approach. >> >> This allows us to remove fsb_freq, mem_freq and is_ddr3 members from >> struct drm_i915_private and struct xe_device. >> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> >> --- >> drivers/gpu/drm/i915/display/i9xx_wm.c | 13 +++++---- >> drivers/gpu/drm/i915/i915_drv.h | 2 -- >> drivers/gpu/drm/i915/soc/intel_dram.c | 38 +++++++++++--------------- >> drivers/gpu/drm/i915/soc/intel_dram.h | 2 ++ >> drivers/gpu/drm/xe/xe_device_types.h | 1 - >> 5 files changed, 26 insertions(+), 30 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/i9xx_wm.c b/drivers/gpu/drm/i915/display/i9xx_wm.c >> index 1f9db5118777..591acce2a4b1 100644 >> --- a/drivers/gpu/drm/i915/display/i9xx_wm.c >> +++ b/drivers/gpu/drm/i915/display/i9xx_wm.c >> @@ -3,6 +3,8 @@ >> * Copyright © 2023 Intel Corporation >> */ >> >> +#include "soc/intel_dram.h" >> + >> #include "i915_drv.h" >> #include "i915_reg.h" >> #include "i9xx_wm.h" >> @@ -85,7 +87,8 @@ static const struct cxsr_latency cxsr_latency_table[] = { >> >> static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *display) >> { >> - struct drm_i915_private *i915 = to_i915(display->drm); >> + const struct dram_info *dram_info = intel_dram_info(display->drm); >> + bool is_ddr3 = dram_info->type == INTEL_DRAM_DDR3; > > does this deserves a separate patch? I'm not sure if I followed here... The current check in the loop below is i915->is_ddr3 == latency->is_ddr3 and with i915->is_ddr3 being replaced by dram_info->type, I thought it's simpler to have that variable. The alternative is to convert the cxsr_latency_table to use enum intel_dram_type and INTEL_DRAM_DDR3, but I felt that's a bit much. > >> int i; >> >> for (i = 0; i < ARRAY_SIZE(cxsr_latency_table); i++) { >> @@ -93,15 +96,15 @@ static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *dis >> bool is_desktop = !display->platform.mobile; >> >> if (is_desktop == latency->is_desktop && >> - i915->is_ddr3 == latency->is_ddr3 && >> - DIV_ROUND_CLOSEST(i915->fsb_freq, 1000) == latency->fsb_freq && >> - DIV_ROUND_CLOSEST(i915->mem_freq, 1000) == latency->mem_freq) >> + is_ddr3 == latency->is_ddr3 && >> + DIV_ROUND_CLOSEST(dram_info->fsb_freq, 1000) == latency->fsb_freq && >> + DIV_ROUND_CLOSEST(dram_info->mem_freq, 1000) == latency->mem_freq) >> return latency; >> } >> >> drm_dbg_kms(display->drm, >> "Could not find CxSR latency for DDR%s, FSB %u kHz, MEM %u kHz\n", >> - i915->is_ddr3 ? "3" : "2", i915->fsb_freq, i915->mem_freq); >> + is_ddr3 ? "3" : "2", dram_info->fsb_freq, dram_info->mem_freq); >> >> return NULL; >> } >> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h >> index 4e4e89746aa6..2f3965feada1 100644 >> --- a/drivers/gpu/drm/i915/i915_drv.h >> +++ b/drivers/gpu/drm/i915/i915_drv.h >> @@ -237,8 +237,6 @@ struct drm_i915_private { >> >> bool preserve_bios_swizzle; >> >> - unsigned int fsb_freq, mem_freq, is_ddr3; >> - >> unsigned int hpll_freq; >> unsigned int czclk_freq; >> >> diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c >> index d896fb67270f..6405a3d0b930 100644 >> --- a/drivers/gpu/drm/i915/soc/intel_dram.c >> +++ b/drivers/gpu/drm/i915/soc/intel_dram.c >> @@ -149,17 +149,6 @@ unsigned int intel_mem_freq(struct drm_i915_private *i915) >> return 0; >> } >> >> -static void detect_mem_freq(struct drm_i915_private *i915) >> -{ >> - i915->mem_freq = intel_mem_freq(i915); >> - >> - if (IS_PINEVIEW(i915)) >> - i915->is_ddr3 = pnv_is_ddr3(i915); >> - >> - if (i915->mem_freq) >> - drm_dbg(&i915->drm, "DDR speed: %d kHz\n", i915->mem_freq); >> -} >> - >> static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915) >> { >> u32 fsb; >> @@ -252,11 +241,20 @@ unsigned int intel_fsb_freq(struct drm_i915_private *i915) >> return 0; >> } >> >> -static void detect_fsb_freq(struct drm_i915_private *i915) >> +static int i915_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info) >> { >> - i915->fsb_freq = intel_fsb_freq(i915); >> - if (i915->fsb_freq) >> - drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", i915->fsb_freq); >> + dram_info->fsb_freq = intel_fsb_freq(i915); >> + if (dram_info->fsb_freq) >> + drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq); >> + >> + dram_info->mem_freq = intel_mem_freq(i915); >> + if (dram_info->mem_freq) >> + drm_dbg(&i915->drm, "DDR speed: %d kHz\n", dram_info->mem_freq); >> + >> + if (IS_PINEVIEW(i915) && pnv_is_ddr3(i915)) >> + dram_info->type = INTEL_DRAM_DDR3; >> + >> + return 0; >> } >> >> static int intel_dimm_num_devices(const struct dram_dimm_info *dimm) >> @@ -728,12 +726,6 @@ int intel_dram_detect(struct drm_i915_private *i915) >> if (IS_DG2(i915) || !HAS_DISPLAY(i915)) >> return 0; >> >> - detect_fsb_freq(i915); >> - detect_mem_freq(i915); >> - >> - if (GRAPHICS_VER(i915) < 9) >> - return 0; > > oh! this responds my last question in the previous patch... Yeah, I could've referred to later changes there! > >> - >> dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL); >> if (!dram_info) >> return -ENOMEM; >> @@ -754,8 +746,10 @@ int intel_dram_detect(struct drm_i915_private *i915) >> ret = gen11_get_dram_info(i915, dram_info); >> else if (IS_BROXTON(i915) || IS_GEMINILAKE(i915)) >> ret = bxt_get_dram_info(i915, dram_info); >> - else >> + else if (GRAPHICS_VER(i915) >= 9) >> ret = skl_get_dram_info(i915, dram_info); >> + else >> + ret = i915_get_dram_info(i915, dram_info); >> >> drm_dbg_kms(&i915->drm, "DRAM type: %s\n", >> intel_dram_type_str(dram_info->type)); >> diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/soc/intel_dram.h >> index 5ba75e279e84..97d21894abdc 100644 >> --- a/drivers/gpu/drm/i915/soc/intel_dram.h >> +++ b/drivers/gpu/drm/i915/soc/intel_dram.h >> @@ -29,6 +29,8 @@ struct dram_info { >> } type; >> u8 num_qgv_points; >> u8 num_psf_gv_points; >> + unsigned int fsb_freq; >> + unsigned int mem_freq; >> }; >> >> void intel_dram_edram_detect(struct drm_i915_private *i915); >> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h >> index 38c8329b4d2c..e2206e867b33 100644 >> --- a/drivers/gpu/drm/xe/xe_device_types.h >> +++ b/drivers/gpu/drm/xe/xe_device_types.h >> @@ -609,7 +609,6 @@ struct xe_device { >> struct { >> unsigned int hpll_freq; >> unsigned int czclk_freq; >> - unsigned int fsb_freq, mem_freq, is_ddr3; >> }; >> #endif >> }; >> -- >> 2.39.5 >> -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 5/5] drm/i915/dram: move fsb_freq and mem_freq to dram info 2025-08-06 13:57 ` Jani Nikula @ 2025-08-15 15:49 ` Rodrigo Vivi 0 siblings, 0 replies; 16+ messages in thread From: Rodrigo Vivi @ 2025-08-15 15:49 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Wed, Aug 06, 2025 at 04:57:53PM +0300, Jani Nikula wrote: > On Tue, 05 Aug 2025, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote: > > On Thu, Jul 31, 2025 at 05:21:25PM +0300, Jani Nikula wrote: > >> Store fsb_freq and mem_freq in dram info the same way we do for other > >> memory info on later platforms for a slightly more unified approach. > >> > >> This allows us to remove fsb_freq, mem_freq and is_ddr3 members from > >> struct drm_i915_private and struct xe_device. > >> > >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> > >> --- > >> drivers/gpu/drm/i915/display/i9xx_wm.c | 13 +++++---- > >> drivers/gpu/drm/i915/i915_drv.h | 2 -- > >> drivers/gpu/drm/i915/soc/intel_dram.c | 38 +++++++++++--------------- > >> drivers/gpu/drm/i915/soc/intel_dram.h | 2 ++ > >> drivers/gpu/drm/xe/xe_device_types.h | 1 - > >> 5 files changed, 26 insertions(+), 30 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/i915/display/i9xx_wm.c b/drivers/gpu/drm/i915/display/i9xx_wm.c > >> index 1f9db5118777..591acce2a4b1 100644 > >> --- a/drivers/gpu/drm/i915/display/i9xx_wm.c > >> +++ b/drivers/gpu/drm/i915/display/i9xx_wm.c > >> @@ -3,6 +3,8 @@ > >> * Copyright © 2023 Intel Corporation > >> */ > >> > >> +#include "soc/intel_dram.h" > >> + > >> #include "i915_drv.h" > >> #include "i915_reg.h" > >> #include "i9xx_wm.h" > >> @@ -85,7 +87,8 @@ static const struct cxsr_latency cxsr_latency_table[] = { > >> > >> static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *display) > >> { > >> - struct drm_i915_private *i915 = to_i915(display->drm); > >> + const struct dram_info *dram_info = intel_dram_info(display->drm); > >> + bool is_ddr3 = dram_info->type == INTEL_DRAM_DDR3; > > > > does this deserves a separate patch? I'm not sure if I followed here... > > The current check in the loop below is > > i915->is_ddr3 == latency->is_ddr3 > > and with i915->is_ddr3 being replaced by dram_info->type, I thought it's > simpler to have that variable. oh, it makes sense now... what I was missing was the part where that was getting set in the pnv block. > > The alternative is to convert the cxsr_latency_table to use enum > intel_dram_type and INTEL_DRAM_DDR3, but I felt that's a bit much. no need for that indeed. Thanks for the explanation and patience Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > > > >> int i; > >> > >> for (i = 0; i < ARRAY_SIZE(cxsr_latency_table); i++) { > >> @@ -93,15 +96,15 @@ static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *dis > >> bool is_desktop = !display->platform.mobile; > >> > >> if (is_desktop == latency->is_desktop && > >> - i915->is_ddr3 == latency->is_ddr3 && > >> - DIV_ROUND_CLOSEST(i915->fsb_freq, 1000) == latency->fsb_freq && > >> - DIV_ROUND_CLOSEST(i915->mem_freq, 1000) == latency->mem_freq) > >> + is_ddr3 == latency->is_ddr3 && > >> + DIV_ROUND_CLOSEST(dram_info->fsb_freq, 1000) == latency->fsb_freq && > >> + DIV_ROUND_CLOSEST(dram_info->mem_freq, 1000) == latency->mem_freq) > >> return latency; > >> } > >> > >> drm_dbg_kms(display->drm, > >> "Could not find CxSR latency for DDR%s, FSB %u kHz, MEM %u kHz\n", > >> - i915->is_ddr3 ? "3" : "2", i915->fsb_freq, i915->mem_freq); > >> + is_ddr3 ? "3" : "2", dram_info->fsb_freq, dram_info->mem_freq); > >> > >> return NULL; > >> } > >> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > >> index 4e4e89746aa6..2f3965feada1 100644 > >> --- a/drivers/gpu/drm/i915/i915_drv.h > >> +++ b/drivers/gpu/drm/i915/i915_drv.h > >> @@ -237,8 +237,6 @@ struct drm_i915_private { > >> > >> bool preserve_bios_swizzle; > >> > >> - unsigned int fsb_freq, mem_freq, is_ddr3; > >> - > >> unsigned int hpll_freq; > >> unsigned int czclk_freq; > >> > >> diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c > >> index d896fb67270f..6405a3d0b930 100644 > >> --- a/drivers/gpu/drm/i915/soc/intel_dram.c > >> +++ b/drivers/gpu/drm/i915/soc/intel_dram.c > >> @@ -149,17 +149,6 @@ unsigned int intel_mem_freq(struct drm_i915_private *i915) > >> return 0; > >> } > >> > >> -static void detect_mem_freq(struct drm_i915_private *i915) > >> -{ > >> - i915->mem_freq = intel_mem_freq(i915); > >> - > >> - if (IS_PINEVIEW(i915)) > >> - i915->is_ddr3 = pnv_is_ddr3(i915); > >> - > >> - if (i915->mem_freq) > >> - drm_dbg(&i915->drm, "DDR speed: %d kHz\n", i915->mem_freq); > >> -} > >> - > >> static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915) > >> { > >> u32 fsb; > >> @@ -252,11 +241,20 @@ unsigned int intel_fsb_freq(struct drm_i915_private *i915) > >> return 0; > >> } > >> > >> -static void detect_fsb_freq(struct drm_i915_private *i915) > >> +static int i915_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info) > >> { > >> - i915->fsb_freq = intel_fsb_freq(i915); > >> - if (i915->fsb_freq) > >> - drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", i915->fsb_freq); > >> + dram_info->fsb_freq = intel_fsb_freq(i915); > >> + if (dram_info->fsb_freq) > >> + drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq); > >> + > >> + dram_info->mem_freq = intel_mem_freq(i915); > >> + if (dram_info->mem_freq) > >> + drm_dbg(&i915->drm, "DDR speed: %d kHz\n", dram_info->mem_freq); > >> + > >> + if (IS_PINEVIEW(i915) && pnv_is_ddr3(i915)) > >> + dram_info->type = INTEL_DRAM_DDR3; > >> + > >> + return 0; > >> } > >> > >> static int intel_dimm_num_devices(const struct dram_dimm_info *dimm) > >> @@ -728,12 +726,6 @@ int intel_dram_detect(struct drm_i915_private *i915) > >> if (IS_DG2(i915) || !HAS_DISPLAY(i915)) > >> return 0; > >> > >> - detect_fsb_freq(i915); > >> - detect_mem_freq(i915); > >> - > >> - if (GRAPHICS_VER(i915) < 9) > >> - return 0; > > > > oh! this responds my last question in the previous patch... > > Yeah, I could've referred to later changes there! > > > > >> - > >> dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL); > >> if (!dram_info) > >> return -ENOMEM; > >> @@ -754,8 +746,10 @@ int intel_dram_detect(struct drm_i915_private *i915) > >> ret = gen11_get_dram_info(i915, dram_info); > >> else if (IS_BROXTON(i915) || IS_GEMINILAKE(i915)) > >> ret = bxt_get_dram_info(i915, dram_info); > >> - else > >> + else if (GRAPHICS_VER(i915) >= 9) > >> ret = skl_get_dram_info(i915, dram_info); > >> + else > >> + ret = i915_get_dram_info(i915, dram_info); > >> > >> drm_dbg_kms(&i915->drm, "DRAM type: %s\n", > >> intel_dram_type_str(dram_info->type)); > >> diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/soc/intel_dram.h > >> index 5ba75e279e84..97d21894abdc 100644 > >> --- a/drivers/gpu/drm/i915/soc/intel_dram.h > >> +++ b/drivers/gpu/drm/i915/soc/intel_dram.h > >> @@ -29,6 +29,8 @@ struct dram_info { > >> } type; > >> u8 num_qgv_points; > >> u8 num_psf_gv_points; > >> + unsigned int fsb_freq; > >> + unsigned int mem_freq; > >> }; > >> > >> void intel_dram_edram_detect(struct drm_i915_private *i915); > >> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h > >> index 38c8329b4d2c..e2206e867b33 100644 > >> --- a/drivers/gpu/drm/xe/xe_device_types.h > >> +++ b/drivers/gpu/drm/xe/xe_device_types.h > >> @@ -609,7 +609,6 @@ struct xe_device { > >> struct { > >> unsigned int hpll_freq; > >> unsigned int czclk_freq; > >> - unsigned int fsb_freq, mem_freq, is_ddr3; > >> }; > >> #endif > >> }; > >> -- > >> 2.39.5 > >> > > -- > Jani Nikula, Intel ^ permalink raw reply [flat|nested] 16+ messages in thread
* ✗ i915.CI.BAT: failure for drm/i915 and drm/xe: remove fsb/mem freq cleanups 2025-07-31 14:21 [PATCH 0/5] drm/i915 and drm/xe: remove fsb/mem freq cleanups Jani Nikula ` (4 preceding siblings ...) 2025-07-31 14:21 ` [PATCH 5/5] drm/i915/dram: move fsb_freq and mem_freq to dram info Jani Nikula @ 2025-07-31 16:58 ` Patchwork 5 siblings, 0 replies; 16+ messages in thread From: Patchwork @ 2025-07-31 16:58 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 3749 bytes --] == Series Details == Series: drm/i915 and drm/xe: remove fsb/mem freq cleanups URL : https://patchwork.freedesktop.org/series/152363/ State : failure == Summary == CI Bug Log - changes from CI_DRM_16945 -> Patchwork_152363v1 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_152363v1 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_152363v1, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152363v1/index.html Participating hosts (45 -> 44) ------------------------------ Missing (1): fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_152363v1: ### IGT changes ### #### Possible regressions #### * igt@i915_selftest@live@guc_multi_lrc: - fi-bsw-n3050: [PASS][1] -> [ABORT][2] +1 other test abort [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16945/fi-bsw-n3050/igt@i915_selftest@live@guc_multi_lrc.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152363v1/fi-bsw-n3050/igt@i915_selftest@live@guc_multi_lrc.html Known issues ------------ Here are the changes found in Patchwork_152363v1 that come from known issues: ### IGT changes ### #### Possible fixes #### * igt@i915_selftest@live@gt_pm: - bat-jsl-1: [DMESG-FAIL][3] ([i915#13774]) -> [PASS][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16945/bat-jsl-1/igt@i915_selftest@live@gt_pm.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152363v1/bat-jsl-1/igt@i915_selftest@live@gt_pm.html #### Warnings #### * igt@i915_selftest@live: - bat-jsl-1: [DMESG-FAIL][5] ([i915#13774] / [i915#13827]) -> [DMESG-WARN][6] ([i915#13827]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16945/bat-jsl-1/igt@i915_selftest@live.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152363v1/bat-jsl-1/igt@i915_selftest@live.html - bat-atsm-1: [DMESG-FAIL][7] ([i915#12061] / [i915#13929]) -> [DMESG-FAIL][8] ([i915#12061] / [i915#14204]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16945/bat-atsm-1/igt@i915_selftest@live.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152363v1/bat-atsm-1/igt@i915_selftest@live.html * igt@i915_selftest@live@mman: - bat-atsm-1: [DMESG-FAIL][9] ([i915#13929]) -> [DMESG-FAIL][10] ([i915#14204]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16945/bat-atsm-1/igt@i915_selftest@live@mman.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152363v1/bat-atsm-1/igt@i915_selftest@live@mman.html [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 [i915#13774]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13774 [i915#13827]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13827 [i915#13929]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13929 [i915#14204]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14204 Build changes ------------- * Linux: CI_DRM_16945 -> Patchwork_152363v1 CI-20190529: 20190529 CI_DRM_16945: 1ecbc700ab547ec8354e03e45629e576b861993a @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8482: 8482 Patchwork_152363v1: 1ecbc700ab547ec8354e03e45629e576b861993a @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152363v1/index.html [-- Attachment #2: Type: text/html, Size: 4805 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2025-08-15 15:49 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-07-31 14:21 [PATCH 0/5] drm/i915 and drm/xe: remove fsb/mem freq cleanups Jani Nikula 2025-07-31 14:21 ` [PATCH 1/5] drm/i915/dram: add intel_fsb_freq() and use it Jani Nikula 2025-08-05 22:17 ` Rodrigo Vivi 2025-07-31 14:21 ` [PATCH 2/5] drm/i915/dram: add intel_mem_freq() Jani Nikula 2025-08-05 22:18 ` Rodrigo Vivi 2025-07-31 14:21 ` [PATCH 3/5] drm/i915/rps: use intel_fsb_freq() and intel_mem_freq() Jani Nikula 2025-08-05 22:20 ` Rodrigo Vivi 2025-07-31 14:21 ` [PATCH 4/5] drm/i915/dram: bypass fsb/mem freq detection on dg2 and no display Jani Nikula 2025-08-05 22:24 ` Rodrigo Vivi 2025-08-06 13:52 ` Jani Nikula 2025-08-15 15:43 ` Rodrigo Vivi 2025-07-31 14:21 ` [PATCH 5/5] drm/i915/dram: move fsb_freq and mem_freq to dram info Jani Nikula 2025-08-05 22:28 ` Rodrigo Vivi 2025-08-06 13:57 ` Jani Nikula 2025-08-15 15:49 ` Rodrigo Vivi 2025-07-31 16:58 ` ✗ i915.CI.BAT: failure for drm/i915 and drm/xe: remove fsb/mem freq cleanups Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).