mbox series

[00/12] GT-fy the uc code

Message ID 20190710005437.3496-1-daniele.ceraolospurio@intel.com (mailing list archive)
Headers show
Series GT-fy the uc code | expand

Message

Daniele Ceraolo Spurio July 10, 2019, 12:54 a.m. UTC
GuC and HuC are a subunits of the GT HW, so it makes sense for the
relevant structures to be inside intel_gt. This series introduces a new
intel_uc structure under intel_gt and moves the GuC/HuC structures in
there. All the general uc code is then encapsulated, working on intel_uc
instead of i915.

Note that a bit of ugliness is inroduced with the move because we have a
lot of layers (i915->gt.uc.guc.fw). Most of these "deep" accesses are
removed by the later patches in the series, but some of them remain,
mainly in debugfs functions. Follow up updates to make the code more
encapsulated should help cleaning up.

Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>

Chris Wilson (1):
  drm/i915/guc: Remove preemption support for current fw

Daniele Ceraolo Spurio (11):
  drm/i915/guc: simplify guc client
  drm/i915/uc: replace uc init/fini misc
  drm/i915/uc: introduce intel_uc_fw_supported
  drm/i915/guc: move guc irq functions to intel_guc parameter
  drm/i915/guc: unify guc irq handling
  drm/i915/uc: move GuC and HuC files under gt/uc/
  drm/i915/uc: move GuC/HuC inside intel_gt under a new intel_uc
  drm/i915/uc: Move intel functions to intel_uc
  drm/i915/uc: prefer intel_gt over i915 in GuC/HuC paths
  drm/i915/guc: prefer intel_gt in guc interrupt functions
  drm/i915/uc: kill <g,h>uc_to_i915

 drivers/gpu/drm/i915/Makefile                 |  21 +-
 drivers/gpu/drm/i915/Makefile.header-test     |   4 -
 drivers/gpu/drm/i915/gem/i915_gem_context.c   |  17 -
 drivers/gpu/drm/i915/gem/i915_gem_pm.c        |   6 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c     |  13 -
 drivers/gpu/drm/i915/gt/intel_engine_types.h  |   1 -
 drivers/gpu/drm/i915/gt/intel_gt.h            |  15 +
 drivers/gpu/drm/i915/gt/intel_gt_pm.c         |   4 -
 drivers/gpu/drm/i915/gt/intel_gt_types.h      |   6 +
 drivers/gpu/drm/i915/gt/intel_reset.c         |  10 +-
 drivers/gpu/drm/i915/gt/uc/Makefile           |   5 +
 .../gpu/drm/i915/gt/uc/Makefile.header-test   |  16 +
 drivers/gpu/drm/i915/{ => gt/uc}/intel_guc.c  | 144 ++-----
 drivers/gpu/drm/i915/{ => gt/uc}/intel_guc.h  |  17 +-
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_ads.c  |   3 +-
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_ads.h  |   0
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_ct.c   |   0
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_ct.h   |   0
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_fw.c   |  89 +++--
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_fw.h   |   0
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_fwif.h |   0
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_log.c  |  44 ++-
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_log.h  |   0
 .../gpu/drm/i915/{ => gt/uc}/intel_guc_reg.h  |  32 +-
 .../i915/{ => gt/uc}/intel_guc_submission.c   | 358 ++----------------
 .../i915/{ => gt/uc}/intel_guc_submission.h   |   2 -
 drivers/gpu/drm/i915/{ => gt/uc}/intel_huc.c  |  32 +-
 drivers/gpu/drm/i915/{ => gt/uc}/intel_huc.h  |   6 -
 .../gpu/drm/i915/{ => gt/uc}/intel_huc_fw.c   |  12 +-
 .../gpu/drm/i915/{ => gt/uc}/intel_huc_fw.h   |   0
 drivers/gpu/drm/i915/{ => gt/uc}/intel_uc.c   | 237 ++++++------
 drivers/gpu/drm/i915/{ => gt/uc}/intel_uc.h   |  39 +-
 .../gpu/drm/i915/{ => gt/uc}/intel_uc_fw.c    |   4 +-
 .../gpu/drm/i915/{ => gt/uc}/intel_uc_fw.h    |  30 +-
 .../intel_guc.c => gt/uc/selftest_guc.c}      |  45 +--
 drivers/gpu/drm/i915/i915_debugfs.c           |  36 +-
 drivers/gpu/drm/i915/i915_drv.c               |  18 +-
 drivers/gpu/drm/i915/i915_drv.h               |  24 +-
 drivers/gpu/drm/i915/i915_gem.c               |  24 +-
 drivers/gpu/drm/i915/i915_gem_gtt.c           |   8 +-
 drivers/gpu/drm/i915/i915_gem_gtt.h           |   4 +-
 drivers/gpu/drm/i915/i915_gpu_error.c         |  11 +-
 drivers/gpu/drm/i915/i915_gpu_error.h         |   2 +-
 drivers/gpu/drm/i915/i915_irq.c               | 127 ++++---
 drivers/gpu/drm/i915/i915_irq.h               |  13 +-
 drivers/gpu/drm/i915/i915_reg.h               |  10 -
 drivers/gpu/drm/i915/intel_wopcm.c            |   4 +-
 47 files changed, 556 insertions(+), 937 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/uc/Makefile
 create mode 100644 drivers/gpu/drm/i915/gt/uc/Makefile.header-test
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc.c (78%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc.h (92%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_ads.c (98%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_ads.h (100%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_ct.c (100%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_ct.h (100%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_fw.c (78%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_fw.h (100%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_fwif.h (100%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_log.c (92%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_log.h (100%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_reg.h (88%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_submission.c (74%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_guc_submission.h (98%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_huc.c (86%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_huc.h (92%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_huc_fw.c (95%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_huc_fw.h (100%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_uc.c (72%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_uc.h (60%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_uc_fw.c (99%)
 rename drivers/gpu/drm/i915/{ => gt/uc}/intel_uc_fw.h (81%)
 rename drivers/gpu/drm/i915/{selftests/intel_guc.c => gt/uc/selftest_guc.c} (86%)

Comments

Chris Wilson July 10, 2019, 1:02 p.m. UTC | #1
Quoting Daniele Ceraolo Spurio (2019-07-10 01:54:25)
> GuC and HuC are a subunits of the GT HW, so it makes sense for the
> relevant structures to be inside intel_gt. This series introduces a new
> intel_uc structure under intel_gt and moves the GuC/HuC structures in
> there. All the general uc code is then encapsulated, working on intel_uc
> instead of i915.
> 
> Note that a bit of ugliness is inroduced with the move because we have a
> lot of layers (i915->gt.uc.guc.fw). Most of these "deep" accesses are
> removed by the later patches in the series, but some of them remain,
> mainly in debugfs functions. Follow up updates to make the code more
> encapsulated should help cleaning up.

Fwiw, this series convinced me that gt/uc is the right way to structure
it. We just need to fixup the log_wq handling and grab a few acks/reviews
from Michal et al.
-Chris