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>,
Rafal Ostrowski <rafal.ostrowski@amd.com>,
Alvin Lee <alvin.lee2@amd.com>
Subject: [PATCH 38/74] drm/amd/display: Fix DSC teardown gating in post-unlock BLS sequence
Date: Wed, 11 Nov 2026 09:28:44 +0800 [thread overview]
Message-ID: <20261111014100.3596072-39-Wayne.Lin@amd.com> (raw)
In-Reply-To: <20261111014100.3596072-1-Wayne.Lin@amd.com>
From: Rafal Ostrowski <rafal.ostrowski@amd.com>
[Why]
- The builder passed a NULL is_ungated, so these steps never programmed
under BLS: DSC_WAIT_DISCONNECT_PENDING_CLEAR, DSC_DISABLE,
DCCG_SET_REF_DSCCLK. The immediate path does program them.
[How]
- Store the DSC_PG_STATUS result in the new dsc->pg_ungated; the three
steps read it at execute time.
- Pass the DSC pointer to the four adders instead of dsc_inst and
is_ungated.
- hwss_add_dsc_pg_status returns whether it emitted a step; if not, the
builder emits no dependent steps.
- Adders validate their arguments and hooks; executors only program.
Cc: Alvin Lee <alvin.lee2@amd.com>
Signed-off-by: Rafal Ostrowski <rafal.ostrowski@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@amd.com>
---
.../drm/amd/display/dc/core/dc_hw_sequencer.c | 81 +++++++++----------
drivers/gpu/drm/amd/display/dc/dc_dsc.h | 1 +
.../amd/display/dc/hwss/dcn401/dcn401_hwseq.c | 20 +++--
.../amd/display/dc/hwss/dcn60/dcn60_hwseq.c | 9 +++
.../amd/display/dc/hwss/dcn60/dcn60_hwseq.h | 1 +
.../amd/display/dc/hwss/dcn60/dcn60_init.c | 2 +-
.../drm/amd/display/dc/hwss/hw_sequencer.h | 22 ++---
7 files changed, 66 insertions(+), 70 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
index 32a33d29835e..c5e8a88d051d 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
@@ -4033,22 +4033,16 @@ void hwss_disable_phantom_crtc(union block_sequence_params *params)
void hwss_dsc_pg_status(union block_sequence_params *params)
{
struct dce_hwseq *hws = params->dsc_pg_status_params.hws;
- int dsc_inst = params->dsc_pg_status_params.dsc_inst;
+ struct display_stream_compressor *dsc = params->dsc_pg_status_params.dsc;
- if (hws && hws->funcs.dsc_pg_status)
- params->dsc_pg_status_params.is_ungated = hws->funcs.dsc_pg_status(hws, dsc_inst);
+ dsc->pg_ungated = hws->funcs.dsc_pg_status(hws, dsc->inst);
}
void hwss_dsc_wait_disconnect_pending_clear(union block_sequence_params *params)
{
struct display_stream_compressor *dsc = params->dsc_wait_disconnect_pending_clear_params.dsc;
- if (!params->dsc_wait_disconnect_pending_clear_params.is_ungated)
- return;
- if (*params->dsc_wait_disconnect_pending_clear_params.is_ungated == false)
- return;
-
- if (dsc && dsc->funcs->dsc_wait_disconnect_pending_clear)
+ if (dsc->pg_ungated)
dsc->funcs->dsc_wait_disconnect_pending_clear(dsc);
}
@@ -4056,27 +4050,17 @@ void hwss_dsc_disable(union block_sequence_params *params)
{
struct display_stream_compressor *dsc = params->dsc_disable_params.dsc;
- if (!params->dsc_disable_params.is_ungated)
- return;
- if (*params->dsc_disable_params.is_ungated == false)
- return;
-
- if (dsc && dsc->funcs->dsc_disable)
+ if (dsc->pg_ungated)
dsc->funcs->dsc_disable(dsc);
}
void hwss_dccg_set_ref_dscclk(union block_sequence_params *params)
{
struct dccg *dccg = params->dccg_set_ref_dscclk_params.dccg;
- int dsc_inst = params->dccg_set_ref_dscclk_params.dsc_inst;
-
- if (!params->dccg_set_ref_dscclk_params.is_ungated)
- return;
- if (*params->dccg_set_ref_dscclk_params.is_ungated == false)
- return;
+ const struct display_stream_compressor *dsc = params->dccg_set_ref_dscclk_params.dsc;
- if (dccg && dccg->funcs->set_ref_dscclk)
- dccg->funcs->set_ref_dscclk(dccg, dsc_inst);
+ if (dsc->pg_ungated)
+ dccg->funcs->set_ref_dscclk(dccg, dsc->inst);
}
void hwss_dpp_pg_control(union block_sequence_params *params)
@@ -5457,54 +5441,65 @@ void hwss_add_disable_phantom_crtc(struct block_sequence_state *seq_state,
}
}
-void hwss_add_dsc_pg_status(struct block_sequence_state *seq_state,
+bool hwss_add_dsc_pg_status(struct block_sequence_state *seq_state,
struct dce_hwseq *hws,
- int dsc_inst,
- bool is_ungated)
+ struct display_stream_compressor *dsc)
{
- if (*seq_state->num_steps < MAX_HWSS_BLOCK_SEQUENCE_SIZE) {
- seq_state->steps[*seq_state->num_steps].func = DSC_PG_STATUS;
- seq_state->steps[*seq_state->num_steps].params.dsc_pg_status_params.hws = hws;
- seq_state->steps[*seq_state->num_steps].params.dsc_pg_status_params.dsc_inst = dsc_inst;
- seq_state->steps[*seq_state->num_steps].params.dsc_pg_status_params.is_ungated = is_ungated;
- (*seq_state->num_steps)++;
- }
+ if (!seq_state || !seq_state->steps || !seq_state->num_steps ||
+ !hws || !hws->funcs.dsc_pg_status || !dsc)
+ return false;
+
+ if (*seq_state->num_steps >= MAX_HWSS_BLOCK_SEQUENCE_SIZE)
+ return false;
+
+ seq_state->steps[*seq_state->num_steps].func = DSC_PG_STATUS;
+ seq_state->steps[*seq_state->num_steps].params.dsc_pg_status_params.hws = hws;
+ seq_state->steps[*seq_state->num_steps].params.dsc_pg_status_params.dsc = dsc;
+ (*seq_state->num_steps)++;
+
+ return true;
}
void hwss_add_dsc_wait_disconnect_pending_clear(struct block_sequence_state *seq_state,
- struct display_stream_compressor *dsc,
- bool *is_ungated)
+ struct display_stream_compressor *dsc)
{
+ if (!seq_state || !seq_state->steps || !seq_state->num_steps ||
+ !dsc || !dsc->funcs || !dsc->funcs->dsc_wait_disconnect_pending_clear)
+ return;
+
if (*seq_state->num_steps < MAX_HWSS_BLOCK_SEQUENCE_SIZE) {
seq_state->steps[*seq_state->num_steps].func = DSC_WAIT_DISCONNECT_PENDING_CLEAR;
seq_state->steps[*seq_state->num_steps].params.dsc_wait_disconnect_pending_clear_params.dsc = dsc;
- seq_state->steps[*seq_state->num_steps].params.dsc_wait_disconnect_pending_clear_params.is_ungated = is_ungated;
(*seq_state->num_steps)++;
}
}
void hwss_add_dsc_disable(struct block_sequence_state *seq_state,
- struct display_stream_compressor *dsc,
- bool *is_ungated)
+ struct display_stream_compressor *dsc)
{
+ if (!seq_state || !seq_state->steps || !seq_state->num_steps ||
+ !dsc || !dsc->funcs || !dsc->funcs->dsc_disable)
+ return;
+
if (*seq_state->num_steps < MAX_HWSS_BLOCK_SEQUENCE_SIZE) {
seq_state->steps[*seq_state->num_steps].func = DSC_DISABLE;
seq_state->steps[*seq_state->num_steps].params.dsc_disable_params.dsc = dsc;
- seq_state->steps[*seq_state->num_steps].params.dsc_disable_params.is_ungated = is_ungated;
(*seq_state->num_steps)++;
}
}
void hwss_add_dccg_set_ref_dscclk(struct block_sequence_state *seq_state,
struct dccg *dccg,
- int dsc_inst,
- bool *is_ungated)
+ const struct display_stream_compressor *dsc)
{
+ if (!seq_state || !seq_state->steps || !seq_state->num_steps ||
+ !dccg || !dccg->funcs || !dccg->funcs->set_ref_dscclk || !dsc)
+ return;
+
if (*seq_state->num_steps < MAX_HWSS_BLOCK_SEQUENCE_SIZE) {
seq_state->steps[*seq_state->num_steps].func = DCCG_SET_REF_DSCCLK;
seq_state->steps[*seq_state->num_steps].params.dccg_set_ref_dscclk_params.dccg = dccg;
- seq_state->steps[*seq_state->num_steps].params.dccg_set_ref_dscclk_params.dsc_inst = dsc_inst;
- seq_state->steps[*seq_state->num_steps].params.dccg_set_ref_dscclk_params.is_ungated = is_ungated;
+ seq_state->steps[*seq_state->num_steps].params.dccg_set_ref_dscclk_params.dsc = dsc;
(*seq_state->num_steps)++;
}
}
diff --git a/drivers/gpu/drm/amd/display/dc/dc_dsc.h b/drivers/gpu/drm/amd/display/dc/dc_dsc.h
index de169ed3b3b7..99592d5bb3c4 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_dsc.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_dsc.h
@@ -43,6 +43,7 @@ struct display_stream_compressor {
const struct dsc_funcs *funcs;
struct dc_context *ctx;
int inst;
+ bool pg_ungated;
};
struct dc_dsc_policy {
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c b/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
index f14cba867111..cc78b4794cef 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
@@ -1828,7 +1828,8 @@ static void dcn401_add_dsc_sequence_for_odm_change(struct dc *dc, struct dc_stat
if (otg_master->stream_res.dsc && otg_master->stream->timing.flags.DSC) {
if (!hwss_add_dsc_sequence_for_stream(seq_state, otg_master,
otg_master->dsc_padding_params.dsc_hactive_padding, NULL)) {
- ASSERT(false);
+ /* DSC sequence is deliberately skipped while the stream is dpms off */
+ ASSERT(otg_master->stream->dpms_off);
return;
}
} else if (otg_master->stream_res.dsc && !otg_master->stream->timing.flags.DSC) {
@@ -3635,12 +3636,10 @@ void dcn401_post_unlock_reset_opp_sequence(
if (dc->hwss.wait_for_mpcc_disconnect_sequence)
dc->hwss.wait_for_mpcc_disconnect_sequence(dc, dc->res_pool, opp_head, seq_state);
- if (dsc) {
- bool *is_ungated = NULL;
- /* Check DSC power gate status */
- if (dc->hwseq && dc->hwseq->funcs.dsc_pg_status)
- hwss_add_dsc_pg_status(seq_state, dc->hwseq, dsc->inst, false);
-
+ /* Check DSC power gate status; the result is kept in dsc->pg_ungated and
+ * gates the steps below at execute time.
+ */
+ if (dsc && hwss_add_dsc_pg_status(seq_state, dc->hwseq, dsc)) {
/* Seamless update specific where we will postpone non
* double buffered DSCCLK disable logic in post unlock
* sequence after DSC is disconnected from OPP but not
@@ -3648,14 +3647,13 @@ void dcn401_post_unlock_reset_opp_sequence(
*/
/* DSC wait disconnect pending clear */
- hwss_add_dsc_wait_disconnect_pending_clear(seq_state, dsc, is_ungated);
+ hwss_add_dsc_wait_disconnect_pending_clear(seq_state, dsc);
/* DSC disable */
- hwss_add_dsc_disable(seq_state, dsc, is_ungated);
+ hwss_add_dsc_disable(seq_state, dsc);
/* Set reference DSCCLK */
- if (dccg && dccg->funcs->set_ref_dscclk)
- hwss_add_dccg_set_ref_dscclk(seq_state, dccg, dsc->inst, 0);
+ hwss_add_dccg_set_ref_dscclk(seq_state, dccg, dsc);
}
}
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_hwseq.c b/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_hwseq.c
index f8254dfe1ce7..8a38b7f0bef0 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_hwseq.c
@@ -1332,3 +1332,12 @@ bool dcn60_apply_idle_power_optimizations(struct dc *dc, bool enable)
return true;
}
+
+bool dcn60_dsc_pg_status(struct dce_hwseq *hws, unsigned int dsc_inst)
+{
+ (void)hws;
+ (void)dsc_inst;
+
+ /* DCN6.0 has no DSC power-gate domain, so the DSC is always ungated. */
+ return true;
+}
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_hwseq.h b/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_hwseq.h
index b880988ff1fc..b88f4304b1b9 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_hwseq.h
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_hwseq.h
@@ -29,6 +29,7 @@ void dcn60_update_cursor_offload_pipe(struct dmub_srv *dmub, uint32_t stream_idx
void dcn60_program_perfmon(struct dc *dc, struct dc_state *context);
bool dcn60_apply_idle_power_optimizations(struct dc *dc, bool enable);
+bool dcn60_dsc_pg_status(struct dce_hwseq *hws, unsigned int dsc_inst);
bool dcn60_set_rmcm_luts(struct set_input_transfer_func_params *params);
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_init.c b/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_init.c
index 9fde7d1be3e5..d5c8dcc86a9f 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_init.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn60/dcn60_init.c
@@ -159,7 +159,7 @@ static const struct hwseq_private_funcs dcn60_private_funcs = {
.update_odm = dcn401_update_odm,
.update_odm_sequence = dcn401_update_odm_sequence,
.dsc_pg_control = NULL,
- .dsc_pg_status = NULL,
+ .dsc_pg_status = dcn60_dsc_pg_status,
.set_hdr_multiplier = dcn10_set_hdr_multiplier,
.set_hdr_multiplier_sequence = dcn401_set_hdr_multiplier_sequence,
.wait_for_blank_complete = dcn20_wait_for_blank_complete,
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h b/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
index 6996ce12a17d..c4f3ec532572 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
+++ b/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
@@ -1037,24 +1037,20 @@ struct dc_ip_request_cntl_params {
struct dsc_pg_status_params {
struct dce_hwseq *hws;
- int dsc_inst;
- bool is_ungated;
+ struct display_stream_compressor *dsc;
};
struct dsc_wait_disconnect_pending_clear_params {
struct display_stream_compressor *dsc;
- bool *is_ungated;
};
struct dsc_disable_params {
struct display_stream_compressor *dsc;
- bool *is_ungated;
};
struct dccg_set_ref_dscclk_params {
struct dccg *dccg;
- int dsc_inst;
- bool *is_ungated;
+ const struct display_stream_compressor *dsc;
};
struct dccg_update_dpp_dto_params {
@@ -2919,23 +2915,19 @@ void hwss_add_dpp_dppclk_control(struct block_sequence_state *seq_state,
void hwss_add_disable_phantom_crtc(struct block_sequence_state *seq_state,
struct timing_generator *tg);
-void hwss_add_dsc_pg_status(struct block_sequence_state *seq_state,
+bool hwss_add_dsc_pg_status(struct block_sequence_state *seq_state,
struct dce_hwseq *hws,
- int dsc_inst,
- bool is_ungated);
+ struct display_stream_compressor *dsc);
void hwss_add_dsc_wait_disconnect_pending_clear(struct block_sequence_state *seq_state,
- struct display_stream_compressor *dsc,
- bool *is_ungated);
+ struct display_stream_compressor *dsc);
void hwss_add_dsc_disable(struct block_sequence_state *seq_state,
- struct display_stream_compressor *dsc,
- bool *is_ungated);
+ struct display_stream_compressor *dsc);
void hwss_add_dccg_set_ref_dscclk(struct block_sequence_state *seq_state,
struct dccg *dccg,
- int dsc_inst,
- bool *is_ungated);
+ const struct display_stream_compressor *dsc);
bool hwss_is_dpp_root_clock_control_allowed(struct dce_hwseq *hws, bool clock_on);
--
2.43.0
next prev 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 ` Wayne Lin [this message]
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 ` [PATCH 42/74] drm/amd/display: [FW Promotion] Release 0.1.83.0 Wayne Lin
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-39-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=alex.hung@amd.com \
--cc=alvin.lee2@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=rafal.ostrowski@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.