Skip to content
Permalink
Matthew-Brost/…
Switch branches/tags

Commits on Oct 13, 2021

  1. drm/i915/execlists: Weak parallel submission support for execlists

    A weak implementation of parallel submission (multi-bb execbuf IOCTL) for
    execlists. Doing as little as possible to support this interface for
    execlists - basically just passing submit fences between each request
    generated and virtual engines are not allowed. This is on par with what
    is there for the existing (hopefully soon deprecated) bonding interface.
    
    We perma-pin these execlists contexts to align with GuC implementation.
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  2. drm/i915: Enable multi-bb execbuf

    Enable multi-bb execbuf by enabling the set_parallel extension.
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  3. drm/i915: Update I915_GEM_BUSY IOCTL to understand composite fences

    Parallel submission create composite fences (dma_fence_array) for excl /
    shared slots in objects. The I915_GEM_BUSY IOCTL checks these slots to
    determine the busyness of the object. Prior to patch it only check if
    the fence in the slot was a i915_request. Update the check to understand
    composite fences and correctly report the busyness.
    
    v2:
     (Tvrtko)
      - Remove duplicate BUILD_BUG_ON
    
    Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  4. drm/i915: Make request conflict tracking understand parallel submits

    If an object in the excl or shared slot is a composite fence from a
    parallel submit and the current request in the conflict tracking is from
    the same parallel context there is no need to enforce ordering as the
    ordering is already implicit. Make the request conflict tracking
    understand this by comparing a parallel submit's parent context and
    skipping conflict insertion if the values match.
    
    v2:
     (John Harrison)
      - Reword commit message
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  5. drm/i915/guc: Handle errors in multi-lrc requests

    If an error occurs in the front end when multi-lrc requests are getting
    generated we need to skip these in the backend but we still need to
    emit the breadcrumbs seqno. An issues arises because with multi-lrc
    breadcrumbs there is a handshake between the parent and children to make
    forward progress. If all the requests are not present this handshake
    doesn't work. To work around this, if multi-lrc request has an error we
    skip the handshake but still emit the breadcrumbs seqno.
    
    v2:
     (John Harrison)
      - Add comment explaining the skipping of the handshake logic
      - Fix typos in the commit message
    v3:
     (John Harrison)
      - Fix up some comments about the math to NOP the ring
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  6. drm/i915: Multi-BB execbuf

    Allow multiple batch buffers to be submitted in a single execbuf IOCTL
    after a context has been configured with the 'set_parallel' extension.
    The number batches is implicit based on the contexts configuration.
    
    This is implemented with a series of loops. First a loop is used to find
    all the batches, a loop to pin all the HW contexts, a loop to create all
    the requests, a loop to submit (emit BB start, etc...) all the requests,
    a loop to tie the requests to the VMAs they touch, and finally a loop to
    commit the requests to the backend.
    
    A composite fence is also created for the generated requests to return
    to the user and to stick in dma resv slots.
    
    No behavior from the existing IOCTL should be changed aside from when
    throttling because the ring for a context is full. In this situation,
    i915 will now wait while holding the object locks. This change was done
    because the code is much simpler to wait while holding the locks and we
    believe there isn't a huge benefit of dropping these locks. If this
    proves false we can restructure the code to drop the locks during the
    wait.
    
    IGT: https://patchwork.freedesktop.org/patch/447008/?series=93071&rev=1
    media UMD: intel/media-driver#1252
    
    v2:
     (Matthew Brost)
      - Return proper error value if i915_request_create fails
    v3:
     (John Harrison)
      - Add comment explaining create / add order loops + locking
      - Update commit message explaining different in IOCTL behavior
      - Line wrap some comments
      - eb_add_request returns void
      - Return -EINVAL rather triggering BUG_ON if cmd parser used
     (Checkpatch)
      - Check eb->batch_len[*current_batch]
    v4:
     (CI)
      - Set batch len if passed if via execbuf args
      - Call __i915_request_skip after __i915_request_commit
     (Kernel test robot)
      - Initialize rq to NULL in eb_pin_timeline
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  7. drm/i915/guc: Implement no mid batch preemption for multi-lrc

    For some users of multi-lrc, e.g. split frame, it isn't safe to preempt
    mid BB. To safely enable preemption at the BB boundary, a handshake
    between parent and child is needed, syncing the set of BBs at the
    beginning and end of each batch. This is implemented via custom
    emit_bb_start & emit_fini_breadcrumb functions and enabled by default if
    a context is configured by set parallel extension.
    
    Lastly, this patch updates the process descriptor to the correct size as
    the memory used in the handshake is directly after the process
    descriptor.
    
    v2:
     (John Harrison)
      - Fix a few comments wording
      - Add struture for parent page layout
    v3:
     (Jojhn Harrison)
      - A structure for sync semaphore
      - Use offsetof to calc address
      - Update commit message
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  8. drm/i915/guc: Add basic GuC multi-lrc selftest

    Add very basic (single submission) multi-lrc selftest.
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  9. drm/i915/doc: Update parallel submit doc to point to i915_drm.h

    Update parallel submit doc to point to i915_drm.h
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  10. drm/i915/guc: Connect UAPI to GuC multi-lrc interface

    Introduce 'set parallel submit' extension to connect UAPI to GuC
    multi-lrc interface. Kernel doc in new uAPI should explain it all.
    
    IGT: https://patchwork.freedesktop.org/patch/447008/?series=93071&rev=1
    media UMD: intel/media-driver#1252
    
    v2:
     (Daniel Vetter)
      - Add IGT link and placeholder for media UMD link
    v3:
     (Kernel test robot)
      - Fix warning in unpin engines call
     (John Harrison)
      - Reword a bunch of the kernel doc
    v4:
     (John Harrison)
      - Add comment why perma-pin is done after setting gem context
      - Update some comments / docs for proto contexts
    
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  11. drm/i915/guc: Update debugfs for GuC multi-lrc

    Display the workqueue status in debugfs for GuC contexts that are in
    parent-child relationship.
    
    v2:
     (John Harrison)
      - Output number children in debugfs
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  12. drm/i915/guc: Implement multi-lrc reset

    Update context and full GPU reset to work with multi-lrc. The idea is
    parent context tracks all the active requests inflight for itself and
    its children. The parent context owns the reset replaying / canceling
    requests as needed.
    
    v2:
     (John Harrison)
      - Simply loop in find active request
      - Add comments to find ative request / reset loop
    v3:
     (John Harrison)
      - s/its'/its/g
      - Fix comment when searching for active request
      - Reorder if state in __guc_reset_context
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  13. drm/i915/guc: Insert submit fences between requests in parent-child r…

    …elationship
    
    The GuC must receive requests in the order submitted for contexts in a
    parent-child relationship to function correctly. To ensure this, insert
    a submit fence between the current request and last request submitted
    for requests / contexts in a parent child relationship. This is
    conceptually similar to a single timeline.
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Cc: John Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  14. drm/i915/guc: Implement multi-lrc submission

    Implement multi-lrc submission via a single workqueue entry and single
    H2G. The workqueue entry contains an updated tail value for each
    request, of all the contexts in the multi-lrc submission, and updates
    these values simultaneously. As such, the tasklet and bypass path have
    been updated to coalesce requests into a single submission.
    
    v2:
     (John Harrison)
      - s/wqe/wqi
      - Use FIELD_PREP macros
      - Add GEM_BUG_ONs ensures length fits within field
      - Add comment / white space to intel_guc_write_barrier
     (Kernel test robot)
      - Make need_tasklet a static function
    v3:
     (Docs)
      - A comment for submission_stall_reason
    v4:
     (Kernel test robot)
      - Initialize return value in bypass tasklt submit function
     (John Harrison)
      - Add comment near work queue defs
      - Add BUILD_BUG_ON to ensure WQ_SIZE is a power of 2
      - Update write_barrier comment to talk about work queue
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  15. drm/i915/guc: Implement parallel context pin / unpin functions

    Parallel contexts are perma-pinned by the upper layers which makes the
    backend implementation rather simple. The parent pins the guc_id and
    children increment the parent's pin count on pin to ensure all the
    contexts are unpinned before we disable scheduling with the GuC / or
    deregister the context.
    
    v2:
     (Daniel Vetter)
      - Perma-pin parallel contexts
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  16. drm/i915/guc: Assign contexts in parent-child relationship consecutiv…

    …e guc_ids
    
    Assign contexts in parent-child relationship consecutive guc_ids. This
    is accomplished by partitioning guc_id space between ones that need to
    be consecutive (1/16 available guc_ids) and ones that do not (15/16 of
    available guc_ids). The consecutive search is implemented via the bitmap
    API.
    
    This is a precursor to the full GuC multi-lrc implementation but aligns
    to how GuC mutli-lrc interface is defined - guc_ids must be consecutive
    when using the GuC multi-lrc interface.
    
    v2:
     (Daniel Vetter)
      - Explicitly state why we assign consecutive guc_ids
    v3:
     (John Harrison)
      - Bring back in spin lock
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  17. drm/i915/guc: Ensure GuC schedule operations do not operate on child …

    …contexts
    
    In GuC parent-child contexts the parent context controls the scheduling,
    ensure only the parent does the scheduling operations.
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  18. drm/i915/guc: Add multi-lrc context registration

    Add multi-lrc context registration H2G. In addition a workqueue and
    process descriptor are setup during multi-lrc context registration as
    these data structures are needed for multi-lrc submission.
    
    v2:
     (John Harrison)
      - Move GuC specific fields into sub-struct
      - Clean up WQ defines
      - Add comment explaining math to derive WQ / PD address
    v3:
     (John Harrison)
      - Add PARENT_SCRATCH_SIZE define
      - Update comment explaining multi-lrc register
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  19. drm/i915/guc: Introduce context parent-child relationship

    Introduce context parent-child relationship. Once this relationship is
    created all pinning / unpinning operations are directed to the parent
    context. The parent context is responsible for pinning all of its
    children and itself.
    
    This is a precursor to the full GuC multi-lrc implementation but aligns
    to how GuC mutli-lrc interface is defined - a single H2G is used
    register / deregister all of the contexts simultaneously.
    
    Subsequent patches in the series will implement the pinning / unpinning
    operations for parent / child contexts.
    
    v2:
     (Daniel Vetter)
      - Add kernel doc, add wrapper to access parent to ensure safety
    v3:
     (John Harrison)
      - Fix comment explaing GEM_BUG_ON in to_parent()
      - Make variable names generic (non-GuC specific)
    v4:
     (John Harrison)
      - s/its'/its/g
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  20. drm/i915: Expose logical engine instance to user

    Expose logical engine instance to user via query engine info IOCTL. This
    is required for split-frame workloads as these needs to be placed on
    engines in a logically contiguous order. The logical mapping can change
    based on fusing. Rather than having user have knowledge of the fusing we
    simply just expose the logical mapping with the existing query engine
    info IOCTL.
    
    IGT: https://patchwork.freedesktop.org/patch/445637/?series=92854&rev=1
    media UMD: intel/media-driver#1252
    
    v2:
     (Daniel Vetter)
      - Add IGT link, placeholder for media UMD
    
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  21. drm/i915: Add logical engine mapping

    Add logical engine mapping. This is required for split-frame, as
    workloads need to be placed on engines in a logically contiguous manner.
    
    v2:
     (Daniel Vetter)
      - Add kernel doc for new fields
    v3:
     (Tvrtko)
      - Update comment for new logical_mask field
    v4:
     (John Harrison)
      - Update comment for new logical_mask field
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  22. drm/i915/guc: Don't call switch_to_kernel_context with GuC submission

    Calling switch_to_kernel_context isn't needed if the engine PM reference
    is taken while all user contexts are pinned as if don't have PM ref that
    guarantees that all user contexts scheduling is disabled. By not calling
    switch_to_kernel_context we save on issuing a request to the engine.
    
    v2:
     (Daniel Vetter)
      - Add FIXME comment about pushing switch_to_kernel_context to backend
    v3:
     (John Harrison)
      - Update commit message
      - Fix workding comment
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  23. drm/i915/guc: Take engine PM when a context is pinned with GuC submis…

    …sion
    
    Taking a PM reference to prevent intel_gt_wait_for_idle from short
    circuiting while any user context has scheduling enabled. Returning GT
    idle when it is not can cause all sorts of issues throughout the stack.
    
    v2:
     (Daniel Vetter)
      - Add might_lock annotations to pin / unpin function
    v3:
     (CI)
      - Drop intel_engine_pm_might_put from unpin path as an async put is
        used
    v4:
     (John Harrison)
      - Make intel_engine_pm_might_get/put work with GuC virtual engines
      - Update commit message
    v5:
      - Update commit message again
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  24. drm/i915/guc: Take GT PM ref when deregistering context

    Taking a PM reference to prevent intel_gt_wait_for_idle from short
    circuiting while a deregister context H2G is in flight. To do this must
    issue the deregister H2G from a worker as context can be destroyed from
    an atomic context and taking GT PM ref blows up. Previously we took a
    runtime PM from this atomic context which worked but will stop working
    once runtime pm autosuspend in enabled.
    
    So this patch is two fold, stop intel_gt_wait_for_idle from short
    circuting and fix runtime pm autosuspend.
    
    v2:
     (John Harrison)
      - Split structure changes out in different patch
     (Tvrtko)
      - Don't drop lock in deregister_destroyed_contexts
    v3:
     (John Harrison)
      - Flush destroyed contexts before destroying context reg pool
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021
  25. drm/i915/guc: Move GuC guc_id allocation under submission state sub-s…

    …truct
    
    Move guc_id allocation under submission state sub-struct as a future
    patch will reuse the spin lock as a global submission state lock. Moving
    this into sub-struct makes ownership of fields / lock clear.
    
    v2:
     (Docs)
      - Add comment for submission_state sub-structure
    v3:
     (John Harrison)
      - Fixup a few comments
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
    mbrost05 authored and intel-lab-lkp committed Oct 13, 2021

Commits on Oct 12, 2021

  1. drm/i915/display: remove unused intel-mid.h include

    Nothing from intel-mid.h and this is only available on x86, so remove it
    as we prepare support for other architectures.
    
    Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211007233212.3896460-4-lucas.demarchi@intel.com
    lucasdemarchi committed Oct 12, 2021
  2. Merge drm/drm-next into drm-intel-next

    Need to resync drm-intel-next with TTM and PXP stuff from
    drm-intel-gt-next that is now in drm/drm-next.
    
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    rodrigovivi committed Oct 12, 2021
  3. drm/i915/display: move pin/unpin fb/plane code to a new file.

    This just moves this code out of the i915_display.c into a new
    standalone file.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211012043502.1377715-6-airlied@gmail.com
    airlied authored and jnikula committed Oct 12, 2021
  4. drm/i915/display: refactor initial plane config to a separate file

    This moves this functionality out of intel_display.c to separate
    self-contained file.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211012043502.1377715-5-airlied@gmail.com
    airlied authored and jnikula committed Oct 12, 2021
  5. drm/i915/display: refactor out initial plane config for crtcs

    This just pulls this out into a function so it can be moved to
    another file easier.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211012043502.1377715-4-airlied@gmail.com
    airlied authored and jnikula committed Oct 12, 2021
  6. drm/i915/display: let intel_plane_uses_fence be used from other places.

    I want to refactor some stuff using this so make it shared.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211012043502.1377715-3-airlied@gmail.com
    airlied authored and jnikula committed Oct 12, 2021
  7. drm/i915/display: move plane prepare/cleanup to intel_atomic_plane.c

    Start to refactor more stuff out of intel_display.c. These fit
    better in this file.
    
    This moves the rps boosting code as well as this is the only user of it.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211012043502.1377715-2-airlied@gmail.com
    airlied authored and jnikula committed Oct 12, 2021
  8. drm/i915/dg2: update link training for 128b/132b

    The 128b/132b channel coding link training uses more straightforward TX
    FFE preset values. Reuse voltage tries and max vswing for retry logic.
    
    The delays for 128b/132b are still all wrong, but this is regardless a
    step forward.
    
    v2: Fix UHBR rate checks, use intel_dp_is_uhbr() helper
    
    v3:
    - Rebase
    - Modify intel_dp_adjust_request_changed() and
      intel_dp_link_max_vswing_reached() to take 128b/132b into
      account. (Ville)
    
    v4:
    - Train request printing for TX FFE (Ville)
    - Log 8b/10b vs. 128b/132b (Ville)
    - Add helper for per-lane max vswing / tx ffe (Ville)
    - Name functions with tx_ffe/vswing instead of 128b132b/8b10b
    
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211011182144.22074-2-jani.nikula@intel.com
    jnikula committed Oct 12, 2021
  9. drm/i915/dp: abstract intel_dp_lane_max_vswing_reached()

    Add per-lane abstraction for max vswing reached to make follow-up
    cleaner, as this one reverses the conditions.
    
    v2: both conditions need to be true, reverse (Ville)
    
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211011182144.22074-1-jani.nikula@intel.com
    jnikula committed Oct 12, 2021

Commits on Oct 11, 2021

  1. Merge tag 'drm-intel-gt-next-2021-10-08' of git://anongit.freedesktop…

    ….org/drm/drm-intel into drm-next
    
    UAPI Changes:
    
    - Add uAPI for using PXP protected objects
    
      Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064
    
    - Add PCI IDs and LMEM discovery/placement uAPI for DG1
    
      Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11584
    
    - Disable engine bonding on Gen12+ except TGL, RKL and ADL-S
    
    Cross-subsystem Changes:
    
    - Merges 'tip/locking/wwmutex' branch (core kernel tip)
    - "mei: pxp: export pavp client to me client bus"
    
    Core Changes:
    
    - Update ttm_move_memcpy for async use (Thomas)
    
    Driver Changes:
    
    - Enable GuC submission by default on DG1 (Matt B)
    - Add PXP (Protected Xe Path) support for Gen12 integrated (Daniele,
      Sean, Anshuman)
      See "drm/i915/pxp: add PXP documentation" for details!
    - Remove force_probe protection for ADL-S (Raviteja)
    - Add base support for XeHP/XeHP SDV (Matt R, Stuart, Lucas)
    - Handle DRI_PRIME=1 on Intel igfx + Intel dgfx hybrid graphics setup (Tvrtko)
    - Use Transparent Hugepages when IOMMU is enabled (Tvrtko, Chris)
    - Implement LMEM backup and restore for suspend / resume (Thomas)
    - Report INSTDONE_GEOM values in error state for DG2 (Matt R)
    - Add DG2-specific shadow register table (Matt R)
    - Update Gen11/Gen12/XeHP shadow register tables (Matt R)
    - Maintain backward-compatible nested batch behavior on TGL+ (Matt R)
    - Add new LRI reg offsets for DG2 (Akeem)
    - Initialize unused MOCS entries to device specific values (Ayaz)
    - Track and use the correct UC MOCS index on Gen12 (Ayaz)
    - Add separate MOCS table for Gen12 devices other than TGL/RKL (Ayaz)
    - Simplify the locking and eliminate some RCU usage (Daniel)
    - Add some flushing for the 64K GTT path (Matt A)
    - Mark GPU wedging on driver unregister unrecoverable (Janusz)
    
    - Major rework in the GuC codebase, simplify locking and add docs (Matt B)
    - Add DG1 GuC/HuC firmwares (Daniele, Matt B)
    - Remember to call i915_sw_fence_fini on guc_state.blocked (Matt A)
    - Use "gt" forcewake domain name for error messages instead of "blitter" (Matt R)
    - Drop now duplicate LMEM uAPI RFC kerneldoc section (Daniel)
    - Fix early tracepoints for requests (Matt A)
    - Use locked access to ctx->engines in set_priority (Daniel)
    - Convert gen6/gen7/gen8 read operations to fwtable (Matt R)
    - Drop gen11/gen12 specific mmio write handlers (Matt R)
    - Drop gen11 specific mmio read handlers (Matt R)
    - Use designated initializers for init/exit table (Kees)
    - Fix syncmap memory leak (Matt B)
    - Add pretty printing for buddy allocator state debug (Matt A)
    - Fix potential error pointer dereference in pinned_context() (Dan)
    - Remove IS_ACTIVE macro (Lucas)
    - Static code checker fixes (Nathan)
    - Clean up disabled warnings (Nathan)
    - Increase timeout in i915_gem_contexts selftests 5x for GuC submission (Matt B)
    - Ensure wa_init_finish() is called for ctx workaround list (Matt R)
    - Initialize L3CC table in mocs init (Sreedhar, Ayaz, Ram)
    - Get PM ref before accessing HW register (Vinay)
    - Move __i915_gem_free_object to ttm_bo_destroy (Maarten)
    - Deduplicate frequency dump on debugfs (Lucas)
    - Make wa list per-gt (Venkata)
    - Do not define dummy vma in stack (Venkata)
    - Take pinning into account in __i915_gem_object_is_lmem (Matt B, Thomas)
    - Do not report currently active engine when describing objects (Tvrtko)
    - Fix pdfdocs build error by removing nested grid from GuC docs (Akira)
    - Remove false warning from the rps worker (Tejas)
    - Flush buffer pools on driver remove (Janusz)
    - Fix runtime pm handling in i915_gem_shrink (Maarten)
    - Rework TTM object initialization slightly (Thomas)
    - Use fixed offset for PTEs location (Michal Wa)
    - Verify result from CTB (de)register action and improve error messages (Michal Wa)
    - Fix bug in user proto-context creation that leaked contexts (Matt B)
    
    - Re-use Gen11 forcewake read functions on Gen12 (Matt R)
    - Make shadow tables range-based (Matt R)
    - Ditch the i915_gem_ww_ctx loop member (Thomas, Maarten)
    - Use NULL instead of 0 where appropriate (Ville)
    - Rename pci/debugfs functions to respect file prefix (Jani, Lucas)
    - Drop guc_communication_enabled (Daniele)
    - Selftest fixes (Thomas, Daniel, Matt A, Maarten)
    - Clean up inconsistent indenting (Colin)
    - Use direction definition DMA_BIDIRECTIONAL instead of
      PCI_DMA_BIDIRECTIONAL (Cai)
    - Add "intel_" as prefix in set_mocs_index() (Ayaz)
    
    From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/YWAO80MB2eyToYoy@jlahtine-mobl.ger.corp.intel.com
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    airlied committed Oct 11, 2021
Older