All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wayne Lin <Wayne.Lin@amd.com>
To: <amd-gfx@lists.freedesktop.org>
Cc: Harry Wentland <harry.wentland@amd.com>,
	Leo Li <sunpeng.li@amd.com>,
	Aurabindo Pillai <aurabindo.pillai@amd.com>,
	Roman Li <roman.li@amd.com>, Wayne Lin <wayne.lin@amd.com>,
	Tom Chung <chiahsuan.chung@amd.com>,
	"Fangzhi Zuo" <jerry.zuo@amd.com>,
	Dan Wheeler <daniel.wheeler@amd.com>, Ray Wu <Ray.Wu@amd.com>,
	Ivan Lipski <ivan.lipski@amd.com>, Alex Hung <alex.hung@amd.com>,
	James Lin <PingLei.Lin@amd.com>,
	Chenyu Chen <Chen-Yu.Chen@amd.com>,
	Taimur Hassan <Syed.Hassan@amd.com>
Subject: [PATCH 42/74] drm/amd/display: [FW Promotion] Release 0.1.83.0
Date: Wed, 11 Nov 2026 09:28:48 +0800	[thread overview]
Message-ID: <20261111014100.3596072-43-Wayne.Lin@amd.com> (raw)
In-Reply-To: <20261111014100.3596072-1-Wayne.Lin@amd.com>

From: Taimur Hassan <Syed.Hassan@amd.com>

Updated DMUB interface
- Extend the SoC bounding box with urgent bandwidth targets, pipe and
  output counts, return-buffer sizes, and FAMS2 delay and timeout values
- Add RAMLESS_LOBF commands to copy static settings and to enable,
  disable, or wake the feature
- Carry a seamless-boot eDP request in the DCN init command

Signed-off-by: Taimur Hassan <Syed.Hassan@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@amd.com>
---
 .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h   | 203 +++++++++++++++++-
 1 file changed, 197 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
index 8684b1398d4e..c3aa0d0a74be 100644
--- a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
+++ b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
@@ -408,6 +408,42 @@ struct dmub_soc_bb_params {
 	uint32_t vmin_limit_dispclk_khz;
 	uint32_t vmin_limit_dcfclk_khz;
 	uint32_t g7_temperature_read_blackout_ns;
+	uint32_t fraction_of_urgent_bandwidth_nominal_target;
+	uint32_t fraction_of_urgent_bandwidth_flip_target;
+	uint32_t max_outstanding_reqs;
+	uint32_t return_bus_width_bytes;
+	uint32_t alternate_dram_carveout_size_mb;
+	uint32_t pipe_count;
+	uint32_t otg_count;
+	uint32_t num_dsc;
+	uint32_t TDLUT_33cube_count;
+	uint32_t max_num_dp2p0_streams;
+	uint32_t max_num_hdmi_frl_outputs;
+	uint32_t max_num_dp2p0_outputs;
+	uint32_t rob_buffer_size_kbytes;
+	uint32_t config_return_buffer_size_in_kbytes;
+	uint32_t config_return_buffer_segment_size_in_kbytes;
+	uint32_t meta_fifo_size_in_kentries;
+	uint32_t compressed_buffer_segment_size_in_kbytes;
+	uint32_t cursor_buffer_size;
+	uint32_t max_flip_time_us;
+	uint32_t max_flip_time_lines;
+	uint32_t hostvm_mode;
+	uint32_t max_vactive_det_fill_delay_us;
+	uint32_t ppt_max_allow_delay_us;
+	uint32_t temp_read_max_allow_delay_us;
+	uint32_t vblank_nom_default_us;
+	uint32_t fams2_max_allow_delay_us;
+	uint32_t fams2_scheduling_delay_us;
+	uint32_t fams2_vertical_interrupt_ack_delay_us;
+	uint32_t fams2_allow_programming_delay_us;
+	uint32_t fams2_min_allow_width_us;
+	uint32_t fams2_subvp_df_throttle_delay_us;
+	uint32_t fams2_subvp_programming_delay_us;
+	uint32_t fams2_drr_programming_delay_us;
+	uint32_t fams2_lock_timeout_us;
+	uint32_t fams2_recovery_timeout_us;
+	uint32_t fams2_flip_programming_delay_us;
 };
 #pragma pack(pop)
 
@@ -1193,7 +1229,7 @@ enum dmub_dc_bls_command_type {
 	 */
 	DMUB_CMD__DC_BLS_DCHVM_INIT = 0,
 	/**
-	 * Runs the fixed DCN hardware init sequence.
+	 * Initializes the DCN hardware.
 	 */
 	DMUB_CMD__DC_BLS_DCN_INIT = 1,
 };
@@ -2071,6 +2107,11 @@ enum dmub_cmd_type {
 	 */
 	DMUB_CMD__NBIF_AZ_PME_RESTORE = 99,
 
+	/**
+	 * Command type use for all RAMLESS_LOBF commands.
+	 */
+	DMUB_CMD__RAMLESS_LOBF = 100,
+
 	/**
 	 * Command type use for VBIOS shared commands.
 	 */
@@ -7732,15 +7773,157 @@ struct dmub_rb_cmd_boot_time_crc_init {
 	struct dmub_cmd_boot_time_crc_init_data data;
 };
 
+enum ramless_lobf_enable_cmd {
+	LOBF_DISABLE            = 0, /**< Disable Ramless LOBF */
+	LOBF_ENABLE             = 1, /**< Enable Ramless LOBF */
+	LOBF_IMMEDIATE_WAKE     = 2, /**< Immediate wake (program_manual_trigger) */
+	LOBF_ENTER_IDLE_SCREEN  = 3, /**< Enter idle screen */
+	LOBF_EXIT_IDLE_SCREEN   = 4, /**< Exit idle screen */
+};
+
+/**
+ * enum ramless_lobf_phy_mode - PHY power-state mode for Ramless LOBF.
+ */
+enum ramless_lobf_phy_mode {
+	LOBF_PHY_MODE_P0_ON     = 0, /**< PHY P0: lanes and PLL fully powered (normal operation) */
+	LOBF_PHY_MODE_P2_PLL_ON = 1, /**< PHY P2: lanes off, PLL still running (shallow sleep) */
+	LOBF_PHY_MODE_P3_PG     = 2, /**< PHY P3: lanes and PLL power-gated (deep sleep) */
+};
+
+/**
+ * enum dmub_cmd_ramless_lobf_type - Sub-command types for DMUB_CMD__RAMLESS_LOBF.
+ */
+enum dmub_cmd_ramless_lobf_type {
+	DMUB_CMD__RAMLESS_LOBF_COPY_SETTINGS = 0, /**< Copy static settings from driver to FW */
+	DMUB_CMD__RAMLESS_LOBF_ENABLE        = 1, /**< Enable or disable Ramless LOBF */
+};
+
+/**
+ * Data passed from driver to FW in a DMUB_CMD__RAMLESS_LOBF_ENABLE command.
+ */
+struct dmub_cmd_ramless_lobf_enable_data {
+	/**
+	 * @enable: 1 to enable LOBF, 0 to disable, 2 to force immediate wake (program_manual_trigger).
+	 */
+	uint8_t enable_command;
+	/**
+	 * @panel_inst: Panel instance index.
+	 */
+	uint8_t panel_inst;
+	/**
+	 * @pad: Align structure to 4-byte boundary.
+	 */
+	uint8_t pad[2];
+
+	uint32_t wake_source;
+};
+
+/**
+ * Definition of a DMUB_CMD__RAMLESS_LOBF_ENABLE command.
+ */
+struct dmub_rb_cmd_ramless_lobf_enable {
+	/**
+	 * Command header.
+	 */
+	struct dmub_cmd_header header;
+	/**
+	 * Data for enable/disable.
+	 */
+	struct dmub_cmd_ramless_lobf_enable_data data;
+};
+
+/**
+ * Data passed from driver to FW in a DMUB_CMD__RAMLESS_LOBF_COPY_SETTINGS command.
+ */
+struct dmub_cmd_ramless_lobf_copy_settings_data {
+	/**
+	 * @panel_inst: Panel instance index.
+	 */
+	uint8_t panel_inst;
+	/**
+	 * @otg_inst: OTG hardware instance.
+	 */
+	uint8_t otg_inst;
+	/**
+	 * @digfe_inst: DIG front-end hardware instance.
+	 */
+	uint8_t digfe_inst;
+	/**
+	 * @digbe_inst: DIG back-end hardware instance.
+	 */
+	uint8_t digbe_inst;
+	/**
+	 * @dpphy_inst: DP PHY hardware instance.
+	 */
+	uint8_t dpphy_inst;
+	/**
+	 * @aux_inst: AUX hardware instance.
+	 */
+	uint8_t aux_inst;
+	/**
+	 * @phy_mode: PHY power-state mode. Use values from enum ramless_lobf_phy_mode.
+	 */
+	uint8_t phy_mode;
+	/**
+	 * @enable_scenarios: Bitmask of enabled scenarios for Ramless LOBF.
+	 */
+	uint8_t enable_scenarios;
+	/**
+	 * @line_time_in_ns: Total length of one horizontal line (active + blanking) in
+	 * nanoseconds.  Used to calculate wake up timer IRQ.
+	 */
+	uint32_t line_time_in_ns;
+	/**
+	 * @vactive: Number of active video lines in the display mode.
+	 */
+	uint32_t vactive;
+
+	uint16_t reserved_0;
+	uint16_t lobf_min_sleep_time_us; /* if < min, then we don't want LOBF to sleep */
+	uint8_t debug_options;
+	uint8_t vmin_force_default_frames;
+	uint8_t visual_confirm;
+	uint8_t reserved[1];
+	/**
+	 * Use for AUX-less ALPM LFPS wake operation
+	 */
+	struct dmub_alpm_auxless_data auxless_alpm_data;
+};
+
+/**
+ * Definition of a DMUB_CMD__RAMLESS_LOBF_COPY_SETTINGS command.
+ */
+struct dmub_rb_cmd_ramless_lobf_copy_settings {
+	/**
+	 * Command header.
+	 */
+	struct dmub_cmd_header header;
+	/**
+	 * Data passed from driver to FW.
+	 */
+	struct dmub_cmd_ramless_lobf_copy_settings_data data;
+};
+
+/**
+ * Data passed from driver to FW in a DMUB_CMD__DC_BLS_DCN_INIT command.
+ */
+struct dmub_cmd_dc_bls_dcn_init_data {
+	/** 1 to keep the boot eDP stream for seamless boot. */
+	uint8_t seamless_boot_edp_requested : 1;
+	/** Reserved. Must be zero. */
+	uint8_t reserved_bits : 7;
+	/** Reserved. Must be zero. */
+	uint8_t reserved[3];
+};
+
 /**
  * Definition of a DMUB_CMD__DC_BLS_DCN_INIT command.
- *
- * Runs a fixed DCN hardware init sequence after the pre-OS to post-OS
- * transition. Carries no payload; anything driver-configurable is
- * programmed by the driver after this command completes.
  */
 struct dmub_rb_cmd_dc_bls_dcn_init {
-	struct dmub_cmd_header header; /**< Command header */
+	/** Command header. */
+	struct dmub_cmd_header header;
+	/** Data passed from driver to FW in a DMUB_CMD__DC_BLS_DCN_INIT command. */
+	struct dmub_cmd_dc_bls_dcn_init_data data;
 };
 
 /**
@@ -8164,6 +8347,14 @@ union dmub_rb_cmd {
 	struct dmub_rb_cmd_panel_polarity_reset panel_polarity_reset;
 
 	struct dmub_rb_cmd_dc_bls_dchvm_init dc_bls_dchvm_init;
+	/**
+	 * Definition of a DMUB_CMD__RAMLESS_LOBF_COPY_SETTINGS command.
+	 */
+	struct dmub_rb_cmd_ramless_lobf_copy_settings ramless_lobf_copy_settings;
+	/**
+	 * Definition of a DMUB_CMD__RAMLESS_LOBF_ENABLE command.
+	 */
+	struct dmub_rb_cmd_ramless_lobf_enable ramless_lobf_enable;
 };
 
 /**
-- 
2.43.0


  parent reply	other threads:[~2026-11-11  1:43 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-11  1:28 [PATCH 00/74] DC Patches November 16, 2026 Wayne Lin
2026-11-11  1:28 ` [PATCH 01/74] drm/amd/display: Fix elapsed time indentation Wayne Lin
2026-11-11  1:28 ` [PATCH 02/74] drm/amd/display: Correct the forced YCbCr420 comment Wayne Lin
2026-11-11  1:28 ` [PATCH 03/74] drm/amd/display: Remove duplicate block sequence leftovers Wayne Lin
2026-11-11  1:28 ` [PATCH 04/74] drm/amd/display: Skip UPSP programming when UPSP regs are absent Wayne Lin
2026-11-11  1:28 ` [PATCH 05/74] drm/amd/display: Dispatch commit_state_hw through dc2_funcs Wayne Lin
2026-11-11  1:28 ` [PATCH 06/74] drm/amd/display: Add leaf BLS entries for a virtual commit Wayne Lin
2026-11-11  1:28 ` [PATCH 07/74] drm/amd/display: Build the dcn401 virtual commit natively Wayne Lin
2026-11-11  1:28 ` [PATCH 08/74] drm/amd/display: Move HDMI FRL Polling Outside dc_lock Wayne Lin
2026-11-11  1:28 ` [PATCH 09/74] drm/amd/display: Extend the IOMMU mismatch workaround to DCN42B Wayne Lin
2026-11-11  1:28 ` [PATCH 10/74] drm/amd/display: Stop HDMI FRL status polling on fini Wayne Lin
2026-11-12  8:51   ` Eren Özen
2026-11-11  1:28 ` [PATCH 11/74] drm/amd/display: Relax stutter constraints for DRR streams Wayne Lin
2026-11-11  1:28 ` [PATCH 12/74] drm/amd/display: Include Ramless Idle in stutter relaxation Wayne Lin
2026-11-11  1:28 ` [PATCH 13/74] drm/amd/display: Initialize DMUB LSDMA ring buffer Wayne Lin
2026-11-11  1:28 ` [PATCH 14/74] drm/amd/display: Fix FFE test automation link rate change Wayne Lin
2026-11-11  1:28 ` [PATCH 15/74] drm/amd/display: Update indicate pstate enable sequence Wayne Lin
2026-11-11  1:28 ` [PATCH 16/74] drm/amd/display: HWSS Refactor - Watermarks Wayne Lin
2026-11-11  1:28 ` [PATCH 17/74] drm/amd/display: Resolve clk_mgr DPP DTO targets when the sequence is built Wayne Lin
2026-11-11  1:28 ` [PATCH 18/74] drm/amd/display: Resolve clk_mgr DTBCLK " Wayne Lin
2026-11-11  1:28 ` [PATCH 19/74] drm/amd/display: Resolve the DCN401 DENTIST divider " Wayne Lin
2026-11-11  1:28 ` [PATCH 20/74] drm/amd/display: Update default VCO frequency Wayne Lin
2026-11-11  1:28 ` [PATCH 21/74] drm/amd/display: commit validated target when minimal transition cannot be built Wayne Lin
2026-11-11  1:28 ` [PATCH 22/74] drm/amd/display: Update DP HPO to use correct APG instance Wayne Lin
2026-11-11  1:28 ` [PATCH 23/74] drm/amd/display: cleanup tiling and address formats Wayne Lin
2026-11-11  1:28 ` [PATCH 24/74] drm/amd/display: Enable SST PCON FRL DSC passthrough Wayne Lin
2026-11-11  1:28 ` [PATCH 25/74] drm/amd/display: Don't let HPD IRQ handler take dc_lock in reset Wayne Lin
2026-11-11  1:28 ` [PATCH 26/74] drm/amd/display: Skip visual confirm color programming when FW owns it Wayne Lin
2026-11-11  1:28 ` [PATCH 27/74] drm/amd/display: Fix Stage Optimizer Parameter Naming Wayne Lin
2026-11-11  1:28 ` [PATCH 28/74] drm/amd/display: Build the dcn401 seamless update in DC2 Wayne Lin
2026-11-11  1:28 ` [PATCH 29/74] drm/amd/display: Read accelerated mode through a query builder Wayne Lin
2026-11-11  1:28 ` [PATCH 30/74] drm/amd/display: Ensure exit IPS before checking flip status Wayne Lin
2026-11-11  1:28 ` [PATCH 31/74] drm/amd/display: Updating missing assignments for DCN6 Wayne Lin
2026-11-11  1:28 ` [PATCH 32/74] drm/amd/display: update dcn42b based on dcn42 Wayne Lin
2026-11-11  1:28 ` [PATCH 33/74] drm/amd/display: Build the kept-plane surface update in DC2 Wayne Lin
2026-11-11  1:28 ` [PATCH 34/74] drm/amd/display: Skip first-enable steps on a kept plane Wayne Lin
2026-11-11  1:28 ` [PATCH 35/74] drm/amd/display: Enable DRR stutter constraint relaxation on DCN42 Wayne Lin
2026-11-11  1:28 ` [PATCH 36/74] drm/amd/display: detect static screen state and propagate Wayne Lin
2026-11-11  1:28 ` [PATCH 37/74] drm/amd/display: Allow DC_PSR_MASK to enable PSR without DMUB PSR cap Wayne Lin
2026-11-11  1:28 ` [PATCH 38/74] drm/amd/display: Fix DSC teardown gating in post-unlock BLS sequence Wayne Lin
2026-11-11  1:28 ` [PATCH 39/74] drm/amd/display: Enable HDCP on DCN6 Wayne Lin
2026-11-11  1:28 ` [PATCH 40/74] drm/amd/display: enable DF C-state vote on DCN42B Wayne Lin
2026-11-11  1:28 ` [PATCH 41/74] drm/amd/display: Increase the DCN42 DDR5 stutter latency Wayne Lin
2026-11-11  1:28 ` Wayne Lin [this message]
2026-11-11  1:28 ` [PATCH 43/74] drm/amd/display: Promote DC to 3.2.406 Wayne Lin
2026-11-11  1:28 ` [PATCH 44/74] drm/amd/display: Fix KUnit tiled EDID size Wayne Lin
2026-11-12  7:17   ` Eren Özen
2026-11-11  1:28 ` [PATCH 45/74] drm/amd/display: fix hubbub read state logging Wayne Lin
2026-11-11  1:28 ` [PATCH 46/74] drm/amd/display: Keep panel power across link-loss retrain Wayne Lin
2026-11-11  1:28 ` [PATCH 47/74] drm/amd/display: Don't shrink zero-area recout in full viewport visual confirm Wayne Lin
2026-11-11  1:28 ` [PATCH 48/74] drm/amd/display: Keep patched HDMI panels on FRL across detect Wayne Lin
2026-11-11  1:28 ` [PATCH 49/74] drm/amd/display: Use expanded DMUB-provided SoC BB and IP caps Wayne Lin
2026-11-11  1:28 ` [PATCH 50/74] drm/amd/display: Only force P-State on first plane if TTU is below WM Wayne Lin
2026-11-11  1:28 ` [PATCH 51/74] drm/amd/display: Program the kept-plane scaler in DC2 Wayne Lin
2026-11-11  1:28 ` [PATCH 52/74] drm/amd/display: Add and remove two MPO planes " Wayne Lin
2026-11-11  1:28 ` [PATCH 53/74] drm/amd/display: Add DC2 state facts and split the builders Wayne Lin
2026-11-11  1:29 ` [PATCH 54/74] drm/amd/display: Program DC2 commit stereo once Wayne Lin
2026-11-11  1:29 ` [PATCH 55/74] drm/amd/display: Read DCN6 SOP constraints from the idle row Wayne Lin
2026-11-11  1:29 ` [PATCH 56/74] drm/amd/display: Use soc_bb hostvm fraction instead of hardcoded value Wayne Lin
2026-11-11  1:29 ` [PATCH 57/74] drm/amd/display: Increase state if dcfclk deep sleep needed exceeds dcfclk Wayne Lin
2026-11-11  1:29 ` [PATCH 58/74] drm/amd/display: Flip dml2_core_utils_get_segment_horizontal_contiguous() Inputs Wayne Lin
2026-11-11  1:29 ` [PATCH 59/74] drm/amd/display: Update DCN6 Calcs Wayne Lin
2026-11-11  1:29 ` [PATCH 60/74] drm/amd/display: Add effective_number_of_dpp parameter Wayne Lin
2026-11-11  1:29 ` [PATCH 61/74] drm/amd/display: Read DRAM channel width from SMU init table Wayne Lin
2026-11-11  1:29 ` [PATCH 62/74] drm/amd/display: Update DCN42B stutter latency to match DCN42 Wayne Lin
2026-11-11  1:29 ` [PATCH 63/74] drm/amd/display: Expect VRAM|GTT for the DMUB framebuffer Wayne Lin
2026-11-12  7:17   ` Eren Özen
2026-11-11  1:29 ` [PATCH 64/74] drm/amd/display: Report QoS latency bounds and request Wayne Lin
2026-11-11  1:29 ` [PATCH 65/74] drm/amd/display: Bypass chroma upsampling without the DPP cap Wayne Lin
2026-11-11  1:29 ` [PATCH 66/74] drm/amd/display: Limit VRAM aperture retrieval to DCN6 Wayne Lin
2026-11-11  1:29 ` [PATCH 67/74] drm/amd/display: Make DPP_PG_CONTROL and HUBP_PG_CONTROL BLS compliant Wayne Lin
2026-11-11  1:29 ` [PATCH 68/74] drm/amd/display: Seed boot clocks to avoid lowering pre-OS display clocks Wayne Lin
2026-11-11  1:29 ` [PATCH 69/74] drm/amd/display: Account for split pipe overlap in alt channel copy size Wayne Lin
2026-11-11  1:29 ` [PATCH 70/74] drm/amd/display: Get OPP heads and DPP pipes by stream in dc_resource Wayne Lin
2026-11-11  1:29 ` [PATCH 71/74] drm/amd/display: Program ODM 2:1 and 3:1 on one stream in DC2 Wayne Lin
2026-11-11  1:29 ` [PATCH 72/74] drm/amd/display: Enable Replay timing sync by default Wayne Lin
2026-11-11  1:29 ` [PATCH 73/74] drm/amd/display: [FW Promotion] Release 0.1.84.0 Wayne Lin
2026-11-11  1:29 ` [PATCH 74/74] drm/amd/display: Promote DC to 3.2.407 Wayne Lin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261111014100.3596072-43-Wayne.Lin@amd.com \
    --to=wayne.lin@amd.com \
    --cc=Chen-Yu.Chen@amd.com \
    --cc=PingLei.Lin@amd.com \
    --cc=Ray.Wu@amd.com \
    --cc=Syed.Hassan@amd.com \
    --cc=alex.hung@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=aurabindo.pillai@amd.com \
    --cc=chiahsuan.chung@amd.com \
    --cc=daniel.wheeler@amd.com \
    --cc=harry.wentland@amd.com \
    --cc=ivan.lipski@amd.com \
    --cc=jerry.zuo@amd.com \
    --cc=roman.li@amd.com \
    --cc=sunpeng.li@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.