mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
drm/i915: Check for unreliable MMIO during forcewake
Although we now sanitycheck MMIO access during driver load to make sure the MMIO BAR isn't returning all 0xFFFFFFFF, there have been a few cases where (temporarily?) unreliable MMIO access has happened after GPU resets or power events. We'll often notice this on our next GT register access since forcewake handling will fail; let's change our handling slightly so that when this happens we print a more meaningful message clarifying that the problem is the MMIO access, not forcewake specifically. Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com> Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230327195547.356584-3-andi.shyti@linux.intel.com
This commit is contained in:
parent
de4149730d
commit
fdd9b7dcf1
|
|
@ -178,12 +178,19 @@ wait_ack_set(const struct intel_uncore_forcewake_domain *d,
|
|||
static inline void
|
||||
fw_domain_wait_ack_clear(const struct intel_uncore_forcewake_domain *d)
|
||||
{
|
||||
if (wait_ack_clear(d, FORCEWAKE_KERNEL)) {
|
||||
if (!wait_ack_clear(d, FORCEWAKE_KERNEL))
|
||||
return;
|
||||
|
||||
if (fw_ack(d) == ~0)
|
||||
drm_err(&d->uncore->i915->drm,
|
||||
"%s: MMIO unreliable (forcewake register returns 0xFFFFFFFF)!\n",
|
||||
intel_uncore_forcewake_domain_to_str(d->id));
|
||||
else
|
||||
drm_err(&d->uncore->i915->drm,
|
||||
"%s: timed out waiting for forcewake ack to clear.\n",
|
||||
intel_uncore_forcewake_domain_to_str(d->id));
|
||||
add_taint_for_CI(d->uncore->i915, TAINT_WARN); /* CI now unreliable */
|
||||
}
|
||||
|
||||
add_taint_for_CI(d->uncore->i915, TAINT_WARN); /* CI now unreliable */
|
||||
}
|
||||
|
||||
enum ack_type {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user