diff options
| author | Chris Park <[email protected]> | 2024-11-15 20:44:52 +0000 |
|---|---|---|
| committer | Alex Deucher <[email protected]> | 2024-12-02 23:35:32 +0000 |
| commit | 0c0a19430bfdfedab437e77b9262e8e62ced384e (patch) | |
| tree | ed694121e45c16cc6b9045e8fd7b122c1e4cfb66 /drivers/gpu/drm/amd/display/dc/link/link_dpms.c | |
| parent | drm/amd/display: Limit VTotal range to max hw cap minus fp (diff) | |
| download | kernel-0c0a19430bfdfedab437e77b9262e8e62ced384e.tar.gz kernel-0c0a19430bfdfedab437e77b9262e8e62ced384e.zip | |
drm/amd/display: Add hblank borrowing support
[WHY]
Some DSC timing failed at bandwidth validation due to hactive
can't be evenly divided on each ODM segment.
[HOW]
Borrow from hblank to increase hactive to support these timing.
Cc: Mario Limonciello <[email protected]>
Cc: Alex Deucher <[email protected]>
Cc: [email protected]
Reviewed-by: Wenjing Liu <[email protected]>
Signed-off-by: Chris Park <[email protected]>
Signed-off-by: Alex Hung <[email protected]>
Tested-by: Daniel Wheeler <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/link/link_dpms.c')
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/link/link_dpms.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c index 41cab9ad6885..5d66bfc7fe6e 100644 --- a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c +++ b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c @@ -808,7 +808,8 @@ void link_set_dsc_on_stream(struct pipe_ctx *pipe_ctx, bool enable) enum optc_dsc_mode optc_dsc_mode; /* Enable DSC hw block */ - dsc_cfg.pic_width = (stream->timing.h_addressable + stream->timing.h_border_left + stream->timing.h_border_right) / opp_cnt; + dsc_cfg.pic_width = (stream->timing.h_addressable + pipe_ctx->hblank_borrow + + stream->timing.h_border_left + stream->timing.h_border_right) / opp_cnt; dsc_cfg.pic_height = stream->timing.v_addressable + stream->timing.v_border_top + stream->timing.v_border_bottom; dsc_cfg.pixel_encoding = stream->timing.pixel_encoding; dsc_cfg.color_depth = stream->timing.display_color_depth; |
