From patchwork Tue Sep 3 16:46:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Timo Aaltonen X-Patchwork-Id: 1980222 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Wys3f0BbGz1yg9 for ; Wed, 4 Sep 2024 02:47:09 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1slWgA-0003nc-W9; Tue, 03 Sep 2024 16:46:55 +0000 Received: from smtp-relay-canonical-0.internal ([10.131.114.83] helo=smtp-relay-canonical-0.canonical.com) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1slWg8-0003nC-EN for kernel-team@lists.ubuntu.com; Tue, 03 Sep 2024 16:46:52 +0000 Received: from [10.172.193.56] (1.general.tjaalton.uk.vpn [10.172.193.56]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 6F1C73F2AE for ; Tue, 3 Sep 2024 16:46:51 +0000 (UTC) Message-ID: <494fcffe-94da-4dea-91e5-ed6842f76409@ubuntu.com> Date: Tue, 3 Sep 2024 19:46:50 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Timo Aaltonen To: Kernel Team Subject: [PULL][O]: drm/xe: Backport support for LNL/BMG from 6.12 Autocrypt: addr=tjaalton@ubuntu.com; keydata= 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 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" This is the first batch of enabling new/upcoming Lunar Lake / Battlemage in the oracular kernel. There are two derivative kernels that need this, so having it in the generic kernel makes sense. Nearly all clean cherry-picks, and all from linux-next. --- BugLink: https://bugs.launchpad.net/bugs/2076209 [Impact] Intel Lunar Lake & Battlemage GPU's don't work in 24.10. [Fix] Backport commits from linux-next to 6.11 in two batches, the second one dropping xe.force_probe requirement. [Test case] Boot the new kernel, check from dmesg that the drm driver is initialized correctly. [Where problems could occur] The backport is mostly confined in drm/xe, which isn't used by default on any hardware before LNL/BMG, so chance of regressions should be limited. Also, this backport is validated by the vendor. ---------------------------------------------------------------- The following changes since commit 431c1646e1f86b949fa3685efc50b660a364c2b6: Linux 6.11-rc6 (2024-09-01 19:46:02 +1200) are available in the Git repository at: https://git.launchpad.net/~tjaalton/linux lnl for you to fetch changes up to 24a51165336d3fb3effa66ef84ce4cd414694cf0: drm/xe: Fix total initialization in xe_ggtt_print_holes() (2024-09-03 17:40:19 +0300) ---------------------------------------------------------------- Akshata Jahagirdar (5): drm/xe/migrate: Handle clear ccs logic for xe2 dgfx drm/xe/migrate: Add helper function to program identity map drm/xe/xe2: Introduce identity map for compressed pat for vram drm/xe/xe_migrate: Handle migration logic for xe2+ dgfx drm/xe/xe2: Introduce performance changes Alexander Usyskin (1): drm/xe/gsc: add Battlemage support Daniele Ceraolo Spurio (4): drm/xe/huc: Define HuC binary for LNL drm/xe/gsc: Define GSC binary for LNL drm/xe/huc: Define HuC binary for BMG drm/xe/uc: Use managed bo for HuC and GSC objects Dominik Grzegorzek (1): drm/xe: Move and export xe_hw_engine lookup. Gustavo Sousa (1): drm/i915: Skip programming FIA link enable bits for MTL+ Imre Deak (2): drm/xe: Suspend/resume user access only during system s/r drm/xe: Handle polling only for system s/r in xe_display_pm_suspend/resume() Jani Nikula (12): drm/i915: move rawclk from runtime to display runtime info drm/xe/display: drop unused rawclk_freq and RUNTIME_INFO() drm/xe/display: fix compat IS_DISPLAY_STEP() range end drm/xe/display: remove intel_display_step_name() to simplify drm/xe/display: remove the unused compat HAS_GMD_ID() drm/xe/step: define more steppings E-J drm/i915/display: rename IS_DISPLAY_IP_RANGE() to IS_DISPLAY_VER_FULL() drm/i915/display: rename IS_DISPLAY_IP_STEP() to IS_DISPLAY_VER_STEP() drm/i915/display: identify display steppings in display probe drm/i915/display: switch to display detected steppings drm/i915: remove display stepping handling drm/xe: remove display stepping handling Jouni Högander (1): drm/i915/psr: Prevent Panel Replay if CRC calculation is enabled Juha-Pekka Heikkila (3): drm/i915/display: Don't enable decompression on Xe2 with Tile4 drm/fourcc: define Intel Xe2 related tile4 ccs modifiers drm/i915/display: allow creation of Xe2 ccs framebuffers Julia Filipchuk (3): drm/xe/guc: Bump minimum required GuC version to v70.29.2 drm/xe/guc: Define GuC version v70.29.2 for BMG drm/xe/guc: Enable w/a 14022293748 and 22019794406 Lucas De Marchi (3): drm/xe: Generate oob before compiling anything drm/xe/uapi: Expose SIMD16 EU mask in topology query drm/xe: Fix warning on unreachable statement Maarten Lankhorst (1): drm/xe/display: Match i915 driver suspend/resume sequences better Matthew Auld (2): drm/i915: disable fbc due to Wa_16023588340 drm/xe: fix engine_class bounds check again Matthew Brost (6): drm/xe: Use reserved copy engine for user binds on faulting devices drm/xe: Move ggtt_fini to devm managed drm/xe: Set firmware state to loadable before registering guc_fini_hw drm/xe: Drop warn on xe_guc_pc_gucrc_disable in guc pc fini drm/xe: Move hw_engine_fini to devm managed drm/xe: Update xe_sa to use xe_managed_bo_create_pin_map Mitul Golani (3): drm/i915/display: Cache adpative sync caps to use it later drm/i915/display: WA for Re-initialize dispcnlunitt1 xosc clock drm/i915/display/dp: Compute AS SDP when vrr is also enabled Nathan Chancellor (1): drm/xe: Fix total initialization in xe_ggtt_print_holes() Ngai-Mint Kwan (1): drm/xe/xe2lpm: Extend Wa_16021639441 Pallavi Mishra (1): drm/xe/xe2: Enable Priority Mem Read Rodrigo Vivi (12): drm/xe: Removed unused xe_ggtt_printk drm/xe: Introduce GGTT documentation drm/xe: Remove unnecessary drm_mm.h includes drm/{i915, xe}: Avoid direct inspection of dpt_vma from outside dpt drm/xe: Encapsulate drm_mm_node inside xe_ggtt_node drm/xe: Rename xe_ggtt_node related functions drm/xe: Limit drm_mm_node_allocated access to xe_ggtt_node drm/xe: Introduce xe_ggtt_largest_hole drm/xe: Introduce xe_ggtt_print_holes drm/xe: Refactor xe_ggtt balloon functions to make the node clear drm/xe: Make xe_ggtt_node struct independent drm/xe: Fix missing runtime outer protection for ggtt_remove_node Sai Teja Pottumuttu (1): drm/xe/xe2hpg: Introduce performance tuning changes for Xe2_HPG Shekhar Chauhan (1): drm/xe/xe2: Add performance turning changes Suraj Kandpal (5): drm/i915/hdcp: Add encoder check in intel_hdcp_get_capability drm/i915/hdcp: Add encoder check in hdcp2_get_capability drm/xe/hdcp: Check GSC structure validity drm/i915/dp: Clear VSC SDP during post ddi disable routine drm/i915/pps: Disable DPLS_GATING around pps sequence Tejas Upadhyay (3): drm/xe: Move enable host l2 VRAM post MCR init drm/xe: Write all slices if its mcr register drm/xe: Define STATELESS_COMPRESSION_CTRL as mcr register Uma Shankar (1): drm/xe/fbdev: Limit the usage of stolen for LNL+ Vinod Govindapillai (1): drm/xe/display: handle HPD polling in display runtime suspend/resume Documentation/gpu/xe/xe_mm.rst | 15 ++ drivers/gpu/drm/i915/display/intel_alpm.c | 2 +- drivers/gpu/drm/i915/display/intel_backlight.c | 10 +- drivers/gpu/drm/i915/display/intel_display.c | 2 + drivers/gpu/drm/i915/display/intel_display_device.c | 232 ++++++++++++++++++++++-- drivers/gpu/drm/i915/display/intel_display_device.h | 21 ++- drivers/gpu/drm/i915/display/intel_display_power.c | 10 +- drivers/gpu/drm/i915/display/intel_display_power_well.c | 4 +- drivers/gpu/drm/i915/display/intel_display_types.h | 1 + drivers/gpu/drm/i915/display/intel_display_wa.h | 8 + drivers/gpu/drm/i915/display/intel_dmc.c | 2 +- drivers/gpu/drm/i915/display/intel_dp.c | 29 +-- drivers/gpu/drm/i915/display/intel_dp.h | 1 - drivers/gpu/drm/i915/display/intel_dp_aux.c | 4 +- drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 11 +- drivers/gpu/drm/i915/display/intel_dpt.c | 4 + drivers/gpu/drm/i915/display/intel_dpt.h | 3 + drivers/gpu/drm/i915/display/intel_fb.c | 18 ++ drivers/gpu/drm/i915/display/intel_fbc.c | 8 +- drivers/gpu/drm/i915/display/intel_hdcp.c | 13 +- drivers/gpu/drm/i915/display/intel_pmdemand.c | 2 +- drivers/gpu/drm/i915/display/intel_pps.c | 14 +- drivers/gpu/drm/i915/display/intel_psr.c | 14 +- drivers/gpu/drm/i915/display/intel_tc.c | 3 + drivers/gpu/drm/i915/display/intel_vrr.c | 3 +- drivers/gpu/drm/i915/display/skl_universal_plane.c | 13 +- drivers/gpu/drm/i915/i915_drv.h | 5 - drivers/gpu/drm/i915/intel_device_info.c | 6 - drivers/gpu/drm/i915/intel_device_info.h | 2 - drivers/gpu/drm/i915/intel_step.c | 84 ++++----- drivers/gpu/drm/i915/intel_step.h | 2 - drivers/gpu/drm/xe/Makefile | 25 +-- drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 1 + drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 6 - drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h | 7 +- drivers/gpu/drm/xe/compat-i915-headers/intel_step.h | 10 +- drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 6 +- drivers/gpu/drm/xe/display/xe_display.c | 46 ++++- drivers/gpu/drm/xe/display/xe_display.h | 4 + drivers/gpu/drm/xe/display/xe_display_wa.c | 16 ++ drivers/gpu/drm/xe/display/xe_fb_pin.c | 50 ++++-- drivers/gpu/drm/xe/display/xe_hdcp_gsc.c | 8 +- drivers/gpu/drm/xe/display/xe_plane_initial.c | 6 + drivers/gpu/drm/xe/regs/xe_engine_regs.h | 1 + drivers/gpu/drm/xe/regs/xe_gt_regs.h | 10 +- drivers/gpu/drm/xe/xe_bo.c | 2 +- drivers/gpu/drm/xe/xe_bo.h | 9 +- drivers/gpu/drm/xe/xe_bo_types.h | 5 +- drivers/gpu/drm/xe/xe_debugfs.c | 3 +- drivers/gpu/drm/xe/xe_device_types.h | 11 +- drivers/gpu/drm/xe/xe_exec_queue.c | 155 +++++++---------- drivers/gpu/drm/xe/xe_exec_queue.h | 6 +- drivers/gpu/drm/xe/xe_ggtt.c | 484 ++++++++++++++++++++++++++++++++++++++------------- drivers/gpu/drm/xe/xe_ggtt.h | 28 +-- drivers/gpu/drm/xe/xe_ggtt_types.h | 54 +++++- drivers/gpu/drm/xe/xe_gsc.c | 12 +- drivers/gpu/drm/xe/xe_gsc_proxy.c | 36 +--- drivers/gpu/drm/xe/xe_gt.c | 10 +- drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 108 +++++------- drivers/gpu/drm/xe/xe_gt_sriov_pf_config_types.h | 5 +- drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 44 +++-- drivers/gpu/drm/xe/xe_gt_topology.c | 27 ++- drivers/gpu/drm/xe/xe_gt_types.h | 11 ++ drivers/gpu/drm/xe/xe_guc.c | 4 +- drivers/gpu/drm/xe/xe_guc.h | 10 ++ drivers/gpu/drm/xe/xe_guc_ads.c | 6 + drivers/gpu/drm/xe/xe_guc_pc.c | 2 +- drivers/gpu/drm/xe/xe_heci_gsc.c | 28 ++- drivers/gpu/drm/xe/xe_heci_gsc.h | 10 +- drivers/gpu/drm/xe/xe_huc.c | 19 +- drivers/gpu/drm/xe/xe_hw_engine.c | 41 ++++- drivers/gpu/drm/xe/xe_hw_engine.h | 7 + drivers/gpu/drm/xe/xe_irq.c | 2 + drivers/gpu/drm/xe/xe_migrate.c | 187 +++++++++++++------- drivers/gpu/drm/xe/xe_migrate.h | 2 +- drivers/gpu/drm/xe/xe_pci.c | 10 +- drivers/gpu/drm/xe/xe_pm.c | 8 +- drivers/gpu/drm/xe/xe_query.c | 4 +- drivers/gpu/drm/xe/xe_res_cursor.h | 1 - drivers/gpu/drm/xe/xe_sa.c | 13 +- drivers/gpu/drm/xe/xe_sa_types.h | 1 + drivers/gpu/drm/xe/xe_step.c | 57 +++--- drivers/gpu/drm/xe/xe_step_types.h | 30 +++- drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 1 - drivers/gpu/drm/xe/xe_tuning.c | 21 ++- drivers/gpu/drm/xe/xe_uc_fw.c | 31 ++-- drivers/gpu/drm/xe/xe_vm.c | 8 +- drivers/gpu/drm/xe/xe_wa.c | 10 ++ drivers/gpu/drm/xe/xe_wa_oob.rules | 5 + include/uapi/drm/drm_fourcc.h | 25 +++ include/uapi/drm/xe_drm.h | 10 +- 91 files changed, 1564 insertions(+), 741 deletions(-) create mode 100644 drivers/gpu/drm/xe/display/xe_display_wa.c