Skip to content

Commit 5f23cea

Browse files
committed
drm/i915/dmc: Print out the DMC mmio register list at fw load time
To help with debugging print out the mmio list contained in the DMC firmware. Also highlight the event registers, and whether we're going to disable them or not. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231211213750.27109-5-ville.syrjala@linux.intel.com Reviewed-by: Imre Deak <imre.deak@intel.com>
1 parent e1a4e3c commit 5f23cea

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

drivers/gpu/drm/i915/display/intel_dmc.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,16 @@ static bool is_dmc_evt_ctl_reg(struct drm_i915_private *i915,
432432
return offset >= start && offset < end;
433433
}
434434

435+
static bool is_dmc_evt_htp_reg(struct drm_i915_private *i915,
436+
enum intel_dmc_id dmc_id, i915_reg_t reg)
437+
{
438+
u32 offset = i915_mmio_reg_offset(reg);
439+
u32 start = i915_mmio_reg_offset(DMC_EVT_HTP(i915, dmc_id, 0));
440+
u32 end = i915_mmio_reg_offset(DMC_EVT_HTP(i915, dmc_id, DMC_EVENT_HANDLER_COUNT_GEN12));
441+
442+
return offset >= start && offset < end;
443+
}
444+
435445
static bool disable_dmc_evt(struct drm_i915_private *i915,
436446
enum intel_dmc_id dmc_id,
437447
i915_reg_t reg, u32 data)
@@ -713,9 +723,17 @@ static u32 parse_dmc_fw_header(struct intel_dmc *dmc,
713723
return 0;
714724
}
715725

726+
drm_dbg_kms(&i915->drm, "DMC %d:\n", dmc_id);
716727
for (i = 0; i < mmio_count; i++) {
717728
dmc_info->mmioaddr[i] = _MMIO(mmioaddr[i]);
718729
dmc_info->mmiodata[i] = mmiodata[i];
730+
731+
drm_dbg_kms(&i915->drm, " mmio[%d]: 0x%x = 0x%x%s%s\n",
732+
i, mmioaddr[i], mmiodata[i],
733+
is_dmc_evt_ctl_reg(i915, dmc_id, dmc_info->mmioaddr[i]) ? " (EVT_CTL)" :
734+
is_dmc_evt_htp_reg(i915, dmc_id, dmc_info->mmioaddr[i]) ? " (EVT_HTP)" : "",
735+
disable_dmc_evt(i915, dmc_id, dmc_info->mmioaddr[i],
736+
dmc_info->mmiodata[i]) ? " (disabling)" : "");
719737
}
720738
dmc_info->mmio_count = mmio_count;
721739
dmc_info->start_mmioaddr = start_mmioaddr;

0 commit comments

Comments
 (0)