drm/xe/reg_sr: Tweak verbosity for register printing
authorLucas De Marchi <lucas.demarchi@intel.com>
Tue, 14 Mar 2023 00:30:00 +0000 (17:30 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 19 Dec 2023 23:29:47 +0000 (18:29 -0500)
If there is no register to save-restore or whitelist, just return. This
drops some noise from the log, particurlarly for platforms with several
engines like PVC:

[drm:xe_reg_sr_apply_mmio [xe]] Applying bcs0 save-restore MMIOs
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs0 registers
[drm:xe_reg_sr_apply_mmio [xe]] Applying bcs1 save-restore MMIOs
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs1 registers
[drm:xe_reg_sr_apply_mmio [xe]] Applying bcs2 save-restore MMIOs
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs2 registers
[drm:xe_reg_sr_apply_mmio [xe]] Applying bcs5 save-restore MMIOs
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs5 registers
[drm:xe_reg_sr_apply_mmio [xe]] Applying bcs6 save-restore MMIOs
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs6 registers
[drm:xe_reg_sr_apply_mmio [xe]] Applying bcs7 save-restore MMIOs
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs7 registers
[drm:xe_reg_sr_apply_mmio [xe]] Applying bcs8 save-restore MMIOs
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs8 registers
[drm:xe_reg_sr_apply_mmio [xe]] Applying ccs0 save-restore MMIOs
[drm:xe_reg_sr_apply_mmio [xe]] REG[0x20e4] = 0x00008000
[drm:xe_reg_sr_apply_mmio [xe]] REG[0xb01c] = 0x00000001
[drm:xe_reg_sr_apply_mmio [xe]] REG[0xe48c] = 0x00000800
[drm:xe_reg_sr_apply_mmio [xe]] REG[0xe7c8] = 0x40000000
...

On a PVC system it should show something like below. Whitelist calls
are still there since they aren't actually empty - driver just doesn't
print each individual entry. This will be fixed in future.

[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs0 registers
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs1 registers
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs2 registers
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs5 registers
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs6 registers
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs7 registers
[drm:xe_reg_sr_apply_whitelist [xe]] Whitelisting bcs8 registers
[drm:xe_reg_sr_apply_mmio [xe]] Applying ccs0 save-restore MMIOs
[drm:xe_reg_sr_apply_mmio [xe]] REG[0x20e4] = 0x00008000
[drm:xe_reg_sr_apply_mmio [xe]] REG[0xb01c] = 0x00000001
[drm:xe_reg_sr_apply_mmio [xe]] REG[0xe48c] = 0x00000800
[drm:xe_reg_sr_apply_mmio [xe]] REG[0xe7c8] = 0x40000000

v2: Only tweak log verbosity, leave the whitelist printout for later
    since decoding the whitelist is more complex.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://lore.kernel.org/r/20230314003012.2600353-3-lucas.demarchi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_reg_sr.c

index b237024..3d041c9 100644 (file)
@@ -167,6 +167,9 @@ void xe_reg_sr_apply_mmio(struct xe_reg_sr *sr, struct xe_gt *gt)
        unsigned long reg;
        int err;
 
+       if (xa_empty(&sr->xa))
+               return;
+
        drm_dbg(&xe->drm, "Applying %s save-restore MMIOs\n", sr->name);
 
        err = xe_force_wake_get(&gt->mmio.fw, XE_FORCEWAKE_ALL);
@@ -194,6 +197,9 @@ void xe_reg_sr_apply_whitelist(struct xe_reg_sr *sr, u32 mmio_base,
        unsigned int slot = 0;
        int err;
 
+       if (xa_empty(&sr->xa))
+               return;
+
        drm_dbg(&xe->drm, "Whitelisting %s registers\n", sr->name);
 
        err = xe_force_wake_get(&gt->mmio.fw, XE_FORCEWAKE_ALL);