Skip to content

Commit

Permalink
drm/amd/display: Change default size for dummy plane in DML2
Browse files Browse the repository at this point in the history
[WHY & HOW]
Currently, to map dc states into dml_display_cfg,
We create a dummy plane if the stream doesn't have any planes
attached to it. This dummy plane uses max addersable width height.
This results in certain mode validations failing when they shouldn't.

Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Reviewed-by: Chaitanya Dhere <chaitanya.dhere@amd.com>
Acked-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Swapnil Patel <swapnil.patel@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
  • Loading branch information
Swapnil Patel authored and alexdeucher committed Mar 20, 2024
1 parent c6ba60a commit 75eb8f7
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -824,13 +824,25 @@ static struct scaler_data get_scaler_data_for_plane(const struct dc_plane_state

static void populate_dummy_dml_plane_cfg(struct dml_plane_cfg_st *out, unsigned int location, const struct dc_stream_state *in)
{
dml_uint_t width, height;

if (in->timing.h_addressable > 3840)
width = 3840;
else
width = in->timing.h_addressable; // 4K max

if (in->timing.v_addressable > 2160)
height = 2160;
else
height = in->timing.v_addressable; // 4K max

out->CursorBPP[location] = dml_cur_32bit;
out->CursorWidth[location] = 256;

out->GPUVMMinPageSizeKBytes[location] = 256;

out->ViewportWidth[location] = in->timing.h_addressable;
out->ViewportHeight[location] = in->timing.v_addressable;
out->ViewportWidth[location] = width;
out->ViewportHeight[location] = height;
out->ViewportStationary[location] = false;
out->ViewportWidthChroma[location] = 0;
out->ViewportHeightChroma[location] = 0;
Expand All @@ -849,7 +861,7 @@ static void populate_dummy_dml_plane_cfg(struct dml_plane_cfg_st *out, unsigned
out->HTapsChroma[location] = 0;
out->VTapsChroma[location] = 0;
out->SourceScan[location] = dml_rotation_0;
out->ScalerRecoutWidth[location] = in->timing.h_addressable;
out->ScalerRecoutWidth[location] = width;

out->LBBitPerPixel[location] = 57;

Expand Down

0 comments on commit 75eb8f7

Please sign in to comment.