From patchwork Mon Mar 25 12:49:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Joonas Lahtinen X-Patchwork-Id: 10869081 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3A25E1669 for ; Mon, 25 Mar 2019 12:49:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1A6F828249 for ; Mon, 25 Mar 2019 12:49:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0B4AE290AC; Mon, 25 Mar 2019 12:49:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3814528249 for ; Mon, 25 Mar 2019 12:49:36 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A30D16E688; Mon, 25 Mar 2019 12:49:32 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 085A86E675; Mon, 25 Mar 2019 12:49:31 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Mar 2019 05:49:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,256,1549958400"; d="scan'208";a="331771531" Received: from jlahtine-desk.ger.corp.intel.com (HELO localhost) ([10.251.88.20]) by fmsmga005.fm.intel.com with ESMTP; 25 Mar 2019 05:49:26 -0700 Date: Mon, 25 Mar 2019 14:49:25 +0200 From: Joonas Lahtinen To: Dave Airlie , Daniel Vetter Subject: [PULL] drm-intel-next Message-ID: <20190325124925.GA12726@jlahtine-desk.ger.corp.intel.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.11.3 (2019-02-01) 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, Maxime Ripard , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Rodrigo Vivi , Sean Paul Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Hi Dave & Daniel, First batch of features for 5.2, tagged last week. Most notably there are a lot of Icelake fixes that finally lead to removal of alpha_support protection for it. We're also adding Cometlake PCI IDs (Gen9 ~= Coffeelake), so those platforms should be supported. Then we have HDCP 2.2 support, PSR2 enabling by default and VBT data parsing fixes on display side. On GT side there is an option to allow Mesa to better recover from GPU hangs and fixes to the mmap behaviour. Then the usual assortment of fixes and some prep code for Virtual Engine work, parts of which will follow in next PR. Best Regards, Joonas PS. This contains a backmerge and Maarten's topic/hdr-format topic branch merged twice + MEI topic branch merged from Daniel. *** drm-intel-next-2019-03-20: UAPI Changes: - Report an error early instead of SIGBUS later when mmap beyond BO size Core Changes: - This includes backmerge of drm-next and two merges of Maarten's topic/hdr-formats Driver Changes: - Add Comet Lake (Gen9) PCI IDs to Coffee Lake ID list (Anusha) - Add missing ICL PCI ID (Jose) - Fix legacy gamma mode for ICL (Ville) - Assume eDP is present on port A when there is no VBT (Thomas) - Corrections to eDP training patterns (Jose) - Fix PSR2 selective update corruption after PSR1 setup (Jose) - Fix CRC mismatch error for DP link layer compliance (Aditya) - Fix CNL DPLL readout and clean up code (Ville) - Turn off the CUS when turning off a HDR plane (Ville) - Avoid a race with execlist tasklet during race (Chris) - Add missing CSC readout and clean up code (Ville) - Avoid unnecessary wakeref during debugfs/drop_caches/set (Chris, Caz) - Hold references to ring/HW context/context explicitly when used (Chris) - Assume next platforms inherit old platform (Rodrigo) - Use HWS indices rather than addresses for breadcrumbs (Chris) - Add REG_BIT/REG_GENMASK and REG_FIELD_PREP macros (Jani) - Convert crept in C99 types to kernel fixed size types (Jani) - Avoid passing full dev_priv in forcewake functions (Daniele) - Reset GuC on GPU reset (Sujaritha) - Rework MG and Combo PLLs to vfuncs (Lucas) - Explicitly track ppGTT size (Chris, Bob) - Coding style improvements and code modularization (Ville) - Selftest and debugging improvements (Chris) drm-intel-next-2019-03-11: UAPI Changes: - Disallow creating user context when GPU is wedged (Chris) Mesa: https://lists.freedesktop.org/archives/mesa-dev/2019-February/215469.html - Remove engine instance from GEM_BUSY extended info (Chris) Only user of extended info is ddx/sna and it doesn't use instance Driver Changes: - Remove alpha_support protection for ICL - HDCP 2.2 support (Ramalingam) - HDMI infoframe support (Ville) - Enable PSR2 by default (Jose) - Support CRC on more planes on SKL+ (Ville) - Read out memory type on Gen9+ (Ville) - Pretend to only have 1 DBuf slice on ICL for now (Imre) - Fix gamma mode state check on ICL (Uma) - Fix the state checker for ICL Y planes (Ville) - Force modeset when resetting HDMI link (Jose) - Remove broken DP CRC support on g4x (Ville) - Remove last global seqno and use random number in hangcheck to identify progress (Chris) - Suppress mere WAIT and redundant preemption (Chris) - Fix Bugzilla #109580: Limit deboosting and boosting for more GPU frequency hysteresis (Chris, Lyude) - Use HW semaphores for inter-engine synchronization on Gen8+ (Chris) - Avoid reporting GPU wedged while check is still in progress (Chris) - Always sample an active ringbuffer in PMU (Chris) - Report engines are idle if already parked (Chris) - Default to Thread Group preemption for compute workloads on ICL (Michal) - Fix a regression caused by the mmap VMA check (Tvrtko, Guenter) - Remove assumptions about request ordering (Chris) - Use single point of truth for PPS divisor register (Jani) - Selftest improvements and CI bug fixes (Chris) - Prepare codebase for Virtual Engine (Chris) - Populate pipe_offsets[] & co. accurately (Ville) - Make request/object/vma allocation caches global (Chris) - Remove redundant likely/unlikely annotations (Chengguang) - Reset locking fixes (Chris) - GuC code refactoring (Sujaritha) - Skip scanning signalers for inflight requests (Chris) - Remove second level open-coded rcu work (Chris) - Order if-ladders from newer to older platform (Rodrigo) - Move MG pll hw_state readout / AUX mask code to separate function (Lucas) - Track active contexts and pinning in context (Chris) drm-intel-next-2019-02-20: UAPI Changes: - Optionally disable automatic recovery after a GPU reset (Chris) Mesa changes at: https://lists.freedesktop.org/archives/mesa-dev/2019-February/215431.html - Added reminders about not leaving holes to uAPI number sequences Cross-subsystem Changes: - Includes the backmerge of drm-next and merge of Daniel's mei-hdcp/i915 component interface work Driver Changes: - Correctly interpret Raw VBT Data Address on OpRegion version 2.1 (ICL+) (Jani) - Fix to actually configure untiled fbdev displays (Maarten, Chris) - Avoid referencing stale pointer in priority scheduler (Chris) - Always restore interrupt enabling after a reset on older gens (Chris) - Use time based guilty context banning (Chris) - Implement new W/A for ICL pipe underruns with wm1+ disabled (Ville) - Fix GLK degamma programming and add ICL degamma/gamma/CSC support (Uma) - Apply RPS waitboosting to non-i915 fences (Chris) - Protect i915_active iterators from the shrinker (Chris) - Defer application of request banning to submission to avoid escapes (Chris) - Track the snd/hda display_power_status using a cookie (Chris) - Only try to park engines after a failed reset (Chris) - Don't claim an unstarted request was guilty of causing hang (Chris) - Revoke mmaps and prevent access to fence registers across reset (Chris) - Make driver reset and wedging more robust (Chris) - Avoid fence releasing race (Mika, Chris) - Fix HDCP state handling for DDI during fastset (Ram) - Register naming fixes (Aditya, Ville) - Fix OpRegion version check (Jani) - Gamma and CSC state tracking fixes (Ville) - Add driver debugging aids (Ville, Chris) - Fixes and improvements to CI issues and kernel selftests (Chris, Jose) The following changes since commit a94bed60cb73962f344ead14b2ee7613280432c6: drm/i915/icl: Implement half float formats (2019-03-13 11:23:12 +0100) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-next-2019-03-20 for you to fetch changes up to 1284ec985572232ace4817476baeb2d82b60be7a: drm/i915: Update DRIVER_DATE to 20190320 (2019-03-20 10:03:48 +0200) ---------------------------------------------------------------- Abdiel Janulgue (1): drm/i915/query: Split out query item checks Aditya Swarup (3): drm/i915: Make combo PHY DDI macro definitions consistent for ICL and CNL drm/i915: Make MG PHY macros semantically consistent drm/i915/icl: Fix CRC mismatch error for DP link layer compliance Anusha Srivatsa (2): drm/i915/cml: Add CML PCI IDS drm/i915/cml: Introduce Comet Lake PCH Chengguang Xu (1): drm/i915: remove redundant likely/unlikely annotation Chris Wilson (106): drm/i915: Defer removing fence register tracking to rpm wakeup drm/i915: Revoke mmaps and prevent access to fence registers across reset drm/i915: Force the GPU reset upon wedging drm/i915: Uninterruptibly drain the timelines on unwedging drm/i915: Wait for old resets before applying debugfs/i915_wedged drm/i915: Serialise resets with wedging drm/i915: Don't claim an unstarted request was guilty drm/i915/execlists: Refactor out can_merge_rq() drm/i915: Protect i915_active iterators from the shrinker drm/i915: Pull sync_scru for device reset outside of wedge_mutex drm/i915: Use synchronize_srcu_expedited() for resets drm/i915: Include the current timeline seqno for debugging execlists drm/i915: Reacquire priolist cache after dropping the engine lock drm/i915: Recursive i915_reset_trylock() verboten drm/i915: Detect potential i915_reset_trylock() lockups drm/i915: Apply rps waitboosting for dma_fence_wait_timeout() snd/hda, drm/i915: Track the display_power_status using a cookie drm/i915: Only try to park engines after a failed reset drm/i915/selftests: Always use an active engine while resetting drm/i915: Defer application of request banning to submission drm/i915/selftests: Drop unnecessary struct_mutex around i915_reset() drm/i915/fbdev: Actually configure untiled displays drm/i915/selftests: Always free spinner on __sseu_prepare error drm/i915/selftests: Move local mock_ggtt allocations to the heap drm/i915: Optionally disable automatic recovery after a GPU reset drm/i915/selftests: Make unbannable contexts for reset handling drm/i915: Restore interrupt enabling after a reset drm/i915: Include reminders about leaving no holes in uAPI enums drm/i915: Move verify_wm_state() to heap drm/i915: Trim delays for wedging drm/i915: Use time based guilty context banning drm/i915: Beware temporary wedging when determining -EIO drm/i915: Avoid reset lock in writing fence registers drm/i915: Reduce the RPS shock drm/i915: Prevent user context creation while wedged drm/i915/hdcp: Silence compiler critics drm/i915: Reorder struct_mutex-vs-reset_lock in i915_gem_fault() drm/i915/guc: Flush the residual log capture irq on disabling drm/i915/pmu: Always sample an active ringbuffer drm/i915: Replace global_seqno with a hangcheck heartbeat seqno drm/i915: Remove access to global seqno in the HWSP drm/i915: Remove i915_request.global_seqno drm/i915/selftests: Exercise resetting during non-user payloads drm/i915: Skip scanning for signalers if we are already inflight drm/i915: Avoid waking the engines just to check if they are idle drm/i915: Compute the global scheduler caps Revert "drm/i915: Avoid waking the engines just to check if they are idle" drm/i915: Report engines are idle if already parked drm/i915: Make request allocation caches global drm/i915: Make object/vma allocation caches global drm/i915: Remove second level open-coded rcu work drm/i915: Use __ffs() in for_each_priolist for more compact code drm/i915/execlists: Suppress mere WAIT preemption drm/i915: Introduce i915_timeline.mutex drm/i915/selftests: Check that whitelisted registers are accessible drm/i915/execlists: Suppress redundant preemption drm/i915: Keep timeline HWSP allocated until idle across the system drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+ drm/i915: Prioritise non-busywait semaphore workloads drm/i915: Fix I915_EXEC_RING_MASK drm/i915: Acquire breadcrumb ref before cancelling drm/i915/gtt: Use optimised memset32/64 for clearing PTE drm/i915/gtt: Store scratch page size alongside not in the common struct drm/i915: Just check the vebox IIR regardless drm/i915: Stop capturing semaphore registers for gen6/7 GPU hangs drm/i915: Remove last traces of exec-id (GEM_BUSY) drm/i915: Store the BIT(engine->id) as the engine's mask drm/i915/gtt: Mark ALL_ENGINES as dirty on ppGTT modification drm/i915: Move find_active_request() to the engine drm/i915: Use i915_global_register() drm/i915: Pass around the intel_context drm/i915/selftests: Fix MI_STORE_DWORD_IMM alignment drm/i915: Make I915_GEM_IDLE_TIMEOUT into a macro drm/i915: Force GPU idle on suspend drm/i915/selftests: Improve switch-to-kernel-context checking drm/i915/selftests: Check preemption support on each engine drm/i915: Do a synchronous switch-to-kernel-context on idling drm/i915: Refactor common code to load initial power context drm/i915: Reduce presumption of request ordering for barriers drm/i915: Remove has-kernel-context drm/i915: Track active engines within a context drm/i915: Split struct intel_context definition to its own header drm/i915: Store the intel_context_ops in the intel_engine_cs drm/i915: Move over to intel_context_lookup() drm/i915: Make context pinning part of intel_context_ops drm/i915: Track the pinned kernel contexts on each engine drm/i915: Introduce intel_context.pin_mutex for pin management drm/i915: Suppress the "Failed to idle" warning for gem_eio drm/i915: Introduce a context barrier callback drm/i915: Consolidate reset-request debug message drm/i915/selftests: Improve error detection of reset failure drm/i915/selftests: Disable preemption while setting up fence-timers drm/i915: Refactor to common helpers for prepare/finish between reset & wedge drm/i915: Mark up vGPU support for full-ppgtt drm/i915: Record platform specific ppGTT size in intel_device_info drm/i915: Drop address size from ppgtt_type drm/i915/gtt: Rename i915_vm_is_48b to i915_vm_is_4lvl drm/i915/gtt: Refactor common ppgtt initialisation drm/i915: Always kick the execlists tasklet after reset drm/i915: Fix off-by-one in reporting hanging process drm/i915: Sanity check mmap length against object size drm/i915: Stop needlessly acquiring wakeref for debugfs/drop_caches_set drm/i915: Switch to use HWS indices rather than addresses drm/i915: Hold a ref to the ring while retiring drm/i915: Lock the gem_context->active_list while dropping the link drm/i915: Hold a reference to the active HW context Daniele Ceraolo Spurio (1): drm/i915: do not pass dev_priv to low-level forcewake functions Imre Deak (1): drm/i915/icl: Prevent incorrect DBuf enabling Jani Nikula (9): drm/i915/opregion: fix version check drm/i915/opregion: rvda is relative from opregion base in opregion 2.1+ drm/i915/dp: deconflate PPS unlock from divisor register drm/i915/dp: use single point of truth for PPS divisor register drm/i915: introduce REG_BIT() and REG_GENMASK() to define register contents drm/i915: deprecate _SHIFT in favor of _MASK passed to accessors drm/i915: use REG_FIELD_PREP() to define register bitfield values drm/i915: stick to kernel fixed size types drm/i915/psr: remove drmP.h include that crept in Joonas Lahtinen (8): Merge drm/drm-next into drm-intel-next-queued Merge tag 'topic/mei-hdcp-2019-02-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next-queued drm/i915: Update DRIVER_DATE to 20190220 drm/i915: Update DRIVER_DATE to 20190311 Merge drm/drm-next into drm-intel-next-queued Merge tag 'topic/hdr-formats-2019-03-07' of git://anongit.freedesktop.org/drm/drm-misc into drm-intel-next-queued Merge tag 'topic/hdr-formats-2019-03-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-intel-next-queued drm/i915: Update DRIVER_DATE to 20190320 José Roberto de Souza (20): drm/i915/psr: Execute the default PSR code path when setting i915_edp_psr_debug drm/i915: Call MG_DP_MODE() macro with the right parameters order drm/i915: Fix atomic state leak when resetting HDMI link drm/i915: Don't manually add connectors and planes state drm/i915: Forcing a modeset when resetting HDMI link drm/i915/icl: Remove alpha support protection drm/i915/psr: Remove PSR2 FIXME drm/i915/psr: Only lookup for enabled CRTCs when forcing a fastset drm/i915: Compute and commit color features in fastsets drm/i915/psr: Drop test for EDP in CRTC when forcing commit drm/i915/crc: Make IPS workaround generic drm/i915: Disable PSR2 while getting pipe CRC drm/i915: Drop redundant checks to update PSR state drm/i915: Force PSR1 exit when getting pipe CRC drm/i915: Enable PSR2 by default drm/i915: Add new ICL PCI ID drm/i915/vbt: Parse and use the new field with PSR2 TP2/3 wakeup time drm/i915/psr: Move logic to get TPS registers values to another function drm/i915/icl+: Always use TPS2 or TPS3 when exiting PSR1 drm/i915: Fix PSR2 selective update corruption after PSR1 setup Lucas De Marchi (10): drm/i915/icl: move MG pll hw_state readout drm/i915: extract AUX mask assignment to separate function drm/i915: refactor transcoders reporting on error state drm/i915: allow platforms without eDP transcoder drm/i915: Fix bit name in PP_STATUS register drm/i915/icl: split combo and mg pll enable drm/i915/icl: split pll enable in three steps drm/i915/icl: split combo and mg pll disable drm/i915/icl: split combo and tbt pll funcs drm/i915/icl: remove intel_dpll_is_combophy() Michał Winiarski (2): drm/i915/icl: Default to Thread Group preemption for compute workloads drm/i915/selftests: Upgrade printing test/subtest name to pr_info Ramalingam C (16): drm/i915: HDCP state handling in ddi_update_pipe drm/i915: Gathering the HDCP1.4 routines together drm/i915: Initialize HDCP2.2 drm/i915: MEI interface implementation drm/i915: hdcp1.4 CP_IRQ handling and SW encryption tracking drm/i915: Enable and Disable of HDCP2.2 drm/i915: Implement HDCP2.2 receiver authentication drm/i915: Implement HDCP2.2 repeater authentication drm: HDCP2.2 link check period drm/i915: Implement HDCP2.2 link integrity check drm/i915: Handle HDCP2.2 downstream topology change drm: removing the DP Errata msg and its msg id drm/i915: Implement the HDCP2.2 support for DP drm/i915: Implement the HDCP2.2 support for HDMI drm/i915: CP_IRQ handling for DP HDCP2.2 msgs drm/i915: Fix KBL HDCP2.2 encrypt status signalling Rodrigo Vivi (8): drm/i915: Sort ctx workarounds init from newer to older platforms. drm/i915: Sort newer to older platforms. drm/i915: Remove unused HAS_PCH_CNP_LP drm/i915: Yet another if/else sort of newer to older platforms. drm/i915/gen11+: First assume next platforms will inherit stuff drm/i915: Move PCH_NOP to -1 drm/i915: Start using comparative INTEL_PCH_TYPE drm/i915: Also use new comparative stuff for more ICP+ stuff Sujaritha Sundaresan (3): drm/i915/guc: Splitting CT channel open/close functions drm/i915/guc: Calling guc_disable_communication in all suspend paths drm/i915/guc: Preparing for GuC reset along with engine reset Thomas Preston (1): drm/i915/bios: assume eDP is present on port A when there is no VBT Tvrtko Ursulin (2): drm/i915: Re-arrange execbuf so context is known before engine drm/i915: Relax mmap VMA check Uma Shankar (6): drm/i915/glk: Fix degamma lut programming drm/i915/icl: Add icl pipe degamma and gamma support drm/i915/icl: Enable ICL Pipe CSC block drm/i915/icl: Enable pipe output csc drm/i915/icl: Add degamma and gamma lut size to gen11 caps drm/i915/icl: Drop redundant gamma mode mask Ville Syrjälä (72): drm/i915: Populate gamma_mode for all platforms drm/i915: Track pipe gamma enable/disable in crtc state drm/i915: Track pipe csc enable in crtc state drm/i915: Turn off pipe gamma when it's not needed drm/i915: Turn off pipe CSC when it's not needed drm/i915: Disable pipe gamma when C8 pixel format is used drm/i915: Update DSPCNTR gamma/csc bits during crtc_enable() drm/i915: Dump skl+ watermark changes drm/i915: s/PUNIT_REG_DSPFREQ/PUNIT_REG_DSPSSPM/ drm/i915: Assert that VED and ISP are power gated Revert "drm/i915: W/A for underruns with WM1+ disabled on icl" drm/i915: Include "ignore lines" in skl+ wm state drm/i915: Implement new w/a for underruns with wm1+ disabled drm/i915: Add pipe crc tracepoint drm/i915: Add pipe enable/disable tracepoints drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes() drm/i915: Wrap plane update/disable hook calls drm/i915: Remove the "pf" crc source drm/i915: Use named initializers for the crc source name array drm/i915: Remove the broken DP CRC support for g4x drm/i915: Extend skl+ crc sources with more planes drm/i915: Add the missing HDMI gamut metadata packet stuff drm/i915: Return the mask of enabled infoframes from ->inforame_enabled() drm/i915: Store mask of enabled infoframes in the crtc state drm/i915: Precompute HDMI infoframes drm/i915: Read out HDMI infoframes drm/i915/sdvo: Precompute HDMI infoframes drm/i915/sdvo: Read out HDMI infoframes drm/i915: Check infoframe state in intel_pipe_config_compare() drm/i915: Include infoframes in the crtc state dump drm/i915: Finalize Wa_1408961008:icl drm/i915: Fix the state checker for ICL Y planes drm/i915: Do not temporarily disable the DPLL on i830 drm/i915: Simplify i830 DVO 2x clock handling drm/i915: Populate pipe_offsets[] & co. accurately drm/i915: Store DIMM rank information as a number drm/i915: Extract functions to derive SKL+ DIMM info drm/i915: Polish skl_is_16gb_dimm() drm/i915: Extract BXT DIMM helpers drm/i915: Fix DRAM size reporting for BXT drm/i915: Extract DIMM info on GLK too drm/i915: Use dram_dimm_info more drm/i915: Generalize intel_is_dram_symmetric() drm/i914: s/l_info/dimm_l/ etc. drm/i915: Clean up intel_get_dram_info() a bit drm/i915: Extract DIMM info on cnl+ drm/i915: Read out memory type drm/i915: Readout and check csc_mode drm/i915: Precompute/readout/check CHV CGM mode drm/i915: Extract ilk_csc_limited_range() drm/i915: Clean up ilk/icl pipe/output CSC programming drm/i915: Extract ilk_csc_convert_ctm() drm/i915: Clean the csc limited range/identity programming drm/i915: Split ilk vs. icl csc matrix handling drm/i915: Fix legacy gamma mode for ICL drm/i915: Turn off the CUS when turning off a HDR plane drm/i915: Don't pass crtc to intel_find_shared_dpll() drm/i915: Don't pass crtc to intel_get_shared_dpll() and .get_dpll() drm/i915: Pass crtc_state down to skl dpll funcs drm/i915: Remove redundant on stack dpll_hw_state from skl_get_dpll() drm/i915: Pass crtc_state down to bxt dpll funcs drm/i915: Remove redundant on stack dpll_hw_state from bxt_get_dpll() drm/i915: Pass crtc_state down to cnl dpll funcs drm/i915: Remove redundant on stack dpll_hw_state from cnl_get_dpll() drm/i915: Pass crtc_state down to icl dpll funcs drm/i915: Remove redundant on stack dpll_hw_state from icl_get_dpll() drm/i915: Fix readout for cnl DPLL kdiv==3 drm/i915: Nuke icl_calc_dp_combo_pll_link() drm/i915: Remove the fragile array index -> link rate mapping drm/i915: Add some missing curly braces drm/i915: Polish intel_get_lvds_encoder() drm/i915: Pass dev_priv to intel_is_dual_link_lvds() Documentation/driver-api/component.rst | 17 + Documentation/driver-api/device_link.rst | 3 + Documentation/driver-api/index.rst | 1 + drivers/base/component.c | 206 +++- drivers/gpu/drm/i915/Makefile | 11 + drivers/gpu/drm/i915/gvt/cmd_parser.c | 44 +- drivers/gpu/drm/i915/gvt/dmabuf.c | 2 +- drivers/gpu/drm/i915/gvt/execlist.c | 17 +- drivers/gpu/drm/i915/gvt/handlers.c | 26 +- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- drivers/gpu/drm/i915/gvt/mmio_context.c | 231 ++-- drivers/gpu/drm/i915/gvt/scheduler.c | 27 +- drivers/gpu/drm/i915/gvt/vgpu.c | 2 +- drivers/gpu/drm/i915/i915_active.c | 59 +- drivers/gpu/drm/i915/i915_active.h | 16 - drivers/gpu/drm/i915/i915_cmd_parser.c | 12 +- drivers/gpu/drm/i915/i915_debugfs.c | 121 +- drivers/gpu/drm/i915/i915_drv.c | 476 +++++--- drivers/gpu/drm/i915/i915_drv.h | 134 +-- drivers/gpu/drm/i915/i915_gem.c | 628 +++------- drivers/gpu/drm/i915/i915_gem.h | 9 +- drivers/gpu/drm/i915/i915_gem_context.c | 287 +++-- drivers/gpu/drm/i915/i915_gem_context.h | 250 +--- drivers/gpu/drm/i915/i915_gem_context_types.h | 182 +++ drivers/gpu/drm/i915/i915_gem_dmabuf.c | 2 +- drivers/gpu/drm/i915/i915_gem_evict.c | 18 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 35 +- drivers/gpu/drm/i915/i915_gem_fence_reg.c | 88 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 104 +- drivers/gpu/drm/i915/i915_gem_gtt.h | 10 +- drivers/gpu/drm/i915/i915_gem_internal.c | 2 +- drivers/gpu/drm/i915/i915_gem_object.c | 42 + drivers/gpu/drm/i915/i915_gem_object.h | 4 +- drivers/gpu/drm/i915/i915_gem_render_state.c | 2 +- drivers/gpu/drm/i915/i915_gem_stolen.c | 2 +- drivers/gpu/drm/i915/i915_gem_userptr.c | 2 +- drivers/gpu/drm/i915/i915_globals.c | 135 +++ drivers/gpu/drm/i915/i915_globals.h | 35 + drivers/gpu/drm/i915/i915_gpu_error.c | 109 +- drivers/gpu/drm/i915/i915_gpu_error.h | 48 +- drivers/gpu/drm/i915/i915_irq.c | 143 ++- drivers/gpu/drm/i915/i915_pci.c | 219 ++-- drivers/gpu/drm/i915/i915_perf.c | 92 +- drivers/gpu/drm/i915/i915_pmu.c | 67 +- drivers/gpu/drm/i915/i915_pvinfo.h | 2 +- drivers/gpu/drm/i915/i915_query.c | 39 +- drivers/gpu/drm/i915/i915_reg.h | 466 +++++--- drivers/gpu/drm/i915/i915_request.c | 346 ++++-- drivers/gpu/drm/i915/i915_request.h | 71 +- drivers/gpu/drm/i915/i915_reset.c | 376 +++--- drivers/gpu/drm/i915/i915_reset.h | 6 + drivers/gpu/drm/i915/i915_scheduler.c | 117 +- drivers/gpu/drm/i915/i915_scheduler.h | 43 +- drivers/gpu/drm/i915/i915_sw_fence.c | 4 +- drivers/gpu/drm/i915/i915_sw_fence.h | 3 + drivers/gpu/drm/i915/i915_timeline.c | 294 ++++- drivers/gpu/drm/i915/i915_timeline.h | 73 +- drivers/gpu/drm/i915/i915_timeline_types.h | 80 ++ drivers/gpu/drm/i915/i915_trace.h | 106 +- drivers/gpu/drm/i915/i915_vgpu.c | 4 +- drivers/gpu/drm/i915/i915_vgpu.h | 2 +- drivers/gpu/drm/i915/i915_vma.c | 51 +- drivers/gpu/drm/i915/i915_vma.h | 3 + drivers/gpu/drm/i915/icl_dsi.c | 8 +- drivers/gpu/drm/i915/intel_atomic_plane.c | 54 +- drivers/gpu/drm/i915/intel_audio.c | 27 +- drivers/gpu/drm/i915/intel_bios.c | 30 +- drivers/gpu/drm/i915/intel_breadcrumbs.c | 18 +- drivers/gpu/drm/i915/intel_cdclk.c | 60 +- drivers/gpu/drm/i915/intel_color.c | 591 +++++++--- drivers/gpu/drm/i915/intel_connector.c | 2 + drivers/gpu/drm/i915/intel_context.c | 269 +++++ drivers/gpu/drm/i915/intel_context.h | 87 ++ drivers/gpu/drm/i915/intel_context_types.h | 73 ++ drivers/gpu/drm/i915/intel_ddi.c | 147 +-- drivers/gpu/drm/i915/intel_device_info.c | 10 +- drivers/gpu/drm/i915/intel_device_info.h | 13 +- drivers/gpu/drm/i915/intel_display.c | 466 +++++--- drivers/gpu/drm/i915/intel_display.h | 16 +- drivers/gpu/drm/i915/intel_dp.c | 447 ++++++- drivers/gpu/drm/i915/intel_dpll_mgr.c | 735 ++++++------ drivers/gpu/drm/i915/intel_dpll_mgr.h | 5 +- drivers/gpu/drm/i915/intel_drv.h | 155 ++- drivers/gpu/drm/i915/intel_dsi_vbt.c | 6 +- drivers/gpu/drm/i915/intel_engine_cs.c | 288 +++-- drivers/gpu/drm/i915/intel_engine_types.h | 525 +++++++++ drivers/gpu/drm/i915/intel_gpu_commands.h | 9 +- drivers/gpu/drm/i915/intel_guc.c | 12 + drivers/gpu/drm/i915/intel_guc.h | 1 + drivers/gpu/drm/i915/intel_guc_ads.c | 3 +- drivers/gpu/drm/i915/intel_guc_ct.c | 94 +- drivers/gpu/drm/i915/intel_guc_ct.h | 3 + drivers/gpu/drm/i915/intel_guc_log.c | 5 + drivers/gpu/drm/i915/intel_guc_submission.c | 22 +- drivers/gpu/drm/i915/intel_hangcheck.c | 18 +- drivers/gpu/drm/i915/intel_hdcp.c | 1242 ++++++++++++++++++-- drivers/gpu/drm/i915/intel_hdmi.c | 770 ++++++++++-- drivers/gpu/drm/i915/intel_lrc.c | 417 ++++--- drivers/gpu/drm/i915/intel_lspcon.c | 13 +- drivers/gpu/drm/i915/intel_lvds.c | 57 +- drivers/gpu/drm/i915/intel_mocs.c | 14 +- drivers/gpu/drm/i915/intel_overlay.c | 2 +- drivers/gpu/drm/i915/intel_panel.c | 5 +- drivers/gpu/drm/i915/intel_pipe_crc.c | 228 ++-- drivers/gpu/drm/i915/intel_pm.c | 135 ++- drivers/gpu/drm/i915/intel_psr.c | 295 +++-- drivers/gpu/drm/i915/intel_ringbuffer.c | 177 ++- drivers/gpu/drm/i915/intel_ringbuffer.h | 598 +--------- drivers/gpu/drm/i915/intel_runtime_pm.c | 57 +- drivers/gpu/drm/i915/intel_sdvo.c | 156 ++- drivers/gpu/drm/i915/intel_sprite.c | 36 +- drivers/gpu/drm/i915/intel_uc.c | 23 +- drivers/gpu/drm/i915/intel_uc.h | 1 + drivers/gpu/drm/i915/intel_uncore.c | 120 +- drivers/gpu/drm/i915/intel_uncore.h | 9 +- drivers/gpu/drm/i915/intel_vbt_defs.h | 3 + drivers/gpu/drm/i915/intel_workarounds.c | 113 +- drivers/gpu/drm/i915/intel_workarounds.h | 13 +- drivers/gpu/drm/i915/intel_workarounds_types.h | 27 + drivers/gpu/drm/i915/selftests/huge_gem_object.c | 2 +- drivers/gpu/drm/i915/selftests/huge_pages.c | 17 +- drivers/gpu/drm/i915/selftests/i915_active.c | 2 +- drivers/gpu/drm/i915/selftests/i915_gem.c | 9 +- .../gpu/drm/i915/selftests/i915_gem_coherency.c | 8 +- drivers/gpu/drm/i915/selftests/i915_gem_context.c | 269 +++-- drivers/gpu/drm/i915/selftests/i915_gem_evict.c | 2 +- drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 18 +- drivers/gpu/drm/i915/selftests/i915_gem_object.c | 4 +- drivers/gpu/drm/i915/selftests/i915_request.c | 23 +- drivers/gpu/drm/i915/selftests/i915_selftest.c | 4 +- drivers/gpu/drm/i915/selftests/i915_sw_fence.c | 9 +- drivers/gpu/drm/i915/selftests/i915_timeline.c | 113 ++ drivers/gpu/drm/i915/selftests/i915_vma.c | 16 +- drivers/gpu/drm/i915/selftests/igt_flush_test.c | 4 +- drivers/gpu/drm/i915/selftests/igt_spinner.c | 7 + drivers/gpu/drm/i915/selftests/intel_guc.c | 4 +- drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 296 ++++- drivers/gpu/drm/i915/selftests/intel_lrc.c | 187 ++- drivers/gpu/drm/i915/selftests/intel_workarounds.c | 415 ++++++- drivers/gpu/drm/i915/selftests/mock_context.c | 9 +- drivers/gpu/drm/i915/selftests/mock_engine.c | 100 +- drivers/gpu/drm/i915/selftests/mock_gem_device.c | 52 +- drivers/gpu/drm/i915/selftests/mock_request.c | 12 +- drivers/gpu/drm/i915/selftests/mock_request.h | 7 - drivers/gpu/drm/i915/selftests/mock_timeline.c | 1 + .../drm/i915/test_i915_active_types_standalone.c | 7 + .../i915/test_i915_gem_context_types_standalone.c | 7 + .../drm/i915/test_i915_timeline_types_standalone.c | 7 + .../drm/i915/test_intel_context_types_standalone.c | 7 + .../drm/i915/test_intel_engine_types_standalone.c | 7 + .../i915/test_intel_workarounds_types_standalone.c | 7 + include/drm/drm_audio_component.h | 8 +- include/drm/drm_hdcp.h | 25 +- include/drm/i915_component.h | 5 + include/drm/i915_drm.h | 15 + include/drm/i915_mei_hdcp_interface.h | 149 +++ include/drm/i915_pciids.h | 31 +- include/linux/component.h | 76 ++ include/sound/hda_component.h | 5 +- include/sound/hdaudio.h | 2 +- include/uapi/drm/i915_drm.h | 63 +- sound/hda/hdac_component.c | 22 +- sound/hda/hdac_i915.c | 6 +- 163 files changed, 11337 insertions(+), 5420 deletions(-) create mode 100644 Documentation/driver-api/component.rst create mode 100644 drivers/gpu/drm/i915/i915_gem_context_types.h create mode 100644 drivers/gpu/drm/i915/i915_globals.c create mode 100644 drivers/gpu/drm/i915/i915_globals.h create mode 100644 drivers/gpu/drm/i915/i915_timeline_types.h create mode 100644 drivers/gpu/drm/i915/intel_context.c create mode 100644 drivers/gpu/drm/i915/intel_context.h create mode 100644 drivers/gpu/drm/i915/intel_context_types.h create mode 100644 drivers/gpu/drm/i915/intel_engine_types.h create mode 100644 drivers/gpu/drm/i915/intel_workarounds_types.h create mode 100644 drivers/gpu/drm/i915/test_i915_active_types_standalone.c create mode 100644 drivers/gpu/drm/i915/test_i915_gem_context_types_standalone.c create mode 100644 drivers/gpu/drm/i915/test_i915_timeline_types_standalone.c create mode 100644 drivers/gpu/drm/i915/test_intel_context_types_standalone.c create mode 100644 drivers/gpu/drm/i915/test_intel_engine_types_standalone.c create mode 100644 drivers/gpu/drm/i915/test_intel_workarounds_types_standalone.c create mode 100644 include/drm/i915_mei_hdcp_interface.h