From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id D7B9F103A9AA for ; Wed, 25 Mar 2026 11:07:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 70D9F10E845; Wed, 25 Mar 2026 11:07:50 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="S3Vlmm6p"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.8]) by gabe.freedesktop.org (Postfix) with ESMTPS id CC19710E6C7; Wed, 25 Mar 2026 11:07:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1774436869; x=1805972869; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=EbzFn6FEYRGvb0N51MoOPHw2yIQ2QC6YxptM48GzyAg=; b=S3Vlmm6pWYcGpenmT5SAZ0wfLR6b6PUXSdRcqhqyxVbcENgAvGXlzDWP WfLacy+2EG89hLgkAfWD8yvLp3vmS0CWkNNP2brFaK6K/cssn/6+aGVbJ QgBlwPGhK2G3OfzWbkkWyew4Tg410dc0gy8Hrw0PH6KTugacNh1nM24kf GQz/zmDkKb425NlD9D8aBrF+PlZQpnRwThD8V9TN7cyeXfJ7AatTQ/+mH /pboyjV81NIcWGhSV0MfqWoVDTBEFRQw9v4a2rP+dAuXo2RP31CDUpgI7 jyO86saTP3A/Aln3ZL/Yfpp8zOzRCH84O0RiJ31OGVpUVkfU1Q+95t6VP Q==; X-CSE-ConnectionGUID: r6aX2mLEQzq6H+s7EWTcPA== X-CSE-MsgGUID: YxNeOnlfQ4+TeT2ygsMe7w== X-IronPort-AV: E=McAfee;i="6800,10657,11739"; a="93047480" X-IronPort-AV: E=Sophos;i="6.23,140,1770624000"; d="scan'208";a="93047480" Received: from fmviesa006.fm.intel.com ([10.60.135.146]) by fmvoesa102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2026 04:07:48 -0700 X-CSE-ConnectionGUID: CQrhTM9MRW6fivPJEsWV1Q== X-CSE-MsgGUID: rkMZw1H7TJ2hzCzmzhVhrA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,140,1770624000"; d="scan'208";a="219798240" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by fmviesa006.fm.intel.com with ESMTP; 25 Mar 2026 04:07:46 -0700 From: Suraj Kandpal To: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: sowmiya.s@intel.com, uma.shankar@intel.com, swati2.sharma@intel.com, chaitanya.kumar.borah@intel.com, arun.r.murthy@intel.com, Suraj Kandpal Subject: [PATCH v3 00/26] Enable Pipe writeback Date: Wed, 25 Mar 2026 16:37:18 +0530 Message-Id: <20260325110744.1096786-1-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" This series aims to enable pipe writeback functionality on ADLP where it has been tested. The plan is to slowly accomodate all supported hardware after this functionality is tested on them. This series currently sits on top of two series still under review in drm core. They are squashed as the first two patches of this series. This series enables the triggered captured mode where we need to trigger a capture. v2 - Do required changes to take into account the new drm writeback framework v3 - Fix patch series to apply cleanly Signed-off-by: Suraj Kandpal Dmitry Baryshkov (1): drm: writeback: rename drm_writeback_connector_init_with_encoder() Suraj Kandpal (25): drm: writeback: Refactor drm_writeback_connector structure drm/i915/writeback: Add writeback registers drm/i915/writeback: Add some preliminary writeback definitions drm/i915/writeback: Init writeback connector drm/i915/writeback: Add function to get modes drm/i915/writeback: Add hook to check modes drm/i915/writeback: Define encoder->get_hw_state drm/i915/writeback: Fill encoder->get_config drm/i915/writeback: Add private structure for writeback job drm/i915/writeback: Define function for prepare and cleanup hooks drm/i915/writeback: Define compute_config for writeback drm/i915/writeback: Define function for connector function detect drm/i915/writeback: Define function to destroy writeback connector drm/i915/writeback: Add connector atomic check drm/i915/writeback: Add writeback to xe Makefile drm/i915/writeback: Add the enable sequence from writeback drm/i915/writeback: Define writeback frame capture function drm/{i915/xe}/writeback: Add a writeback helper to get ggtt address drm/i915/writeback: Configure WD_STRIDE reg drm/i915/writeback: Configure WD_SURF register drm/i915/writeback: Enable writeback interrupts drm/i915/writeback: Initialize writeback encoder. drm/i915/writeback: Define the disable sequence for writeback drm/i915/writeback: Make exception for writeback connector drm/i915/writeback: Modify state verify function .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 +- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 2 +- .../drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c | 30 +- .../gpu/drm/arm/display/komeda/komeda_crtc.c | 2 +- .../gpu/drm/arm/display/komeda/komeda_kms.h | 6 +- .../arm/display/komeda/komeda_wb_connector.c | 39 +- drivers/gpu/drm/arm/malidp_crtc.c | 2 +- drivers/gpu/drm/arm/malidp_drv.h | 2 +- drivers/gpu/drm/arm/malidp_mw.c | 32 +- drivers/gpu/drm/drm_atomic_uapi.c | 4 +- drivers/gpu/drm/drm_writeback.c | 118 +--- drivers/gpu/drm/i915/Makefile | 2 + drivers/gpu/drm/i915/display/intel_acpi.c | 1 + .../drm/i915/display/intel_crtc_state_dump.c | 2 +- drivers/gpu/drm/i915/display/intel_display.c | 181 +++-- drivers/gpu/drm/i915/display/intel_display.h | 4 + .../drm/i915/display/intel_display_debugfs.c | 3 + .../drm/i915/display/intel_display_device.c | 29 +- .../drm/i915/display/intel_display_device.h | 2 +- .../gpu/drm/i915/display/intel_display_irq.c | 10 + .../drm/i915/display/intel_display_limits.h | 2 + .../drm/i915/display/intel_display_power.c | 4 + .../drm/i915/display/intel_display_power.h | 2 + .../gpu/drm/i915/display/intel_display_regs.h | 1 + .../drm/i915/display/intel_display_types.h | 1 + drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 3 + drivers/gpu/drm/i915/display/intel_opregion.c | 2 +- drivers/gpu/drm/i915/display/intel_pmdemand.c | 3 + drivers/gpu/drm/i915/display/intel_vdsc.c | 4 + .../gpu/drm/i915/display/intel_writeback.c | 651 ++++++++++++++++++ .../gpu/drm/i915/display/intel_writeback.h | 23 + .../drm/i915/display/intel_writeback_helper.c | 12 + .../drm/i915/display/intel_writeback_helper.h | 8 + .../drm/i915/display/intel_writeback_reg.h | 142 ++++ .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 9 +- drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 13 +- drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h | 4 +- .../gpu/drm/renesas/rcar-du/rcar_du_crtc.h | 4 +- .../drm/renesas/rcar-du/rcar_du_writeback.c | 31 +- drivers/gpu/drm/vc4/vc4_txp.c | 17 +- drivers/gpu/drm/vkms/vkms_drv.h | 2 +- drivers/gpu/drm/vkms/vkms_writeback.c | 15 +- drivers/gpu/drm/xe/Makefile | 4 +- .../gpu/drm/xe/display/xe_writeback_helper.c | 13 + include/drm/drm_connector.h | 69 +- include/drm/drm_modeset_helper_vtables.h | 4 +- include/drm/drm_writeback.h | 98 +-- 47 files changed, 1288 insertions(+), 336 deletions(-) create mode 100644 drivers/gpu/drm/i915/display/intel_writeback.c create mode 100644 drivers/gpu/drm/i915/display/intel_writeback.h create mode 100644 drivers/gpu/drm/i915/display/intel_writeback_helper.c create mode 100644 drivers/gpu/drm/i915/display/intel_writeback_helper.h create mode 100644 drivers/gpu/drm/i915/display/intel_writeback_reg.h create mode 100644 drivers/gpu/drm/xe/display/xe_writeback_helper.c -- 2.34.1