[Intel-gfx] [PATCH v3 0/7] drm/i915/guc: updates to GuC doorbell handling

Dave Gordon david.s.gordon at intel.com
Mon Jun 13 16:57:27 UTC 2016


Various GuC (doorbell) related patches, some trivial. The bulk of the
changes are in [patch 5/7], but it's mostly just reorganisation of
existing code; and [patch 6/7] is just a followup to that, kept as a
separate change for reasons of clarity.  The new functionality is
implemented in a single new function in [patch 7/7].

Background, from v1 of this patchset:

The Linux hibernate/resume sequence involves booting one kernel, and
then replacing(!) its in-memory image with that of the previously
hibernated system.  This can lead to inconsistencies in the state of
the hardware, in particular where a driver does not or cannot reset
it to a well-defined initial state during resume.

For i915, the issue is that the doorbell hardware is not reset when
the GuC is reset; also, the driver *cannot* directly reprogram it:
only the GuC can do that. So this set of patches first reorganises
the doorbell handling, and then (in the last patch of the set)
ensures that the doorbell hardware is fully (re-)initialised when
the GuC is (re-)loaded.

v2:
  Patches reorganised (split), with longer commit message

v3:
  Rebased, patch [6/7] inserted into sequence

Dave Gordon (7):
  drm/i915/guc: add doorbell map to debugfs/i915_guc_info
  drm/i915/guc: prefer __set/clear_bit() to bitmap_set/clear()
  drm/i915/guc: remove writes to GEN8_DRBREG registers
  drm/i915/guc: move guc_ring_doorbell() nearer to callsite
  drm/i915/guc: refactor doorbell management code
  drm/i915/guc: replace assign_doorbell() with
    select_doorbell_register()
  drm/i915/guc: (re)initialise doorbell h/w when enabling GuC submission

 drivers/gpu/drm/i915/i915_debugfs.c        |   4 +
 drivers/gpu/drm/i915/i915_guc_submission.c | 301 +++++++++++++++++------------
 2 files changed, 179 insertions(+), 126 deletions(-)

-- 
1.9.1



More information about the Intel-gfx mailing list