drm/xe/debugfs: Update xe_wa_dump signature

Our debugfs helper xe_gt_debugfs_show_with_rpm() expects print()
functions to return int. New signature allows us to drop wrapper.

While around, print additional separation lines using puts() to
avoid output with leading \n which might confuse some printers.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://lore.kernel.org/r/20250923211613.193347-3-michal.wajdeczko@intel.com
This commit is contained in:
Michal Wajdeczko
2025-09-23 23:16:10 +02:00
parent 103094205d
commit d06e0c33f3
3 changed files with 17 additions and 12 deletions

View File

@@ -167,12 +167,6 @@ static int register_save_restore(struct xe_gt *gt, struct drm_printer *p)
return 0;
}
static int workarounds(struct xe_gt *gt, struct drm_printer *p)
{
xe_wa_dump(gt, p);
return 0;
}
static int tunings(struct xe_gt *gt, struct drm_printer *p)
{
xe_tuning_dump(gt, p);
@@ -236,7 +230,7 @@ static const struct drm_info_list vf_safe_debugfs_list[] = {
{ "topology", .show = xe_gt_debugfs_show_with_rpm, .data = xe_gt_topology_dump },
{ "register-save-restore",
.show = xe_gt_debugfs_show_with_rpm, .data = register_save_restore },
{ "workarounds", .show = xe_gt_debugfs_show_with_rpm, .data = workarounds },
{ "workarounds", .show = xe_gt_debugfs_show_with_rpm, .data = xe_wa_gt_dump },
{ "tunings", .show = xe_gt_debugfs_show_with_rpm, .data = tunings },
{ "default_lrc_rcs", .show = xe_gt_debugfs_show_with_rpm, .data = rcs_default_lrc },
{ "default_lrc_ccs", .show = xe_gt_debugfs_show_with_rpm, .data = ccs_default_lrc },

View File

@@ -1086,7 +1086,14 @@ void xe_wa_device_dump(struct xe_device *xe, struct drm_printer *p)
drm_printf_indent(p, 1, "%s\n", device_oob_was[idx].name);
}
void xe_wa_dump(struct xe_gt *gt, struct drm_printer *p)
/**
* xe_wa_gt_dump() - Dump GT workarounds into a drm printer.
* @gt: the &xe_gt
* @p: the &drm_printer
*
* Return: always 0.
*/
int xe_wa_gt_dump(struct xe_gt *gt, struct drm_printer *p)
{
size_t idx;
@@ -1094,18 +1101,22 @@ void xe_wa_dump(struct xe_gt *gt, struct drm_printer *p)
for_each_set_bit(idx, gt->wa_active.gt, ARRAY_SIZE(gt_was))
drm_printf_indent(p, 1, "%s\n", gt_was[idx].name);
drm_printf(p, "\nEngine Workarounds\n");
drm_puts(p, "\n");
drm_printf(p, "Engine Workarounds\n");
for_each_set_bit(idx, gt->wa_active.engine, ARRAY_SIZE(engine_was))
drm_printf_indent(p, 1, "%s\n", engine_was[idx].name);
drm_printf(p, "\nLRC Workarounds\n");
drm_puts(p, "\n");
drm_printf(p, "LRC Workarounds\n");
for_each_set_bit(idx, gt->wa_active.lrc, ARRAY_SIZE(lrc_was))
drm_printf_indent(p, 1, "%s\n", lrc_was[idx].name);
drm_printf(p, "\nOOB Workarounds\n");
drm_puts(p, "\n");
drm_printf(p, "OOB Workarounds\n");
for_each_set_bit(idx, gt->wa_active.oob, ARRAY_SIZE(oob_was))
if (oob_was[idx].name)
drm_printf_indent(p, 1, "%s\n", oob_was[idx].name);
return 0;
}
/*

View File

@@ -22,7 +22,7 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe);
void xe_wa_process_lrc(struct xe_hw_engine *hwe);
void xe_wa_apply_tile_workarounds(struct xe_tile *tile);
void xe_wa_device_dump(struct xe_device *xe, struct drm_printer *p);
void xe_wa_dump(struct xe_gt *gt, struct drm_printer *p);
int xe_wa_gt_dump(struct xe_gt *gt, struct drm_printer *p);
/**
* XE_GT_WA - Out-of-band GT workarounds, to be queried and called as needed.