drm/i915: Try to detect sudden loss of MMIO access
authorMatt Roper <matthew.d.roper@intel.com>
Fri, 12 Feb 2021 21:19:25 +0000 (13:19 -0800)
committerMatt Roper <matthew.d.roper@intel.com>
Sat, 13 Feb 2021 02:44:44 +0000 (18:44 -0800)
commit29b6f88d60ddcaf813d1adc757d84fad4a6153c6
treec28146891edd3a08e375e734c3aab6c6a9d88ff8
parenta321c3c6d8dda2a34d4b5d76115a9a42f67158a3
drm/i915: Try to detect sudden loss of MMIO access

In rare circumstances bugs in PCI programming, broken BIOS, or failing
hardware can cause the CPU to lose access to the MMIO BAR on dgfx
platforms.  This is a pretty catastrophic failure since all register
reads come back with values of 0xFFFFFFFF.  Let's check for this special
case while doing our usual checks for unclaimed registers; the FPGA_DBG
register we use for those checks on modern platforms has some unused
bits that will always read back as 0 when things are behaving properly;
we can use them as canaries to detect when MMIO itself has suddenly
broken and try to print a more informative error message in the logs.

v2: Let the detection function still return 'true' if we've lost our
    MMIO access.  We'll still get an extra false positive message about
    an unclaimed register access, but we'll still honor the 'mmio_debug'
    limit and not spam the log.  (Lucas)

Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210212211925.3418280-2-matthew.d.roper@intel.com
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/i915/intel_uncore.c