[Intel-xe] [PATCH 00/18] xe&i915 display integration: add uncore and pcode compat layers

Rodrigo Vivi rodrigo.vivi at kernel.org
Wed May 3 14:02:28 UTC 2023


On Wed, May 03, 2023 at 04:09:47PM +0300, Jani Nikula wrote:
> Add intel_uncore.h and intel_pcode.h compat layers to direct the calls
> in i915 display code properly, without needing to change a lot of call
> sites in i915 display.
> 
> The main trick or hack here is adding a fake uncore member to struct
> xe_device, which lets all the call sites use &i915->uncore as before,
> which we can use in the glue layers to get at the struct xe_device
> pointer.
> 
> The fake uncore is intentionally struct fake_uncore in xe, so you can't
> really start passing around uncore pointers in display code, only do
> &i915->uncore, and it'll be the correct, but different type for each
> driver.
> 
> IMO the trick and the compat layers are cleaner than what we've had
> before, and doesn't force using intel_de_* accessors for non-de
> registers in i915 display code.

Nice clean-up.

Couple comments:

1. I believe the fake uncore you created is better than convert entire xe
to match i915 uncore.

2. Does the fixup! as revert works well on autosquash? if so this is really
neat... I was manually removing the revert and reverted patches on the
clean-up rebases...

> 
> BR,
> Jani.
> 
> 
> Jani Nikula (18):
>   fixup! drm/xe/display: Implement display support
>   fixup! drm/xe/display: Implement display support
>   fixup! drm/xe/display: Implement display support
>   fixup! drm/xe/display: Rename intel_de.h to xe_de.h
>   fixup! drm/xe/display: Implement display support
>   fixup! drm/i915/display: Remaining changes to make xe compile
>   fixup! drm/xe/display: Implement display support
>   fixup! drm/i915/display: Add more macros to remove all direct calls to
>     uncore
>   fixup! drm/i915/display: Remove all uncore mmio accesses in favor of
>     intel_de
>   fixup! drm/i915/display: Remaining changes to make xe compile
>   fixup! drm/xe: Introduce a new DRM driver for Intel GPUs
>   fixup! drm/xe/display: Implement display support
>   fixup! drm/i915/display: Remaining changes to make xe compile
>   fixup! drm/i915/display: Remaining changes to make xe compile
>   fixup! drm/xe/display: Implement display support
>   fixup! drm/xe/display: Implement display support
>   fixup! drm/xe/display: Implement display support
>   fixup! drm/xe/display: Implement display support
> 
>  drivers/gpu/drm/i915/display/hsw_ips.c        |   7 +-
>  drivers/gpu/drm/i915/display/intel_bios.c     |  19 +-
>  drivers/gpu/drm/i915/display/intel_bw.c       |  34 ++--
>  drivers/gpu/drm/i915/display/intel_cdclk.c    |  45 ++---
>  drivers/gpu/drm/i915/display/intel_de.h       |  54 ------
>  drivers/gpu/drm/i915/display/intel_display.c  |   1 +
>  .../drm/i915/display/intel_display_power.c    |   3 +-
>  .../i915/display/intel_display_power_well.c   |   7 +-
>  drivers/gpu/drm/i915/display/intel_dpio_phy.c |   9 +-
>  drivers/gpu/drm/i915/display/intel_hdcp.c     |   9 +-
>  drivers/gpu/drm/i915/display/skl_watermark.c  |  23 +--
>  .../gpu/drm/xe/compat-i915-headers/i915_drv.h |   1 +
>  .../drm/xe/compat-i915-headers/intel_pcode.h  |  42 +++++
>  .../drm/xe/compat-i915-headers/intel_uncore.h |  99 +++++++++++
>  drivers/gpu/drm/xe/display/ext/i915_irq.c     | 134 +++++++-------
>  .../drm/xe/display/ext/intel_clock_gating.c   |   1 +
>  .../drm/xe/display/ext/intel_device_info.c    |   1 +
>  drivers/gpu/drm/xe/display/ext/intel_dram.c   |   3 +-
>  drivers/gpu/drm/xe/display/xe_de.h            | 163 ------------------
>  drivers/gpu/drm/xe/xe_device_types.h          |   4 +
>  drivers/gpu/drm/xe/xe_display.c               |   3 +
>  drivers/gpu/drm/xe/xe_mmio.h                  |   8 +
>  22 files changed, 307 insertions(+), 363 deletions(-)
>  create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/intel_pcode.h
>  create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
>  delete mode 100644 drivers/gpu/drm/xe/display/xe_de.h
> 
> -- 
> 2.39.2
> 


More information about the Intel-xe mailing list