Message ID | 20240116075636.6121-3-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: (stolen) memory region related fixes | expand |
On 1/16/2024 8:56 AM, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Dump the details about every memory region into dmesg at probe time. > Avoids having to dig those out from random places when debugging stuff. > > Cc: Paz Zcharya <pazz@chromium.org> > Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com> > --- > drivers/gpu/drm/i915/intel_memory_region.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c > index b2708f8cac2a..52d998e5c21a 100644 > --- a/drivers/gpu/drm/i915/intel_memory_region.c > +++ b/drivers/gpu/drm/i915/intel_memory_region.c > @@ -372,6 +372,24 @@ int intel_memory_regions_hw_probe(struct drm_i915_private *i915) > i915->mm.regions[i] = mem; > } > > + for (i = 0; i < ARRAY_SIZE(i915->mm.regions); i++) { > + struct intel_memory_region *mem = i915->mm.regions[i]; > + u64 region_size, io_size; > + > + if (!mem) > + continue; > + > + region_size = resource_size(&mem->region) >> 20; > + io_size = resource_size(&mem->io) >> 20; > + > + if (resource_size(&mem->io)) > + drm_dbg(&i915->drm, "Memory region(%d): %s: %llu MiB %pR, io: %llu MiB %pR\n", > + mem->id, mem->name, region_size, &mem->region, io_size, &mem->io); > + else > + drm_dbg(&i915->drm, "Memory region(%d): %s: %llu MiB %pR, io: n/a\n", > + mem->id, mem->name, region_size, &mem->region); > + } > + > return 0; > > out_cleanup:
On Tue, Jan 16, 2024 at 11:20:37AM +0100, Nirmoy Das wrote: > > On 1/16/2024 8:56 AM, Ville Syrjala wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > Dump the details about every memory region into dmesg at probe time. > > Avoids having to dig those out from random places when debugging stuff. > > > > Cc: Paz Zcharya <pazz@chromium.org> > > Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > Reviewed-by: Nirmoy Das <nirmoy.das@intel.com> Hi Ville, Thank you so much for this incredible series. It solves the issue regarding MTL initial plane readout that Andrzej Hajda and I worked on in https://patchwork.freedesktop.org/patch/570811/?series=127130&rev=2 In addition, it solved the issue with the new GOP. I tested it on two different devices with Meteor Lake and it worked perfectly: no i915 errors, no flickers or observable issues. Tested-by: Paz Zcharya <pazz@chromium.org>
diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c index b2708f8cac2a..52d998e5c21a 100644 --- a/drivers/gpu/drm/i915/intel_memory_region.c +++ b/drivers/gpu/drm/i915/intel_memory_region.c @@ -372,6 +372,24 @@ int intel_memory_regions_hw_probe(struct drm_i915_private *i915) i915->mm.regions[i] = mem; } + for (i = 0; i < ARRAY_SIZE(i915->mm.regions); i++) { + struct intel_memory_region *mem = i915->mm.regions[i]; + u64 region_size, io_size; + + if (!mem) + continue; + + region_size = resource_size(&mem->region) >> 20; + io_size = resource_size(&mem->io) >> 20; + + if (resource_size(&mem->io)) + drm_dbg(&i915->drm, "Memory region(%d): %s: %llu MiB %pR, io: %llu MiB %pR\n", + mem->id, mem->name, region_size, &mem->region, io_size, &mem->io); + else + drm_dbg(&i915->drm, "Memory region(%d): %s: %llu MiB %pR, io: n/a\n", + mem->id, mem->name, region_size, &mem->region); + } + return 0; out_cleanup: