mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-04 13:48:25 +00:00
drm/i915/dsc: move slice height calculation to encoder
Turns out this isn't compatible with DSI, where we use the value from VBT. No functional changes. Cc: Manasi Navare <manasi.d.navare@intel.com> Cc: Vandita Kulkarni <vandita.kulkarni@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Vandita Kulkarni <vandita.kulkarni@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/3dd689688a51daff26088eaf6feac27f8b9f5ebc.1575974743.git.jani.nikula@intel.com
This commit is contained in:
parent
7a7b5be96f
commit
c42c38ec30
2 changed files with 12 additions and 11 deletions
|
@ -2060,6 +2060,18 @@ static int intel_dp_dsc_compute_params(struct intel_encoder *encoder,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
/*
|
||||
* Slice Height of 8 works for all currently available panels. So start
|
||||
* with that if pic_height is an integral multiple of 8. Eventually add
|
||||
* logic to try multiple slice heights.
|
||||
*/
|
||||
if (vdsc_cfg->pic_height % 8 == 0)
|
||||
vdsc_cfg->slice_height = 8;
|
||||
else if (vdsc_cfg->pic_height % 4 == 0)
|
||||
vdsc_cfg->slice_height = 4;
|
||||
else
|
||||
vdsc_cfg->slice_height = 2;
|
||||
|
||||
vdsc_cfg->dsc_version_major =
|
||||
(intel_dp->dsc_dpcd[DP_DSC_REV - DP_DSC_SUPPORT] &
|
||||
DP_DSC_MAJOR_MASK) >> DP_DSC_MAJOR_SHIFT;
|
||||
|
|
|
@ -345,17 +345,6 @@ int intel_dsc_compute_params(struct intel_encoder *encoder,
|
|||
vdsc_cfg->pic_height = pipe_config->hw.adjusted_mode.crtc_vdisplay;
|
||||
vdsc_cfg->slice_width = DIV_ROUND_UP(vdsc_cfg->pic_width,
|
||||
pipe_config->dsc.slice_count);
|
||||
/*
|
||||
* Slice Height of 8 works for all currently available panels. So start
|
||||
* with that if pic_height is an integral multiple of 8.
|
||||
* Eventually add logic to try multiple slice heights.
|
||||
*/
|
||||
if (vdsc_cfg->pic_height % 8 == 0)
|
||||
vdsc_cfg->slice_height = 8;
|
||||
else if (vdsc_cfg->pic_height % 4 == 0)
|
||||
vdsc_cfg->slice_height = 4;
|
||||
else
|
||||
vdsc_cfg->slice_height = 2;
|
||||
|
||||
/* Gen 11 does not support YCbCr */
|
||||
vdsc_cfg->simple_422 = false;
|
||||
|
|
Loading…
Add table
Reference in a new issue