First of all, I'm sorry if this is hitting your inbox twice. I could swear that I had sent this 2 weeks ago, but I couldn't find the lore or patchwork, so let me try again. This series is a double experiment that I would like to get some help. 1. Display - shared display between i915 and xe without a need for the compat-layer. With this registration method with a void * to the device driver we can at least start to get rid of the compat layer and the nasty -Ddrm_i915_private=xe_device And perhaps move from this to a more standalone solution later. So, thoughts? 2. GuC SLPC display metrics. On this I need some help to check the functionality of SLPC, debug GuC and some eyes to see if the place of the display side is the best one. >From what I could see with the debugfs view added in this patch, the shared buffer gets properly updated with the display metrics and that is in sync with the display refresh rate and the fame per second information that I get to see in the screen. However for the workloads that I used here I didn't like the end result. The extra register read in the middle of the display critical areas seems to cause more harm then good for the cases I got. So, with this I need help with guc-debug, reviews, ideas. Thanks in advance, Rodrigo. Rodrigo Vivi (3): drm/i915/display: Introduce intel_display_guc_metrics drm/i915: Add experimental GuC SLPC display metrics drm/xe: Add GuC SLPC Display Metrics drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/display/intel_display.c | 14 +- .../gpu/drm/i915/display/intel_display_core.h | 2 + .../i915/display/intel_display_guc_metrics.c | 153 ++++++++ .../i915/display/intel_display_guc_metrics.h | 26 ++ .../display/intel_display_guc_metrics_types.h | 32 ++ .../gpu/drm/i915/display/intel_display_irq.c | 3 + .../drm/i915/display/skl_universal_plane.c | 3 + drivers/gpu/drm/i915/gt/intel_rps.c | 9 + .../drm/i915/gt/uc/abi/guc_actions_slpc_abi.h | 59 +++ drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 271 +++++++++++++- drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h | 6 + .../gpu/drm/i915/gt/uc/intel_guc_slpc_types.h | 4 + drivers/gpu/drm/i915/i915_params.c | 2 +- drivers/gpu/drm/i915/i915_params.h | 4 +- drivers/gpu/drm/xe/Makefile | 1 + drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h | 59 +++ drivers/gpu/drm/xe/xe_gt_debugfs.c | 11 + drivers/gpu/drm/xe/xe_guc_pc.c | 343 +++++++++++++++++- drivers/gpu/drm/xe/xe_guc_pc.h | 3 + drivers/gpu/drm/xe/xe_guc_pc_types.h | 2 + 21 files changed, 991 insertions(+), 17 deletions(-) create mode 100644 drivers/gpu/drm/i915/display/intel_display_guc_metrics.c create mode 100644 drivers/gpu/drm/i915/display/intel_display_guc_metrics.h create mode 100644 drivers/gpu/drm/i915/display/intel_display_guc_metrics_types.h -- 2.43.2