From patchwork Thu Mar 28 15:15:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Joonas Lahtinen X-Patchwork-Id: 10875101 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 B3CDD186D for ; Thu, 28 Mar 2019 15:15:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 884932040D for ; Thu, 28 Mar 2019 15:15:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7C52D28D14; Thu, 28 Mar 2019 15:15:25 +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=ham 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 6C2E22040D for ; Thu, 28 Mar 2019 15:15:23 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 99A466E42D; Thu, 28 Mar 2019 15:15:21 +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 9C8B76E42B; Thu, 28 Mar 2019 15:15:20 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Mar 2019 08:15:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,280,1549958400"; d="scan'208";a="311179109" Received: from jlahtine-desk.ger.corp.intel.com (HELO localhost) ([10.251.85.238]) by orsmga005.jf.intel.com with ESMTP; 28 Mar 2019 08:15:16 -0700 Date: Thu, 28 Mar 2019 17:15:15 +0200 From: Joonas Lahtinen To: Dave Airlie , Daniel Vetter Subject: [PULL] drm-intel-next Message-ID: <20190328151515.GA9606@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, Here's a pull request with a further drop of features. Sending this instead of the build warning fix to avoid diverging the trees. To avoid such build warnings in futore, I'll talk about doing a non-debug build of the PR tags. The build warning only occurred when selftests were disabled, so I missed it. This adds Elkhartlake support code and PCI IDs (still under alpha_support flag). Adds DP MST properties and removes 8bpc restriction on DP MST. HDR format fixes from Maarten. Fixes Bugzilla #109780 by using first EDID mode when preferred is missing. There is also slight uAPI optimization, to remove an implicit SET_DOMAIN on mmap fault. No userspace known was depending on that one, and it gets us asynchronous mmap, which is desireable in the ongoing war against too many synchronous locks. Then there is a fix to add back missing writeback of BO size on creation that has been gone from 2011 after a mysterious DRM maintainer's patch. And we added an IGT to avoid it from happening again :) Best Regards, Joonas drm-intel-next-2019-03-28: UAPI Changes: - Make mmap code more asynchronous. Avoid full SET_DOMAIN on GTT mmap pagefault, and flushes pages on acquisition instead. Moves some of the work from mmap fault time to execbuf time to avoid lock contention during mmap access. Has neutral to positive impact on perf as the flushing moves to execbuf time in real world workloads on the current known userspaces due to recycling of BOs. If there exist an unknown non-recycling userspace, they should explicitly do the SET_DOMAIN and not rely on kernel doing implicit SET_DOMAIN because swapout/in might have happenedt. - Restore the accidentally removed behaviour of returning object size on GEM_CREATE From 2011: ff72145badb8 ("drm: dumb scanout create/mmap for intel/radeon (v3)") - Includes a some neutered patches to prepare to complete the earlier Mesa recovery feature uAPI. Looking to enable this in the next PR. Driver Changes: - Add Elkhartlake (Gen11) support code and PCI IDs - Add missing Amberlake PCI ID 0x87CA (Ville) - Fix to Bugzilla #109780: Pick the first mode from EDID as the fixed mode when there is no preferred mode (Ville) - Fix GCC 4.8 build by using __is_constexpr() (Chris, Randy, Uma) - Add "Broadcast RGB", "force_audio" and "max_bpc" properties to DP MST (Ville) - Remove 8bpc limitation from DP MST (Ville) - Fix changing between limited and full range RGB output in DP fastsets (Ville) - Reject unsupported HDR formats (Maarten) - Handle YUV subpixel support better (Maarten) - Various plane watermarks fixes and cleaning of the code (Ville) - Icelake port sync master select fix (Manasi) - Icelake VEBOX disable bitmask fix (Jose) - Close a race where userspace could see incompletely initialized GEM context (Chris) - Avoid C3 on i945gm to keep vblank interrupts steady (Ville) - Avoid recalculating PLL HW readout each time (Lucas) - A ton of patches to modularize uncore code (Daniel) - Instead of storing media fuse value, immediately derive engine masks (Daniele) - Reduce struct_mutex usage (Chris) - Iterate over child devices to initialize ddi_port_info (Jani) - Fixes to return correct error values when bailing out of functions (Dan) - Use bitmap_zalloc() (Andy) - Reorder and clarify Gen3/4 code (Ville) - Refactor out common code in display mode handling (Ville) - GuC code fixes (Sujaritha, Michal) - Selftest improvements (Chris) The following changes since commit 0bec6219e5a0cf2dd17716949a7592807e10f3d7: Merge tag 'drm-misc-next-2019-03-21' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2019-03-25 11:05:12 +0100) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-next-2019-03-28 for you to fetch changes up to a01b2c6f47d86c7d1a9fa822b3b91ec233b61784: drm/i915: Update DRIVER_DATE to 20190328 (2019-03-28 14:41:55 +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 Andy Shevchenko (1): drm/i915: Switch to bitmap_zalloc() Anusha Srivatsa (3): drm/i915/cml: Add CML PCI IDS drm/i915/cml: Introduce Comet Lake PCH drm/i915/ehl: Add Support for DMC on EHL Bob Paauwe (3): drm/i915/ehl: Add ElkhartLake platform drm/i915/ehl: EHL outputs are different from ICL drm/i915/ehl: Set proper eu slice/subslice parameters for EHL Chengguang Xu (1): drm/i915: remove redundant likely/unlikely annotation Chris Wilson (124): 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 drm/i915/selftests: Provide stub reset functions drm/i915: Use __is_constexpr() drm/i915: Separate GEM context construction and registration to userspace drm/i915: Introduce a mutex for file_priv->context_idr drm/i915: Stop storing ctx->user_handle drm/i915: Stop storing the context name as the timeline name drm/i915: Flush pages on acquisition drm/i915: Skip object locking around a no-op set-domain ioctl drm/i915/selftests: Calculate maximum ring size for preemption chain drm/i915/selftests: Mark up preemption tests for hang detection drm/i915: Introduce the i915_user_extension_method drm/i915: Create/destroy VM (ppGTT) for use with contexts drm/i915: Extend CONTEXT_CREATE to set parameters upon construction drm/i915: Allow contexts to share a single timeline across all engines drm/i915: Remove defunct intel_suspend_gt_powersave() drm/i915: Report the correct errno from i915_gem_context_open() drm/i915: Adding missing '; ' to ENGINE_INSTANCES drm/i915: Drop new chunks of context creation ABI (for now) Dan Carpenter (2): drm/i915/selftests: fix NULL vs IS_ERR() check in mock_context_barrier() drm/i915/selftests: Fix an IS_ERR() vs NULL check Daniele Ceraolo Spurio (21): drm/i915: do not pass dev_priv to low-level forcewake functions drm/i915/selftests: add test to verify get/put fw domains drm/i915: always use masks on FW regs drm/i915: use intel_uncore in fw get/put internal paths drm/i915: use intel_uncore for all forcewake get/put drm/i915: make more uncore function work on intel_uncore drm/i915: make find_fw_domain work on intel_uncore drm/i915: reduce the dev_priv->uncore dance in uncore.c drm/i915: move regs pointer inside the uncore structure drm/i915: make raw access function work on uncore drm/i915: stop storing the media fuse drm/i915: rename raw reg access functions drm/i915: add HAS_FORCEWAKE flag to uncore drm/i915: add uncore flags for unclaimed mmio drm/i915: take a ref to the rpm in the uncore structure drm/i915: switch uncore mmio funcs to use intel_uncore drm/i915: switch intel_uncore_forcewake_for_reg to intel_uncore drm/i915: intel_wait_for_register_fw to uncore drm/i915: switch intel_wait_for_register to uncore drm/i915: take a reference to uncore in the engine and use it drm/i915: fix i386 build of 64b raw_uncore functions Imre Deak (1): drm/i915/icl: Prevent incorrect DBuf enabling James Ausmus (1): drm/i915/ehl: Add EHL platform info and PCI IDs Jani Nikula (10): 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 drm/i915/bios: iterate over child devices to initialize ddi_port_info Joonas Lahtinen (12): 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 Merge drm/drm-next into drm-intel-next-queued drm/i915: Update DRIVER_DATE to 20190328 drm/i915: Update DRIVER_DATE to 20190328 drm/i915: Update DRIVER_DATE to 20190328 José Roberto de Souza (21): 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 drm/i915/icl: Fix VEBOX mismatch BUG_ON() Lucas De Marchi (16): 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() drm/i915/ehl: Add dpll mgr drm/i915/skl: use previous pll hw readout drm/i915/bxt: make bxt_calc_pll_link() similar to skl drm/i915/cnl: use previous pll hw readout drm/i915/icl: use previous pll hw readout drm/i915/icl: reduce pll_id scope and use enum type Maarten Lankhorst (3): drm/i915: Handle YUV subpixel support better drm/i915: Reject Yf tiling for HDR formats, v2. drm/i915: Reject rotation for some hdr formats Manasi Navare (1): drm/i915/icl: Fix the TRANS_DDI_FUNC_CTL2 bitfield macro Michal Wajdeczko (1): drm/i915/guc: Support for extended GuC notification messages Michał Winiarski (3): drm/i915/icl: Default to Thread Group preemption for compute workloads drm/i915/selftests: Upgrade printing test/subtest name to pr_info drm/i915: Update size upon return from GEM_CREATE 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 (4): 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 drm/i915/guc: GuC suspend path cleanup 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ä (101): 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() drm/i915: Reorder gen3/4 swizzle detection logic drm/i915: Introduce i9xx_has_pfit() drm/i915: Introduce i9xx_has_pps() drm/i915: Introduce i915_has_asle() drm/i915: Use HPLLVCO_MOBILE for all PNVs drm/i915: Accept alloc_size == blocks drm/i915: Don't pass plane state to skl_compute_plane_wm() drm/i915: Extract skl_compute_wm_params() drm/i915: Allocate enough DDB for the cursor drm/i915: Make sure cursor has enough ddb for the selected wm level drm/i915: Keep plane watermarks enabled more aggressively drm/i915: Move some variables to tighter scope drm/i915: Don't pass pipe_wm around so much drm/i915: Inline skl_update_pipe_wm() into its only caller drm/i915: Really calculate the cursor ddb based on the highest enabled wm level drm/i915: Refactor EDID fixed mode search drm/i915: Pick the first mode from EDID as the fixed mode when there is no preferred mode drm/i915: Refactor VBT fixed mode handling drm/i915: Adjust DSI fixed mode handling drm/i915: Stop hand rolling drm_mode_match() drm/i915: Clean up EDID downclock mode lookup drm/i915: Mark AML 0x87CA as ULX drm/i915: Disable C3 when enabling vblank interrupts on i945gm drm/i915: Use vblank_disable_immediate on gen2 drm/i915: Add broadcast RGB property for DP MST drm/i915: Expose the force_audio property with DP MST drm/i915: Remove the 8bpc shackles from DP MST drm/i915: Add max_bpc property for DP MST drm/i915: Update TRANS_MSA_MISC for fastsets Zhenyu Wang (2): drm/i915: always pin hw_id for GVT context drm/i915: Disable semaphore on vGPU for now drivers/gpu/drm/i915/Makefile | 12 + 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 | 28 +- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- drivers/gpu/drm/i915/gvt/mmio_context.c | 246 ++-- drivers/gpu/drm/i915/gvt/scheduler.c | 31 +- drivers/gpu/drm/i915/gvt/vgpu.c | 2 +- drivers/gpu/drm/i915/i915_active.c | 23 +- drivers/gpu/drm/i915/i915_active.h | 16 - drivers/gpu/drm/i915/i915_cmd_parser.c | 12 +- drivers/gpu/drm/i915/i915_debugfs.c | 145 +-- drivers/gpu/drm/i915/i915_drv.c | 553 +++++---- drivers/gpu/drm/i915/i915_drv.h | 251 ++-- drivers/gpu/drm/i915/i915_gem.c | 726 ++++------- drivers/gpu/drm/i915/i915_gem.h | 9 +- drivers/gpu/drm/i915/i915_gem_context.c | 1078 ++++++++++++----- drivers/gpu/drm/i915/i915_gem_context.h | 260 +--- drivers/gpu/drm/i915/i915_gem_context_types.h | 175 +++ drivers/gpu/drm/i915/i915_gem_dmabuf.c | 3 +- drivers/gpu/drm/i915/i915_gem_evict.c | 18 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 42 +- drivers/gpu/drm/i915/i915_gem_fence_reg.c | 156 +-- drivers/gpu/drm/i915/i915_gem_gtt.c | 130 +- drivers/gpu/drm/i915/i915_gem_gtt.h | 26 +- 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 | 4 +- drivers/gpu/drm/i915/i915_gem_stolen.c | 2 +- drivers/gpu/drm/i915/i915_gem_tiling.c | 6 +- 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 | 154 +-- drivers/gpu/drm/i915/i915_gpu_error.h | 49 +- drivers/gpu/drm/i915/i915_irq.c | 271 +++-- drivers/gpu/drm/i915/i915_pci.c | 226 ++-- drivers/gpu/drm/i915/i915_perf.c | 114 +- 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 | 486 +++++--- drivers/gpu/drm/i915/i915_request.c | 433 +++++-- drivers/gpu/drm/i915/i915_request.h | 76 +- drivers/gpu/drm/i915/i915_reset.c | 437 ++++--- drivers/gpu/drm/i915/i915_reset.h | 6 + drivers/gpu/drm/i915/i915_scheduler.c | 90 +- drivers/gpu/drm/i915/i915_scheduler.h | 43 +- drivers/gpu/drm/i915/i915_sw_fence.c | 43 +- drivers/gpu/drm/i915/i915_sw_fence.h | 16 +- drivers/gpu/drm/i915/i915_timeline.c | 299 ++++- drivers/gpu/drm/i915/i915_timeline.h | 75 +- drivers/gpu/drm/i915/i915_timeline_types.h | 79 ++ drivers/gpu/drm/i915/i915_trace.h | 106 +- drivers/gpu/drm/i915/i915_user_extensions.c | 61 + drivers/gpu/drm/i915/i915_user_extensions.h | 20 + drivers/gpu/drm/i915/i915_utils.h | 31 + drivers/gpu/drm/i915/i915_vgpu.c | 11 +- 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 | 33 +- drivers/gpu/drm/i915/intel_atomic_plane.c | 54 +- drivers/gpu/drm/i915/intel_audio.c | 23 +- drivers/gpu/drm/i915/intel_bios.c | 133 ++- drivers/gpu/drm/i915/intel_cdclk.c | 75 +- 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_crt.c | 6 +- drivers/gpu/drm/i915/intel_csr.c | 2 +- drivers/gpu/drm/i915/intel_ddi.c | 295 +++-- drivers/gpu/drm/i915/intel_device_info.c | 43 +- drivers/gpu/drm/i915/intel_device_info.h | 18 +- drivers/gpu/drm/i915/intel_display.c | 516 +++++--- drivers/gpu/drm/i915/intel_dp.c | 526 ++++++-- drivers/gpu/drm/i915/intel_dp_mst.c | 145 ++- drivers/gpu/drm/i915/intel_dpio_phy.c | 5 +- drivers/gpu/drm/i915/intel_dpll_mgr.c | 770 ++++++------ drivers/gpu/drm/i915/intel_dpll_mgr.h | 5 +- drivers/gpu/drm/i915/intel_drv.h | 195 ++- drivers/gpu/drm/i915/intel_dsi.h | 1 - drivers/gpu/drm/i915/intel_dsi_vbt.c | 24 +- drivers/gpu/drm/i915/intel_engine_cs.c | 454 +++---- drivers/gpu/drm/i915/intel_engine_types.h | 527 ++++++++ drivers/gpu/drm/i915/intel_fbc.c | 2 +- drivers/gpu/drm/i915/intel_gpu_commands.h | 9 +- drivers/gpu/drm/i915/intel_guc.c | 45 +- drivers/gpu/drm/i915/intel_guc.h | 4 +- drivers/gpu/drm/i915/intel_guc_ads.c | 3 +- drivers/gpu/drm/i915/intel_guc_ct.c | 99 +- drivers/gpu/drm/i915/intel_guc_ct.h | 3 + drivers/gpu/drm/i915/intel_guc_fw.c | 4 +- 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 | 24 +- drivers/gpu/drm/i915/intel_hdcp.c | 1255 ++++++++++++++++++-- drivers/gpu/drm/i915/intel_hdmi.c | 772 ++++++++++-- drivers/gpu/drm/i915/intel_huc.c | 2 +- drivers/gpu/drm/i915/intel_huc_fw.c | 27 +- drivers/gpu/drm/i915/intel_i2c.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 509 ++++---- drivers/gpu/drm/i915/intel_lrc.h | 22 +- drivers/gpu/drm/i915/intel_lspcon.c | 13 +- drivers/gpu/drm/i915/intel_lvds.c | 92 +- drivers/gpu/drm/i915/intel_mocs.c | 14 +- drivers/gpu/drm/i915/intel_overlay.c | 2 +- drivers/gpu/drm/i915/intel_panel.c | 147 ++- drivers/gpu/drm/i915/intel_pipe_crc.c | 228 ++-- drivers/gpu/drm/i915/intel_pm.c | 454 ++++--- drivers/gpu/drm/i915/intel_psr.c | 303 +++-- drivers/gpu/drm/i915/intel_ringbuffer.c | 416 +++---- drivers/gpu/drm/i915/intel_ringbuffer.h | 641 ++-------- drivers/gpu/drm/i915/intel_runtime_pm.c | 65 +- drivers/gpu/drm/i915/intel_sdvo.c | 156 ++- drivers/gpu/drm/i915/intel_sideband.c | 12 +- drivers/gpu/drm/i915/intel_sprite.c | 80 +- drivers/gpu/drm/i915/intel_uc.c | 23 +- drivers/gpu/drm/i915/intel_uc.h | 1 + drivers/gpu/drm/i915/intel_uncore.c | 943 ++++++++------- drivers/gpu/drm/i915/intel_uncore.h | 267 ++++- drivers/gpu/drm/i915/intel_vbt_defs.h | 3 + drivers/gpu/drm/i915/intel_workarounds.c | 119 +- 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 | 25 +- 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 | 449 +++++-- drivers/gpu/drm/i915/selftests/i915_gem_dmabuf.c | 1 + drivers/gpu/drm/i915/selftests/i915_gem_evict.c | 8 +- drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 21 +- drivers/gpu/drm/i915/selftests/i915_gem_object.c | 4 +- drivers/gpu/drm/i915/selftests/i915_request.c | 37 +- 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 | 117 +- 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 | 9 +- drivers/gpu/drm/i915/selftests/intel_guc.c | 4 +- drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 298 ++++- drivers/gpu/drm/i915/selftests/intel_lrc.c | 266 ++++- drivers/gpu/drm/i915/selftests/intel_uncore.c | 155 ++- drivers/gpu/drm/i915/selftests/intel_workarounds.c | 418 ++++++- drivers/gpu/drm/i915/selftests/mock_context.c | 34 +- drivers/gpu/drm/i915/selftests/mock_engine.c | 145 ++- drivers/gpu/drm/i915/selftests/mock_gem_device.c | 54 +- 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 + drivers/gpu/drm/i915/selftests/mock_uncore.c | 10 +- drivers/gpu/drm/i915/selftests/mock_uncore.h | 2 +- .../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 + drivers/gpu/drm/i915/vlv_dsi.c | 74 +- drivers/gpu/drm/i915/vlv_dsi_pll.c | 4 +- include/drm/drm_audio_component.h | 7 +- include/drm/drm_hdcp.h | 7 +- include/drm/i915_pciids.h | 38 +- include/sound/hdaudio.h | 2 +- include/uapi/drm/i915_drm.h | 239 ++-- sound/hda/hdac_component.c | 18 +- 173 files changed, 14365 insertions(+), 7426 deletions(-) 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/i915_user_extensions.c create mode 100644 drivers/gpu/drm/i915/i915_user_extensions.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