Commit 67804e48 authored by John Harrison's avatar John Harrison

drm/i915/gt: Start adding module oriented dmesg output

When trying to analyse bug reports from CI, customers, etc. it can be
difficult to work out exactly what is happening on which GT in a
multi-GT system. So add GT oriented debug/error message wrappers. If
used instead of the drm_ equivalents, you get the same output but with
a GT# prefix on it.

v2: Go back to using lower case names (combined review feedback).
Convert intel_gt.c as a first step.
v3: Add gt_err_ratelimited() as well, undo one conversation that might
not have a GT pointer in some scenarios (review feedback from Michal W).
Split definitions into separate header (review feedback from Jani).
Convert all intel_gt*.c files.
v4: Re-order some macro definitions (Andi S), update (c) date (Tvrtko)
Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230111200429.2139084-2-John.C.Harrison@Intel.com
parent 0c8a6e9e
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "intel_gt_debugfs.h" #include "intel_gt_debugfs.h"
#include "intel_gt_mcr.h" #include "intel_gt_mcr.h"
#include "intel_gt_pm.h" #include "intel_gt_pm.h"
#include "intel_gt_print.h"
#include "intel_gt_regs.h" #include "intel_gt_regs.h"
#include "intel_gt_requests.h" #include "intel_gt_requests.h"
#include "intel_migrate.h" #include "intel_migrate.h"
...@@ -89,9 +90,8 @@ static int intel_gt_probe_lmem(struct intel_gt *gt) ...@@ -89,9 +90,8 @@ static int intel_gt_probe_lmem(struct intel_gt *gt)
if (err == -ENODEV) if (err == -ENODEV)
return 0; return 0;
drm_err(&i915->drm, gt_err(gt, "Failed to setup region(%d) type=%d\n",
"Failed to setup region(%d) type=%d\n", err, INTEL_MEMORY_LOCAL);
err, INTEL_MEMORY_LOCAL);
return err; return err;
} }
...@@ -200,14 +200,14 @@ int intel_gt_init_hw(struct intel_gt *gt) ...@@ -200,14 +200,14 @@ int intel_gt_init_hw(struct intel_gt *gt)
ret = i915_ppgtt_init_hw(gt); ret = i915_ppgtt_init_hw(gt);
if (ret) { if (ret) {
drm_err(&i915->drm, "Enabling PPGTT failed (%d)\n", ret); gt_err(gt, "Enabling PPGTT failed (%d)\n", ret);
goto out; goto out;
} }
/* We can't enable contexts until all firmware is loaded */ /* We can't enable contexts until all firmware is loaded */
ret = intel_uc_init_hw(&gt->uc); ret = intel_uc_init_hw(&gt->uc);
if (ret) { if (ret) {
i915_probe_error(i915, "Enabling uc failed (%d)\n", ret); gt_probe_error(gt, "Enabling uc failed (%d)\n", ret);
goto out; goto out;
} }
...@@ -257,7 +257,7 @@ intel_gt_clear_error_registers(struct intel_gt *gt, ...@@ -257,7 +257,7 @@ intel_gt_clear_error_registers(struct intel_gt *gt,
* some errors might have become stuck, * some errors might have become stuck,
* mask them. * mask them.
*/ */
drm_dbg(&gt->i915->drm, "EIR stuck: 0x%08x, masking\n", eir); gt_dbg(gt, "EIR stuck: 0x%08x, masking\n", eir);
intel_uncore_rmw(uncore, EMR, 0, eir); intel_uncore_rmw(uncore, EMR, 0, eir);
intel_uncore_write(uncore, GEN2_IIR, intel_uncore_write(uncore, GEN2_IIR,
I915_MASTER_ERROR_INTERRUPT); I915_MASTER_ERROR_INTERRUPT);
...@@ -291,16 +291,16 @@ static void gen6_check_faults(struct intel_gt *gt) ...@@ -291,16 +291,16 @@ static void gen6_check_faults(struct intel_gt *gt)
for_each_engine(engine, gt, id) { for_each_engine(engine, gt, id) {
fault = GEN6_RING_FAULT_REG_READ(engine); fault = GEN6_RING_FAULT_REG_READ(engine);
if (fault & RING_FAULT_VALID) { if (fault & RING_FAULT_VALID) {
drm_dbg(&engine->i915->drm, "Unexpected fault\n" gt_dbg(gt, "Unexpected fault\n"
"\tAddr: 0x%08lx\n" "\tAddr: 0x%08lx\n"
"\tAddress space: %s\n" "\tAddress space: %s\n"
"\tSource ID: %d\n" "\tSource ID: %d\n"
"\tType: %d\n", "\tType: %d\n",
fault & PAGE_MASK, fault & PAGE_MASK,
fault & RING_FAULT_GTTSEL_MASK ? fault & RING_FAULT_GTTSEL_MASK ?
"GGTT" : "PPGTT", "GGTT" : "PPGTT",
RING_FAULT_SRCID(fault), RING_FAULT_SRCID(fault),
RING_FAULT_FAULT_TYPE(fault)); RING_FAULT_FAULT_TYPE(fault));
} }
} }
} }
...@@ -327,17 +327,17 @@ static void xehp_check_faults(struct intel_gt *gt) ...@@ -327,17 +327,17 @@ static void xehp_check_faults(struct intel_gt *gt)
fault_addr = ((u64)(fault_data1 & FAULT_VA_HIGH_BITS) << 44) | fault_addr = ((u64)(fault_data1 & FAULT_VA_HIGH_BITS) << 44) |
((u64)fault_data0 << 12); ((u64)fault_data0 << 12);
drm_dbg(&gt->i915->drm, "Unexpected fault\n" gt_dbg(gt, "Unexpected fault\n"
"\tAddr: 0x%08x_%08x\n" "\tAddr: 0x%08x_%08x\n"
"\tAddress space: %s\n" "\tAddress space: %s\n"
"\tEngine ID: %d\n" "\tEngine ID: %d\n"
"\tSource ID: %d\n" "\tSource ID: %d\n"
"\tType: %d\n", "\tType: %d\n",
upper_32_bits(fault_addr), lower_32_bits(fault_addr), upper_32_bits(fault_addr), lower_32_bits(fault_addr),
fault_data1 & FAULT_GTT_SEL ? "GGTT" : "PPGTT", fault_data1 & FAULT_GTT_SEL ? "GGTT" : "PPGTT",
GEN8_RING_FAULT_ENGINE_ID(fault), GEN8_RING_FAULT_ENGINE_ID(fault),
RING_FAULT_SRCID(fault), RING_FAULT_SRCID(fault),
RING_FAULT_FAULT_TYPE(fault)); RING_FAULT_FAULT_TYPE(fault));
} }
} }
...@@ -368,17 +368,17 @@ static void gen8_check_faults(struct intel_gt *gt) ...@@ -368,17 +368,17 @@ static void gen8_check_faults(struct intel_gt *gt)
fault_addr = ((u64)(fault_data1 & FAULT_VA_HIGH_BITS) << 44) | fault_addr = ((u64)(fault_data1 & FAULT_VA_HIGH_BITS) << 44) |
((u64)fault_data0 << 12); ((u64)fault_data0 << 12);
drm_dbg(&uncore->i915->drm, "Unexpected fault\n" gt_dbg(gt, "Unexpected fault\n"
"\tAddr: 0x%08x_%08x\n" "\tAddr: 0x%08x_%08x\n"
"\tAddress space: %s\n" "\tAddress space: %s\n"
"\tEngine ID: %d\n" "\tEngine ID: %d\n"
"\tSource ID: %d\n" "\tSource ID: %d\n"
"\tType: %d\n", "\tType: %d\n",
upper_32_bits(fault_addr), lower_32_bits(fault_addr), upper_32_bits(fault_addr), lower_32_bits(fault_addr),
fault_data1 & FAULT_GTT_SEL ? "GGTT" : "PPGTT", fault_data1 & FAULT_GTT_SEL ? "GGTT" : "PPGTT",
GEN8_RING_FAULT_ENGINE_ID(fault), GEN8_RING_FAULT_ENGINE_ID(fault),
RING_FAULT_SRCID(fault), RING_FAULT_SRCID(fault),
RING_FAULT_FAULT_TYPE(fault)); RING_FAULT_FAULT_TYPE(fault));
} }
} }
...@@ -472,7 +472,7 @@ static int intel_gt_init_scratch(struct intel_gt *gt, unsigned int size) ...@@ -472,7 +472,7 @@ static int intel_gt_init_scratch(struct intel_gt *gt, unsigned int size)
if (IS_ERR(obj)) if (IS_ERR(obj))
obj = i915_gem_object_create_internal(i915, size); obj = i915_gem_object_create_internal(i915, size);
if (IS_ERR(obj)) { if (IS_ERR(obj)) {
drm_err(&i915->drm, "Failed to allocate scratch page\n"); gt_err(gt, "Failed to allocate scratch page\n");
return PTR_ERR(obj); return PTR_ERR(obj);
} }
...@@ -727,8 +727,7 @@ int intel_gt_init(struct intel_gt *gt) ...@@ -727,8 +727,7 @@ int intel_gt_init(struct intel_gt *gt)
err = intel_gt_init_hwconfig(gt); err = intel_gt_init_hwconfig(gt);
if (err) if (err)
drm_err(&gt->i915->drm, "Failed to retrieve hwconfig table: %pe\n", gt_err(gt, "Failed to retrieve hwconfig table: %pe\n", ERR_PTR(err));
ERR_PTR(err));
err = __engines_record_defaults(gt); err = __engines_record_defaults(gt);
if (err) if (err)
...@@ -885,7 +884,7 @@ int intel_gt_probe_all(struct drm_i915_private *i915) ...@@ -885,7 +884,7 @@ int intel_gt_probe_all(struct drm_i915_private *i915)
gt->name = "Primary GT"; gt->name = "Primary GT";
gt->info.engine_mask = RUNTIME_INFO(i915)->platform_engine_mask; gt->info.engine_mask = RUNTIME_INFO(i915)->platform_engine_mask;
drm_dbg(&i915->drm, "Setting up %s\n", gt->name); gt_dbg(gt, "Setting up %s\n", gt->name);
ret = intel_gt_tile_setup(gt, phys_addr); ret = intel_gt_tile_setup(gt, phys_addr);
if (ret) if (ret)
return ret; return ret;
...@@ -910,7 +909,7 @@ int intel_gt_probe_all(struct drm_i915_private *i915) ...@@ -910,7 +909,7 @@ int intel_gt_probe_all(struct drm_i915_private *i915)
gt->info.engine_mask = gtdef->engine_mask; gt->info.engine_mask = gtdef->engine_mask;
gt->info.id = i; gt->info.id = i;
drm_dbg(&i915->drm, "Setting up %s\n", gt->name); gt_dbg(gt, "Setting up %s\n", gt->name);
if (GEM_WARN_ON(range_overflows_t(resource_size_t, if (GEM_WARN_ON(range_overflows_t(resource_size_t,
gtdef->mapping_base, gtdef->mapping_base,
SZ_16M, SZ_16M,
...@@ -998,8 +997,7 @@ get_reg_and_bit(const struct intel_engine_cs *engine, const bool gen8, ...@@ -998,8 +997,7 @@ get_reg_and_bit(const struct intel_engine_cs *engine, const bool gen8,
const unsigned int class = engine->class; const unsigned int class = engine->class;
struct reg_and_bit rb = { }; struct reg_and_bit rb = { };
if (drm_WARN_ON_ONCE(&engine->i915->drm, if (gt_WARN_ON_ONCE(engine->gt, class >= num || !regs[class].reg))
class >= num || !regs[class].reg))
return rb; return rb;
rb.reg = regs[class]; rb.reg = regs[class];
...@@ -1096,8 +1094,7 @@ static void mmio_invalidate_full(struct intel_gt *gt) ...@@ -1096,8 +1094,7 @@ static void mmio_invalidate_full(struct intel_gt *gt)
return; return;
} }
if (drm_WARN_ONCE(&i915->drm, !num, if (gt_WARN_ONCE(gt, !num, "Platform does not implement TLB invalidation!"))
"Platform does not implement TLB invalidation!"))
return; return;
intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL); intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL);
...@@ -1162,9 +1159,8 @@ static void mmio_invalidate_full(struct intel_gt *gt) ...@@ -1162,9 +1159,8 @@ static void mmio_invalidate_full(struct intel_gt *gt)
} }
if (wait_for_invalidate(gt, rb)) if (wait_for_invalidate(gt, rb))
drm_err_ratelimited(&gt->i915->drm, gt_err_ratelimited(gt, "%s TLB invalidation did not complete in %ums!\n",
"%s TLB invalidation did not complete in %ums!\n", engine->name, TLB_INVAL_TIMEOUT_MS);
engine->name, TLB_INVAL_TIMEOUT_MS);
} }
/* /*
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "i915_reg.h" #include "i915_reg.h"
#include "intel_gt.h" #include "intel_gt.h"
#include "intel_gt_clock_utils.h" #include "intel_gt_clock_utils.h"
#include "intel_gt_print.h"
#include "intel_gt_regs.h" #include "intel_gt_regs.h"
static u32 read_reference_ts_freq(struct intel_uncore *uncore) static u32 read_reference_ts_freq(struct intel_uncore *uncore)
...@@ -193,10 +194,9 @@ void intel_gt_init_clock_frequency(struct intel_gt *gt) ...@@ -193,10 +194,9 @@ void intel_gt_init_clock_frequency(struct intel_gt *gt)
void intel_gt_check_clock_frequency(const struct intel_gt *gt) void intel_gt_check_clock_frequency(const struct intel_gt *gt)
{ {
if (gt->clock_frequency != read_clock_frequency(gt->uncore)) { if (gt->clock_frequency != read_clock_frequency(gt->uncore)) {
dev_err(gt->i915->drm.dev, gt_err(gt, "GT clock frequency changed, was %uHz, now %uHz!\n",
"GT clock frequency changed, was %uHz, now %uHz!\n", gt->clock_frequency,
gt->clock_frequency, read_clock_frequency(gt->uncore));
read_clock_frequency(gt->uncore));
} }
} }
#endif #endif
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "intel_breadcrumbs.h" #include "intel_breadcrumbs.h"
#include "intel_gt.h" #include "intel_gt.h"
#include "intel_gt_irq.h" #include "intel_gt_irq.h"
#include "intel_gt_print.h"
#include "intel_gt_regs.h" #include "intel_gt_regs.h"
#include "intel_uncore.h" #include "intel_uncore.h"
#include "intel_rps.h" #include "intel_rps.h"
...@@ -47,9 +48,8 @@ gen11_gt_engine_identity(struct intel_gt *gt, ...@@ -47,9 +48,8 @@ gen11_gt_engine_identity(struct intel_gt *gt,
!time_after32(local_clock() >> 10, timeout_ts)); !time_after32(local_clock() >> 10, timeout_ts));
if (unlikely(!(ident & GEN11_INTR_DATA_VALID))) { if (unlikely(!(ident & GEN11_INTR_DATA_VALID))) {
drm_err(&gt->i915->drm, gt_err(gt, "INTR_IDENTITY_REG%u:%u 0x%08x not valid!\n",
"INTR_IDENTITY_REG%u:%u 0x%08x not valid!\n", bank, bit, ident);
bank, bit, ident);
return 0; return 0;
} }
...@@ -378,8 +378,7 @@ void gen6_gt_irq_handler(struct intel_gt *gt, u32 gt_iir) ...@@ -378,8 +378,7 @@ void gen6_gt_irq_handler(struct intel_gt *gt, u32 gt_iir)
if (gt_iir & (GT_BLT_CS_ERROR_INTERRUPT | if (gt_iir & (GT_BLT_CS_ERROR_INTERRUPT |
GT_BSD_CS_ERROR_INTERRUPT | GT_BSD_CS_ERROR_INTERRUPT |
GT_CS_MASTER_ERROR_INTERRUPT)) GT_CS_MASTER_ERROR_INTERRUPT))
drm_dbg(&gt->i915->drm, "Command parser error, gt_iir 0x%08x\n", gt_dbg(gt, "Command parser error, gt_iir 0x%08x\n", gt_iir);
gt_iir);
if (gt_iir & GT_PARITY_ERROR(gt->i915)) if (gt_iir & GT_PARITY_ERROR(gt->i915))
gen7_parity_error_irq_handler(gt, gt_iir); gen7_parity_error_irq_handler(gt, gt_iir);
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "i915_drv.h" #include "i915_drv.h"
#include "intel_gt_mcr.h" #include "intel_gt_mcr.h"
#include "intel_gt_print.h"
#include "intel_gt_regs.h" #include "intel_gt_regs.h"
/** /**
...@@ -158,7 +159,7 @@ void intel_gt_mcr_init(struct intel_gt *gt) ...@@ -158,7 +159,7 @@ void intel_gt_mcr_init(struct intel_gt *gt)
GEN12_MEML3_EN_MASK); GEN12_MEML3_EN_MASK);
if (!gt->info.mslice_mask) /* should be impossible! */ if (!gt->info.mslice_mask) /* should be impossible! */
drm_warn(&i915->drm, "mslice mask all zero!\n"); gt_warn(gt, "mslice mask all zero!\n");
} }
if (MEDIA_VER(i915) >= 13 && gt->type == GT_MEDIA) { if (MEDIA_VER(i915) >= 13 && gt->type == GT_MEDIA) {
...@@ -205,7 +206,7 @@ void intel_gt_mcr_init(struct intel_gt *gt) ...@@ -205,7 +206,7 @@ void intel_gt_mcr_init(struct intel_gt *gt)
~intel_uncore_read(gt->uncore, GEN10_MIRROR_FUSE3) & ~intel_uncore_read(gt->uncore, GEN10_MIRROR_FUSE3) &
GEN10_L3BANK_MASK; GEN10_L3BANK_MASK;
if (!gt->info.l3bank_mask) /* should be impossible! */ if (!gt->info.l3bank_mask) /* should be impossible! */
drm_warn(&i915->drm, "L3 bank mask is all zero!\n"); gt_warn(gt, "L3 bank mask is all zero!\n");
} else if (GRAPHICS_VER(i915) >= 11) { } else if (GRAPHICS_VER(i915) >= 11) {
/* /*
* We expect all modern platforms to have at least some * We expect all modern platforms to have at least some
...@@ -394,9 +395,7 @@ void intel_gt_mcr_lock(struct intel_gt *gt, unsigned long *flags) ...@@ -394,9 +395,7 @@ void intel_gt_mcr_lock(struct intel_gt *gt, unsigned long *flags)
* releasing it properly. * releasing it properly.
*/ */
if (err == -ETIMEDOUT) { if (err == -ETIMEDOUT) {
drm_err_ratelimited(&gt->i915->drm, gt_err_ratelimited(gt, "hardware MCR steering semaphore timed out");
"GT%u hardware MCR steering semaphore timed out",
gt->info.id);
add_taint_for_CI(gt->i915, TAINT_WARN); /* CI is now unreliable */ add_taint_for_CI(gt->i915, TAINT_WARN); /* CI is now unreliable */
} }
} }
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "intel_gt.h" #include "intel_gt.h"
#include "intel_gt_clock_utils.h" #include "intel_gt_clock_utils.h"
#include "intel_gt_pm.h" #include "intel_gt_pm.h"
#include "intel_gt_print.h"
#include "intel_gt_requests.h" #include "intel_gt_requests.h"
#include "intel_llc.h" #include "intel_llc.h"
#include "intel_pm.h" #include "intel_pm.h"
...@@ -275,8 +276,7 @@ int intel_gt_resume(struct intel_gt *gt) ...@@ -275,8 +276,7 @@ int intel_gt_resume(struct intel_gt *gt)
/* Only when the HW is re-initialised, can we replay the requests */ /* Only when the HW is re-initialised, can we replay the requests */
err = intel_gt_init_hw(gt); err = intel_gt_init_hw(gt);
if (err) { if (err) {
i915_probe_error(gt->i915, gt_probe_error(gt, "Failed to initialize GPU, declaring it wedged!\n");
"Failed to initialize GPU, declaring it wedged!\n");
goto err_wedged; goto err_wedged;
} }
...@@ -293,9 +293,8 @@ int intel_gt_resume(struct intel_gt *gt) ...@@ -293,9 +293,8 @@ int intel_gt_resume(struct intel_gt *gt)
intel_engine_pm_put(engine); intel_engine_pm_put(engine);
if (err) { if (err) {
drm_err(&gt->i915->drm, gt_err(gt, "Failed to restart %s (%d)\n",
"Failed to restart %s (%d)\n", engine->name, err);
engine->name, err);
goto err_wedged; goto err_wedged;
} }
} }
......
/* SPDX-License-Identifier: MIT */
/*
* Copyright © 2023 Intel Corporation
*/
#ifndef __INTEL_GT_PRINT__
#define __INTEL_GT_PRINT__
#include <drm/drm_print.h>
#include "intel_gt_types.h"
#include "i915_utils.h"
#define gt_err(_gt, _fmt, ...) \
drm_err(&(_gt)->i915->drm, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
#define gt_warn(_gt, _fmt, ...) \
drm_warn(&(_gt)->i915->drm, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
#define gt_notice(_gt, _fmt, ...) \
drm_notice(&(_gt)->i915->drm, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
#define gt_info(_gt, _fmt, ...) \
drm_info(&(_gt)->i915->drm, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
#define gt_dbg(_gt, _fmt, ...) \
drm_dbg(&(_gt)->i915->drm, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
#define gt_err_ratelimited(_gt, _fmt, ...) \
drm_err_ratelimited(&(_gt)->i915->drm, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
#define gt_probe_error(_gt, _fmt, ...) \
do { \
if (i915_error_injected()) \
gt_dbg(_gt, _fmt, ##__VA_ARGS__); \
else \
gt_err(_gt, _fmt, ##__VA_ARGS__); \
} while (0)
#define gt_WARN(_gt, _condition, _fmt, ...) \
drm_WARN(&(_gt)->i915->drm, _condition, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
#define gt_WARN_ONCE(_gt, _condition, _fmt, ...) \
drm_WARN_ONCE(&(_gt)->i915->drm, _condition, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
#define gt_WARN_ON(_gt, _condition) \
gt_WARN(_gt, _condition, "%s", "gt_WARN_ON(" __stringify(_condition) ")")
#define gt_WARN_ON_ONCE(_gt, _condition) \
gt_WARN_ONCE(_gt, _condition, "%s", "gt_WARN_ONCE(" __stringify(_condition) ")")
#endif /* __INTEL_GT_PRINT_H__ */
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "i915_drv.h" #include "i915_drv.h"
#include "i915_sysfs.h" #include "i915_sysfs.h"
#include "intel_gt.h" #include "intel_gt.h"
#include "intel_gt_print.h"
#include "intel_gt_sysfs.h" #include "intel_gt_sysfs.h"
#include "intel_gt_sysfs_pm.h" #include "intel_gt_sysfs_pm.h"
#include "intel_gt_types.h" #include "intel_gt_types.h"
...@@ -105,8 +106,7 @@ void intel_gt_sysfs_register(struct intel_gt *gt) ...@@ -105,8 +106,7 @@ void intel_gt_sysfs_register(struct intel_gt *gt)
exit_fail: exit_fail:
kobject_put(&gt->sysfs_gt); kobject_put(&gt->sysfs_gt);
drm_warn(&gt->i915->drm, gt_warn(gt, "failed to initialize sysfs root\n");
"failed to initialize gt%d sysfs root\n", gt->info.id);
} }
void intel_gt_sysfs_unregister(struct intel_gt *gt) void intel_gt_sysfs_unregister(struct intel_gt *gt)
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "i915_reg.h" #include "i915_reg.h"
#include "i915_sysfs.h" #include "i915_sysfs.h"
#include "intel_gt.h" #include "intel_gt.h"
#include "intel_gt_print.h"
#include "intel_gt_regs.h" #include "intel_gt_regs.h"
#include "intel_gt_sysfs.h" #include "intel_gt_sysfs.h"
#include "intel_gt_sysfs_pm.h" #include "intel_gt_sysfs_pm.h"
...@@ -305,9 +306,7 @@ static void intel_sysfs_rc6_init(struct intel_gt *gt, struct kobject *kobj) ...@@ -305,9 +306,7 @@ static void intel_sysfs_rc6_init(struct intel_gt *gt, struct kobject *kobj)
ret = __intel_gt_sysfs_create_group(kobj, rc6_attr_group); ret = __intel_gt_sysfs_create_group(kobj, rc6_attr_group);
if (ret) if (ret)
drm_warn(&gt->i915->drm, gt_warn(gt, "failed to create RC6 sysfs files (%pe)\n", ERR_PTR(ret));
"failed to create gt%u RC6 sysfs files (%pe)\n",
gt->info.id, ERR_PTR(ret));
/* /*
* cannot use the is_visible() attribute because * cannot use the is_visible() attribute because
...@@ -316,17 +315,13 @@ static void intel_sysfs_rc6_init(struct intel_gt *gt, struct kobject *kobj) ...@@ -316,17 +315,13 @@ static void intel_sysfs_rc6_init(struct intel_gt *gt, struct kobject *kobj)
if (HAS_RC6p(gt->i915)) { if (HAS_RC6p(gt->i915)) {
ret = __intel_gt_sysfs_create_group(kobj, rc6p_attr_group); ret = __intel_gt_sysfs_create_group(kobj, rc6p_attr_group);
if (ret) if (ret)
drm_warn(&gt->i915->drm, gt_warn(gt, "failed to create RC6p sysfs files (%pe)\n", ERR_PTR(ret));
"failed to create gt%u RC6p sysfs files (%pe)\n",
gt->info.id, ERR_PTR(ret));
} }
if (IS_VALLEYVIEW(gt->i915) || IS_CHERRYVIEW(gt->i915)) { if (IS_VALLEYVIEW(gt->i915) || IS_CHERRYVIEW(gt->i915)) {
ret = __intel_gt_sysfs_create_group(kobj, media_rc6_attr_group); ret = __intel_gt_sysfs_create_group(kobj, media_rc6_attr_group);
if (ret) if (ret)
drm_warn(&gt->i915->drm, gt_warn(gt, "failed to create media RC6 sysfs files (%pe)\n", ERR_PTR(ret));
"failed to create media %u RC6 sysfs files (%pe)\n",
gt->info.id, ERR_PTR(ret));
} }
} }
#else #else
...@@ -745,9 +740,7 @@ void intel_gt_sysfs_pm_init(struct intel_gt *gt, struct kobject *kobj) ...@@ -745,9 +740,7 @@ void intel_gt_sysfs_pm_init(struct intel_gt *gt, struct kobject *kobj)
ret = intel_sysfs_rps_init(gt, kobj); ret = intel_sysfs_rps_init(gt, kobj);
if (ret) if (ret)
drm_warn(&gt->i915->drm, gt_warn(gt, "failed to create RPS sysfs files (%pe)", ERR_PTR(ret));
"failed to create gt%u RPS sysfs files (%pe)",
gt->info.id, ERR_PTR(ret));
/* end of the legacy interfaces */ /* end of the legacy interfaces */
if (!is_object_gt(kobj)) if (!is_object_gt(kobj))
...@@ -755,29 +748,22 @@ void intel_gt_sysfs_pm_init(struct intel_gt *gt, struct kobject *kobj) ...@@ -755,29 +748,22 @@ void intel_gt_sysfs_pm_init(struct intel_gt *gt, struct kobject *kobj)
ret = sysfs_create_file(kobj, &attr_punit_req_freq_mhz.attr); ret = sysfs_create_file(kobj, &attr_punit_req_freq_mhz.attr);
if (ret) if (ret)
drm_warn(&gt->i915->drm, gt_warn(gt, "failed to create punit_req_freq_mhz sysfs (%pe)", ERR_PTR(ret));
"failed to create gt%u punit_req_freq_mhz sysfs (%pe)",
gt->info.id, ERR_PTR(ret));
if (i915_mmio_reg_valid(intel_gt_perf_limit_reasons_reg(gt))) { if (i915_mmio_reg_valid(intel_gt_perf_limit_reasons_reg(gt))) {
ret = sysfs_create_files(kobj, throttle_reason_attrs); ret = sysfs_create_files(kobj, throttle_reason_attrs);
if (ret) if (ret)
drm_warn(&gt->i915->drm, gt_warn(gt, "failed to create throttle sysfs files (%pe)", ERR_PTR(ret));
"failed to create gt%u throttle sysfs files (%pe)",
gt->info.id, ERR_PTR(ret));
} }
if (HAS_MEDIA_RATIO_MODE(gt->i915) && intel_uc_uses_guc_slpc(&gt->uc)) { if (HAS_MEDIA_RATIO_MODE(gt->i915) && intel_uc_uses_guc_slpc(&gt->uc)) {
ret = sysfs_create_files(kobj, media_perf_power_attrs); ret = sysfs_create_files(kobj, media_perf_power_attrs);
if (ret) if (ret)
drm_warn(&gt->i915->drm, gt_warn(gt, "failed to create media_perf_power_attrs sysfs (%pe)\n",
"failed to create gt%u media_perf_power_attrs sysfs (%pe)\n", ERR_PTR(ret));
gt->info.id, ERR_PTR(ret));
} }
ret = sysfs_create_files(gt->sysfs_defaults, rps_defaults_attrs); ret = sysfs_create_files(gt->sysfs_defaults, rps_defaults_attrs);
if (ret) if (ret)
drm_warn(&gt->i915->drm, gt_warn(gt, "failed to add rps defaults (%pe)\n", ERR_PTR(ret));
"failed to add gt%u rps defaults (%pe)\n",
gt->info.id, ERR_PTR(ret));
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "i915_utils.h" #include "i915_utils.h"
#include "intel_gt.h" #include "intel_gt.h"
#include "intel_gt_mcr.h" #include "intel_gt_mcr.h"
#include "intel_gt_print.h"
#include "intel_gt_regs.h" #include "intel_gt_regs.h"
#include "intel_gtt.h" #include "intel_gtt.h"
...@@ -461,9 +462,9 @@ void gtt_write_workarounds(struct intel_gt *gt) ...@@ -461,9 +462,9 @@ void gtt_write_workarounds(struct intel_gt *gt)
intel_uncore_write(uncore, intel_uncore_write(uncore,
HSW_GTT_CACHE_EN, HSW_GTT_CACHE_EN,
can_use_gtt_cache ? GTT_CACHE_EN_ALL : 0); can_use_gtt_cache ? GTT_CACHE_EN_ALL : 0);
drm_WARN_ON_ONCE(&i915->drm, can_use_gtt_cache && gt_WARN_ON_ONCE(gt, can_use_gtt_cache &&
intel_uncore_read(uncore, intel_uncore_read(uncore,
HSW_GTT_CACHE_EN) == 0); HSW_GTT_CACHE_EN) == 0);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment