From patchwork Fri Nov 1 10:47:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Joonas Lahtinen X-Patchwork-Id: 11222889 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 49B7914DB for ; Fri, 1 Nov 2019 10:47:31 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 314E92086D for ; Fri, 1 Nov 2019 10:47:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 314E92086D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CC47A6F7D9; Fri, 1 Nov 2019 10:47:27 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id D721C6F7CD; Fri, 1 Nov 2019 10:47:25 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Nov 2019 03:47:25 -0700 X-IronPort-AV: E=Sophos;i="5.68,254,1569308400"; d="scan'208";a="194628400" Received: from jlahtine-desk.ger.corp.intel.com (HELO localhost) ([10.251.80.148]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Nov 2019 03:47:21 -0700 Date: Fri, 1 Nov 2019 12:47:18 +0200 From: Joonas Lahtinen To: Dave Airlie , Daniel Vetter Subject: [PULL] drm-intel-next Message-ID: <20191101104718.GA14323@jlahtine-desk.ger.corp.intel.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.12.1 (2019-06-15) X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dim-tools@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Rodrigo Vivi , Sean Paul , intel-gfx@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi Dave & Daniel, Here goes the final feature pull request for 5.5. Adding a new uAPI to support cleanup of long running workloads when process is killed. Adds fake lmem region code under DRM_I915_UNSTABLE Kconfig protection to make iGFX behave like local memory device. For testing non-mappable GGTT behavior and running kernel LMEM selftests. Still plenty of Tigerlake support patches, including perf support. Adds HuC firmware for TGL. Adds a couple of new PCH-CPU combos, SPT-AML CNL-CML. Adds support for half float framebuffers, fix for Bugzilla #112084: VGA monitor not working. Adds prep code for LMEM and is_dgfx flag to device info for upcoming platforms. Kconfig configurable timeouts for pre-emption, reset and timeslicing. We've cleaned up all i915 kerneldoc warnings and our CI will report any new additions going forward. Regards, Joonas drm-intel-next-2019-11-01-1: Driver Changes: - Check against i915_selftest only under CONFIG_SELFTEST (Chris) - Refine occupancy test in kill_context() (Chris) - Start kthreads before stopping (Chris) drm-intel-next-2019-11-01: UAPI Changes: - Make context persistence optional Allow userspace to tie the context lifetime to FD lifetime, effectively allowing Ctrl-C killing of a process to also clean up the hardware immediately. Compute changes: https://github.com/intel/compute-runtime/pull/228 The compute driver is shipping in Ubuntu. uAPI acked by Mesa folks. - Put future HW and their uAPIs under STAGING & BROKEN Introduces DRM_I915_UNSTABLE Kconfig menu for working on the new uAPI for future HW in upstream. We already disable driver loading by default the platform is deemed ready. This is a second level of protection based on compile time switch (STAGING & BROKEN). - Under DRM_I915_UNSTABLE: Add the fake lmem region on iGFX Fake local memory region on integrated GPU through cmdline: memmap=2G$16G i915.fake_lmem_start=0x400000000 Currently allows testing non-mappable GGTT behavior and running kernel selftest for local memory. Driver Changes: - Fix Bugzilla #112084: VGA external monitor not working (Ville) - Add support for half float framebuffers (Ville) - Add perf support on TGL (Lionel) - Replace hangcheck by heartbeats (Chris) - Allow SPT PCH on all AML devices (James) - Add new CNL PCH for CML platform (Imre) - Allow 100 ms (Kconfig) for workloads to exit before reset (Chris, Jon, Joonas) - Forcibly pre-empt a context after 100 ms (Kconfig) of delay (Chris) - Make timeslice duration Kconfig configurable (Chris) - Whitelist PS_(DEPTH|INVOCATION)_COUNT for Tigerlake (Tapani) - Support creating LMEM objects in kernel (Matt A) - Adjust the location of RING_MI_MODE in the context image for TGL (Chris) - Handle AUX interrupts for TC ports (Matt R) - Add support for devices without mappable GGTT aperture (Daniele) - Rename "inject_load_failure" module parameter to "inject_probe_failure" (Janusz) - Handle fused off HDCP, FBC, DMC and DSC (Jose) - Add support to one DP-MST stream on Tigerlake (Lucas) - Add HuC firmware (and GuC) for TGL (Daniele) - Allow ICL+ DSI on any pipe (Ville) - Check some transcoder timing minimum limits (Ville) - Don't set queue_priority_hint if we don't kick the submission (Chris) - Introduce barrier pulses along engines to flush idle/in-flight requests (Chris) - Drop assertion that ce->pin_mutex guards state updates (Chris) - Cancel banned contexts on schedule-out (Chris) - Cancel contexts when hangchecking is disabled (Chris) - Catch GTT fault errors for gen11+ planes (Matt R) - Print in debugfs if PSR is not enabled because of sink (Jose) - Do not set MOCS control values on dgfx (Lucas) - Setup io-mapping for LMEM (Abdiel) - Support kernel mapping of LMEM objects (Abdiel) - Add LMEM selftests (Matt A) - Initialise PMU spinlock before registering (Chris) - Clear DKL_TX_PMD_LANE_SUS before program TC voltage swing (Jose) - Flip interpretation of ips fmin/fmax to max rps (Chris) - Add VBT compression parameter block definition (Jani) - Limit the blitter sizes to ensure low preemption latency (Chris) - Fixup block_size rounding on BLT (Matt A) - Don't try to place HWS in non-existing mappable region (Michal Wa) - Don't allocate the ring in stolen if we lack aperture (Matt A) - Add AUX B & C to DC_OFF_POWER_DOMAINS for Tigerlake (Matt R) - Avoid HPD poll detect triggering a new detect cycle (Imre) - Document the userspace fail with possible_crtcs (Ville) - Drop lrc header page now unused by GuC (Daniele) - Do not switch aux to TBT mode for non-TC ports (Jose) - Restructure code to avoid depending on i915 but smaller structs (Chris, Tvrtko, Andi) - Remove pm park/unpark notifications (Chris) - Avoid lockdep cross-contamination between object types (Chris) - Restructure DSC code (Jani) - Fix dead locking in early workload shadow (Zhenyu) - Split the legacy submission backend from the common CS ring buffer (Chris) - Move intel_engine_context_in/out into intel_lrc.c (Tvrtko) - Describe perf/wakeref structure members in documentation (Anna) - Update renamed header files names in documentation (Anna) - Add debugs to distingiush a cd2x update from a full cdclk pll update (Ville) - Rework atomic global state locking (Ville) - Allow planes to declare their minimum acceptable cdclk (Ville) - Eliminate skl_check_pipe_max_pixel_rate() and simplify skl_max_scale() (Ville) - Making loglevel of PSR2/SU logs same (Ap) - Capture aux page table error register (Lionel) - Add is_dgfx to device info (Jose) - Split gen11_irq_handler to make it shareable (Lucas) - Encapsulate kconfig constant values inside boolean predicates (Chris) - Split memory_region initialisation into its own file (Chris) - Use _PICK() for CHICKEN_TRANS() and add CHICKEN_TRANS_D (Ville) - Add perf helper macros for comparing with whitelisted registers (Umesh) - Fix i915_inject_load_error() name to read *_probe_* (Janusz) - Drop unused AUX register offsets (Matt R) - Provide more information on DP AUX failures (Matt R) - Add GAM/SFC instdone to error state (Mika) - Always track callers to intel_rps_mark_interactive() (Chris) - Nuke 'mode' argument to intel_get_load_detect_pipe() (Ville) - Simplify LVDS crtc_mask and pipe_mask setup (Ville) - Stop frobbing crtc->base.mode (Ville) - Do s/crtc_mask/pipe_mask/ (Ville) - Split detaching and removing the vma (Chris) - Selftest improvements (Chris, Tvrtko, Mika, Matt A, Lionel) - GuC code improvements (Rob, Andi, Daniele) The following changes since commit ce53908bba6fa6e905d8fe81da4591d3e7a65878: drm/i915: Update DRIVER_DATE to 20191021 (2019-10-21 12:56:07 +0300) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-next-2019-11-01-1 for you to fetch changes up to 1883e2999f045e1fd6f76a7f30288a5312085289: drm/i915: Update DRIVER_DATE to 20191101 (2019-11-01 12:41:13 +0200) ---------------------------------------------------------------- Driver Changes: - Check against i915_selftest only under CONFIG_SELFTEST (Chris) - Refine occupancy test in kill_context() (Chris) - Start kthreads before stopping (Chris) ---------------------------------------------------------------- Abdiel Janulgue (2): drm/i915: setup io-mapping for LMEM drm/i915/lmem: support kernel mapping Andi Shyti (2): drm/i915: Extract GT render power state management drm/i915: Extract the GuC interrupt handlers Anna Karas (4): drm/i915/perf: Describe structure members in documentation doc: Update header files names drm/i915: Describe structure member in documentation drm/i915/tgl: Fix doc not corresponding to code Ap Kamal (1): drm/i915: Making loglevel of PSR2/SU logs same. Chris Wilson (52): drm/i915: Don't set queue_priority_hint if we don't kick the submission drm/i915/selftests: Use all physical engines for i915_active drm/i915/gt: Introduce barrier pulses along engines drm/i915: Lift i915_vma_parked() onto the gt drm/i915: Remove pm park/unpark notifications drm/i915/selftests: Set vm->gt backpointer for mock_ppgtt drm/i915/selftests: Make the mman object busy everywhere drm/i915: Drop assertion that ce->pin_mutex guards state updates drm/i915/gem: Distinguish each object type drm/i915: Teach record_defaults to operate on the intel_gt drm/i915/selftests: Teach switch_to_context() to use the context drm/i915/selftests: Move uncore fw selftests to operate on intel_gt drm/i915/selftests: Synchronize checking active status with retirement drm/i915/selftests: Release ctx->engine_mutex after iteration drm/i915/gt: Try to more gracefully quiesce the system before resets drm/i915/execlists: Force preemption drm/i915/execlists: Cancel banned contexts on schedule-out drm/i915/gem: Cancel contexts when hangchecking is disabled drm/i915/gt: Replace hangcheck by heartbeats drm/i915/selftests: Flush interrupts before disabling tasklets drm/i915/selftests: Flush any i915_active callback work as well drm/i915/gt: Split intel_ring_submission drm/i915/selftests: Tweak the default subtest runtime drm/i915/selftests: Force ordering of context switches drm/i915/pmu: Initialise the spinlock before registering drm/i915: Encapsulate kconfig constant values inside boolean predicates drm/i915/tgl: Adjust the location of RING_MI_MODE in the context image drm/i915: Split memory_region initialisation into its own file drm/i915: Put future HW and their uAPIs under STAGING & BROKEN drm/i915/rps: Flip interpretation of ips fmin/fmax to max rps drm/i915/selftests: Measure basic throughput of blit routines drm/i915/selftests: Drop global engine lookup for gt selftests drm/i915/selftests: Check all blitter engines for client blt drm/i915/selftests: Use a random engine for GEM coherency tests drm/i915/gt: Tidy up rps irq handler to use intel_gt drm/i915/selftests: Select a random engine for testing memory regions drm/i915/selftests: Exercise adjusting rpcs over all render-class engines drm/i915/selftests: Check a few more fixed locations within the context image drm/i915/execlists: Simply walk back along request timeline on reset drm/i915/selftests: Initialise err in case there are no engines! drm/i915/selftests: Initialise ret drm/i915/display: Mark conn as initialised by iterator drm/i915/gem: Limit the blitter sizes to ensure low preemption latency drm/i915/gt: Make timeslice duration configurable drm/i915/gem: Make context persistence optional drm/i915/gt: Always track callers to intel_rps_mark_interactive() drm/i915/selftests: Assert that the idle_pulse is sent drm/i915/selftests: Pretty print the i915_active drm/i915: Split detaching and removing the vma drm/i915/gem: Refine occupancy test in kill_context() drm/i915/lmem: Check against i915_selftest only under CONFIG_SELFTEST drm/i915/selftests: Start kthreads before stopping Daniele Ceraolo Spurio (7): drm/i915: define i915_ggtt_has_aperture drm/i915: do not map aperture if it is not available. drm/i915: set num_fence_regs to 0 if there is no aperture drm/i915: error capture with no ggtt slot drm/i915/uc: define GuC and HuC binaries for TGL drm/i915: drop lrc header page drm/i915/guc: drop guc shared area Imre Deak (2): drm/i915: Add new CNL PCH ID seen on a CML platform drm/i915: Avoid HPD poll detect triggering a new detect cycle James Ausmus (1): drm/i915/aml: Allow SPT PCH for all AML devices Jani Nikula (3): drm/i915/dsc: rename crtc state dsc_params member to dsc drm/i915/dsc: move crtc state dp_dsc_cfg member under dsc as config drm/i915/bios: add compression parameter block definition Janusz Krzysztofik (2): drm/i915: Fix i915_inject_load_error() name to read *_probe_* drm/i915: Rename "inject_load_failure" module parameter Joonas Lahtinen (2): drm/i915: Update DRIVER_DATE to 20191101 drm/i915: Update DRIVER_DATE to 20191101 José Roberto de Souza (9): drm/i915/display/psr: Print in debugfs if PSR is not enabled because of sink drm/i915: Add is_dgfx to device info drm/i915/tc: Clear DKL_TX_PMD_LANE_SUS before program voltage swing drm/i915: Add two spaces before the SKL_DFSM registers drm/i915/display: Handle fused off HDCP drm/i915/display: Check if FBC is fused off drm/i915/display/icl+: Check if DMC is fused off drm/i915/display/cnl+: Handle fused off DSC drm/i915/dp: Do not switch aux to TBT mode for non-TC ports Lionel Landwerlin (3): drm/i915: capture aux page table error register drm/i915/tgl: Add perf support on TGL drm/i915/perf: ensure selftests select valid format Lucas De Marchi (3): drm/i915: do not set MOCS control values on dgfx drm/i915: split gen11_irq_handler to make it shareable drm/i915/tgl: add support to one DP-MST stream Matt Roper (5): drm/i915: Catch GTT fault errors for gen11+ planes drm/i915/tgl: Handle AUX interrupts for TC ports drm/i915: Drop unused AUX register offsets drm/i915/tgl: Add AUX B & C to DC_OFF_POWER_DOMAINS drm/i915: Provide more information on DP AUX failures Matthew Auld (10): drm/i915: support creating LMEM objects drm/i915/selftests: add write-dword test for LMEM drm/i915/selftests: extend coverage to include LMEM huge-pages drm/i915/selftests: prefer random sizes for the huge-GTT-page smoke tests drm/i915/selftests: add sanity selftest for huge-GTT-pages drm/i915/selftests/blt: add some kthreads into the mix drm/i915/blt: fixup block_size rounding drm/i915: don't allocate the ring in stolen if we lack aperture drm/i915/selftests: check for missing aperture drm/i915/lmem: add the fake lmem region Michal Wajdeczko (2): drm/i915/execlists: Use vfunc to check engine submission mode drm/i915: Don't try to place HWS in non-existing mappable region Mika Kuoppala (3): drm/i915: Remove nonpriv flags when srm/lrm drm/i915/tgl: Add SFC instdone to error state drm/i915/tgl: Add gam instdone Robert M. Fosha (2): drm/i915/guc: Enable guc logging on guc log relay write drm/i915/guc: Update H2G enable logging action definition Stuart Summers (1): drm/i915: add new gen12 dgfx platform macro Tapani Pälli (1): drm/i915/tgl: whitelist PS_(DEPTH|INVOCATION)_COUNT Tvrtko Ursulin (13): drm/i915: Pass intel_gt to intel_engines_init_mmio drm/i915: Pass intel_gt to intel_setup_engine_capabilities drm/i915: Pass intel_gt to intel_engines_cleanup drm/i915: Pass intel_gt to intel_engines_setup drm/i915: Pass intel_gt to intel_engines_init drm/i915: Pass intel_gt to intel_engines_verify_workarounds drm/i915: Split drop caches into GT and i915 parts drm/i915/selftests: Convert eviction selftests to gt/ggtt drm/i915/selftests: Use GT engines in mock_gem_device drm/i915/selftests: Use GT engines in igt_live_test drm/i915/selftests: Use for_each_uabi_engine in contex selftests drm/i915: Convert PAT setup to uncore mmio drm/i915: Move intel_engine_context_in/out into intel_lrc.c Umesh Nerlige Ramappa (1): drm/i915/perf: Add helper macros for comparing with whitelisted registers Ville Syrjälä (22): drm/i915: Check some transcoder timing minimum limits drm/i915: Add debugs to distingiush a cd2x update from a full cdclk pll update drm/i915: Rework global state locking drm/i915: Move check_digital_port_conflicts() earier drm/i915: Allow planes to declare their minimum acceptable cdclk drm/i915: Eliminate skl_check_pipe_max_pixel_rate() drm/i915: Simplify skl_max_scale() drm/i915: Add support for half float framebuffers for skl+ drm/i915: Add support for half float framebuffers for gen4+ primary planes drm/i915: Add support for half float framebuffers for ivb+ sprites drm/i915: Add support for half float framebuffers on snb sprites drm/i915: Fix PCH reference clock for FDI on HSW/BDW drm/i915: Use _PICK() for CHICKEN_TRANS() drm/i915: Add CHICKEN_TRANS_D drm/i915: Fix i845/i865 cursor width drm/i915: Nuke 'mode' argument to intel_get_load_detect_pipe() drm/i915: Stop frobbing crtc->base.mode drm/i915: Simplify LVDS crtc_mask setup drm/i915: s/crtc_mask/pipe_mask/ drm/i915: Allow ICL+ DSI on any pipe drm/i915: Simplify pipe_mask setup even further drm/i915/mst: Document the userspace fail with possible_crtcs Zhenyu Wang (1): drm/i915/gvt: fix dead locking in early workload shadow Documentation/gpu/i915.rst | 6 +- drivers/gpu/drm/i915/Kconfig | 6 + drivers/gpu/drm/i915/Kconfig.debug | 1 + drivers/gpu/drm/i915/Kconfig.profile | 49 + drivers/gpu/drm/i915/Kconfig.unstable | 29 + drivers/gpu/drm/i915/Makefile | 15 +- drivers/gpu/drm/i915/display/icl_dsi.c | 2 +- drivers/gpu/drm/i915/display/intel_atomic.c | 44 + drivers/gpu/drm/i915/display/intel_atomic.h | 5 + drivers/gpu/drm/i915/display/intel_atomic_plane.c | 39 + drivers/gpu/drm/i915/display/intel_atomic_plane.h | 2 + drivers/gpu/drm/i915/display/intel_audio.c | 10 +- drivers/gpu/drm/i915/display/intel_cdclk.c | 123 +- drivers/gpu/drm/i915/display/intel_crt.c | 13 +- drivers/gpu/drm/i915/display/intel_ddi.c | 25 +- drivers/gpu/drm/i915/display/intel_display.c | 389 +++- drivers/gpu/drm/i915/display/intel_display.h | 3 - drivers/gpu/drm/i915/display/intel_display_power.c | 2 + drivers/gpu/drm/i915/display/intel_display_types.h | 20 +- drivers/gpu/drm/i915/display/intel_dp.c | 59 +- drivers/gpu/drm/i915/display/intel_dp_mst.c | 13 +- drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 15 + drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 9 +- drivers/gpu/drm/i915/display/intel_dvo.c | 2 +- drivers/gpu/drm/i915/display/intel_hdcp.c | 2 +- drivers/gpu/drm/i915/display/intel_hdmi.c | 12 +- drivers/gpu/drm/i915/display/intel_lvds.c | 8 +- drivers/gpu/drm/i915/display/intel_overlay.c | 1 + drivers/gpu/drm/i915/display/intel_psr.c | 28 +- drivers/gpu/drm/i915/display/intel_sdvo.c | 2 +- drivers/gpu/drm/i915/display/intel_sprite.c | 428 +++- drivers/gpu/drm/i915/display/intel_sprite.h | 7 + drivers/gpu/drm/i915/display/intel_tv.c | 4 +- drivers/gpu/drm/i915/display/intel_vbt_defs.h | 52 + drivers/gpu/drm/i915/display/intel_vdsc.c | 74 +- drivers/gpu/drm/i915/display/vlv_dsi.c | 6 +- drivers/gpu/drm/i915/gem/i915_gem_context.c | 210 +- drivers/gpu/drm/i915/gem/i915_gem_context.h | 15 + drivers/gpu/drm/i915/gem/i915_gem_context_types.h | 1 + drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 3 +- drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 1 + drivers/gpu/drm/i915/gem/i915_gem_internal.c | 3 +- drivers/gpu/drm/i915/gem/i915_gem_lmem.c | 99 + drivers/gpu/drm/i915/gem/i915_gem_lmem.h | 37 + drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_object.c | 5 +- drivers/gpu/drm/i915/gem/i915_gem_object.h | 4 +- drivers/gpu/drm/i915/gem/i915_gem_object_blt.c | 9 +- drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 9 +- drivers/gpu/drm/i915/gem/i915_gem_pages.c | 41 +- drivers/gpu/drm/i915/gem/i915_gem_pm.c | 35 +- drivers/gpu/drm/i915/gem/i915_gem_pm.h | 3 - drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 3 +- drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 3 +- drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 3 +- .../gpu/drm/i915/gem/selftests/huge_gem_object.c | 3 +- drivers/gpu/drm/i915/gem/selftests/huge_pages.c | 319 ++- .../drm/i915/gem/selftests/i915_gem_client_blt.c | 30 +- .../drm/i915/gem/selftests/i915_gem_coherency.c | 174 +- .../gpu/drm/i915/gem/selftests/i915_gem_context.c | 178 +- drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 34 +- .../drm/i915/gem/selftests/i915_gem_object_blt.c | 350 +++- drivers/gpu/drm/i915/gem/selftests/mock_context.c | 2 + drivers/gpu/drm/i915/gt/intel_context.c | 1 + drivers/gpu/drm/i915/gt/intel_context.h | 1 + drivers/gpu/drm/i915/gt/intel_engine.h | 227 +-- drivers/gpu/drm/i915/gt/intel_engine_cs.c | 88 +- drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 234 +++ drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h | 23 + drivers/gpu/drm/i915/gt/intel_engine_pm.c | 8 +- drivers/gpu/drm/i915/gt/intel_engine_types.h | 55 +- drivers/gpu/drm/i915/gt/intel_gt.c | 16 +- drivers/gpu/drm/i915/gt/intel_gt.h | 4 - drivers/gpu/drm/i915/gt/intel_gt_irq.c | 5 +- drivers/gpu/drm/i915/gt/intel_gt_pm.c | 42 +- drivers/gpu/drm/i915/gt/intel_gt_pm.h | 6 - drivers/gpu/drm/i915/gt/intel_gt_types.h | 13 +- drivers/gpu/drm/i915/gt/intel_hangcheck.c | 361 ---- drivers/gpu/drm/i915/gt/intel_llc.c | 2 +- drivers/gpu/drm/i915/gt/intel_lrc.c | 382 +++- drivers/gpu/drm/i915/gt/intel_lrc.h | 27 +- drivers/gpu/drm/i915/gt/intel_mocs.c | 7 + drivers/gpu/drm/i915/gt/intel_renderstate.c | 1 + drivers/gpu/drm/i915/gt/intel_reset.c | 3 +- drivers/gpu/drm/i915/gt/intel_ring.c | 323 +++ drivers/gpu/drm/i915/gt/intel_ring.h | 131 ++ ...{intel_ringbuffer.c => intel_ring_submission.c} | 309 +-- drivers/gpu/drm/i915/gt/intel_ring_types.h | 51 + drivers/gpu/drm/i915/gt/intel_rps.c | 1872 +++++++++++++++++ drivers/gpu/drm/i915/gt/intel_rps.h | 38 + drivers/gpu/drm/i915/gt/intel_rps_types.h | 93 + drivers/gpu/drm/i915/gt/intel_timeline.c | 6 +- drivers/gpu/drm/i915/gt/intel_workarounds.c | 21 + drivers/gpu/drm/i915/gt/mock_engine.c | 1 + drivers/gpu/drm/i915/gt/selftest_context.c | 3 - .../gpu/drm/i915/gt/selftest_engine_heartbeat.c | 350 ++++ drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 28 +- drivers/gpu/drm/i915/gt/selftest_llc.c | 7 +- drivers/gpu/drm/i915/gt/selftest_lrc.c | 536 ++++- drivers/gpu/drm/i915/gt/selftest_reset.c | 2 +- drivers/gpu/drm/i915/gt/selftest_timeline.c | 1 + drivers/gpu/drm/i915/gt/selftest_workarounds.c | 10 +- drivers/gpu/drm/i915/gt/uc/intel_guc.c | 139 +- drivers/gpu/drm/i915/gt/uc/intel_guc.h | 2 - drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 53 +- drivers/gpu/drm/i915/gt/uc/intel_guc_log.h | 4 +- drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 9 +- drivers/gpu/drm/i915/gt/uc/intel_huc.c | 4 +- drivers/gpu/drm/i915/gt/uc/intel_uc.c | 6 +- drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 25 +- drivers/gpu/drm/i915/gvt/cmd_parser.c | 2 + drivers/gpu/drm/i915/gvt/dmabuf.c | 3 +- drivers/gpu/drm/i915/gvt/handlers.c | 17 +- drivers/gpu/drm/i915/gvt/mmio_context.c | 1 + drivers/gpu/drm/i915/gvt/scheduler.c | 7 +- drivers/gpu/drm/i915/i915_active.c | 2 + drivers/gpu/drm/i915/i915_active.h | 2 + drivers/gpu/drm/i915/i915_debugfs.c | 214 +- drivers/gpu/drm/i915/i915_drv.c | 42 +- drivers/gpu/drm/i915/i915_drv.h | 121 +- drivers/gpu/drm/i915/i915_gem.c | 36 +- drivers/gpu/drm/i915/i915_gem.h | 14 - drivers/gpu/drm/i915/i915_gem_fence_reg.c | 6 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 215 +- drivers/gpu/drm/i915/i915_gem_gtt.h | 5 + drivers/gpu/drm/i915/i915_gpu_error.c | 124 +- drivers/gpu/drm/i915/i915_gpu_error.h | 5 +- drivers/gpu/drm/i915/i915_irq.c | 485 +---- drivers/gpu/drm/i915/i915_irq.h | 12 - drivers/gpu/drm/i915/i915_params.c | 9 +- drivers/gpu/drm/i915/i915_params.h | 5 +- drivers/gpu/drm/i915/i915_pci.c | 7 + drivers/gpu/drm/i915/i915_perf.c | 417 +++- drivers/gpu/drm/i915/i915_perf_types.h | 31 +- drivers/gpu/drm/i915/i915_pmu.c | 47 +- drivers/gpu/drm/i915/i915_priolist_types.h | 7 + drivers/gpu/drm/i915/i915_reg.h | 206 +- drivers/gpu/drm/i915/i915_request.c | 10 +- drivers/gpu/drm/i915/i915_scheduler.c | 37 +- drivers/gpu/drm/i915/i915_sysfs.c | 74 +- drivers/gpu/drm/i915/i915_utils.c | 43 +- drivers/gpu/drm/i915/i915_utils.h | 34 +- drivers/gpu/drm/i915/i915_vma.c | 69 +- drivers/gpu/drm/i915/i915_vma.h | 2 +- drivers/gpu/drm/i915/intel_device_info.c | 13 + drivers/gpu/drm/i915/intel_device_info.h | 3 + drivers/gpu/drm/i915/intel_memory_region.c | 59 + drivers/gpu/drm/i915/intel_memory_region.h | 9 + drivers/gpu/drm/i915/intel_pch.c | 4 +- drivers/gpu/drm/i915/intel_pch.h | 1 + drivers/gpu/drm/i915/intel_pm.c | 2126 ++------------------ drivers/gpu/drm/i915/intel_pm.h | 24 - drivers/gpu/drm/i915/intel_region_lmem.c | 132 ++ drivers/gpu/drm/i915/intel_region_lmem.h | 16 + drivers/gpu/drm/i915/oa/i915_oa_tgl.c | 121 ++ drivers/gpu/drm/i915/oa/i915_oa_tgl.h | 16 + drivers/gpu/drm/i915/selftests/i915_active.c | 48 +- drivers/gpu/drm/i915/selftests/i915_gem.c | 33 +- drivers/gpu/drm/i915/selftests/i915_gem_evict.c | 100 +- drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 6 +- .../gpu/drm/i915/selftests/i915_live_selftests.h | 2 + drivers/gpu/drm/i915/selftests/i915_perf.c | 3 +- drivers/gpu/drm/i915/selftests/i915_request.c | 4 + drivers/gpu/drm/i915/selftests/i915_selftest.c | 15 +- drivers/gpu/drm/i915/selftests/igt_live_test.c | 7 +- .../gpu/drm/i915/selftests/intel_memory_region.c | 342 ++++ drivers/gpu/drm/i915/selftests/intel_uncore.c | 54 +- drivers/gpu/drm/i915/selftests/mock_gem_device.c | 18 +- drivers/gpu/drm/i915/selftests/mock_gtt.c | 1 + drivers/gpu/drm/i915/selftests/mock_region.c | 3 +- include/uapi/drm/i915_drm.h | 15 + 172 files changed, 8936 insertions(+), 5163 deletions(-) create mode 100644 drivers/gpu/drm/i915/Kconfig.unstable create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_lmem.c create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_lmem.h create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h delete mode 100644 drivers/gpu/drm/i915/gt/intel_hangcheck.c create mode 100644 drivers/gpu/drm/i915/gt/intel_ring.c create mode 100644 drivers/gpu/drm/i915/gt/intel_ring.h rename drivers/gpu/drm/i915/gt/{intel_ringbuffer.c => intel_ring_submission.c} (88%) create mode 100644 drivers/gpu/drm/i915/gt/intel_ring_types.h create mode 100644 drivers/gpu/drm/i915/gt/intel_rps.c create mode 100644 drivers/gpu/drm/i915/gt/intel_rps.h create mode 100644 drivers/gpu/drm/i915/gt/intel_rps_types.h create mode 100644 drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c create mode 100644 drivers/gpu/drm/i915/intel_region_lmem.c create mode 100644 drivers/gpu/drm/i915/intel_region_lmem.h create mode 100644 drivers/gpu/drm/i915/oa/i915_oa_tgl.c create mode 100644 drivers/gpu/drm/i915/oa/i915_oa_tgl.h