diff mbox series

[02/23] HAX drm/i915: Disable FEC entirely for now

Message ID 20190920114235.22411-2-maarten.lankhorst@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [01/23] drm/i915/dp: Fix dsc bpp calculations, v2. | expand

Commit Message

Maarten Lankhorst Sept. 20, 2019, 11:42 a.m. UTC
I get a permanent FIFO underrun when enabling FEC with big joiner,
so for now disable it.

It seems that even at 1024x768 resolution without bigjoiner we don't
get a working configuration. Flag is set but vblank timing shows that
vblanks are delivered slightly faster, so the extra overhead we
calculated for data M/N goes unused.

Not-Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Maarten Lankhorst Sept. 23, 2019, 1:08 p.m. UTC | #1
Op 20-09-2019 om 13:42 schreef Maarten Lankhorst:
> I get a permanent FIFO underrun when enabling FEC with big joiner,
> so for now disable it.
>
> It seems that even at 1024x768 resolution without bigjoiner we don't
> get a working configuration. Flag is set but vblank timing shows that
> vblanks are delivered slightly faster, so the extra overhead we
> calculated for data M/N goes unused.
>
> Not-Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 4dfb78dc7fa2..02242a16640b 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -1877,7 +1877,8 @@ static bool intel_dp_source_supports_dsc(struct intel_dp *intel_dp,
>  static bool intel_dp_supports_dsc(struct intel_dp *intel_dp,
>  				  const struct intel_crtc_state *pipe_config)
>  {
> -	if (!intel_dp_is_edp(intel_dp) && !pipe_config->fec_enable)
> +	/* HACK: Disable FEC until we solved FIFO underruns */
> +	if (!intel_dp_is_edp(intel_dp) && !pipe_config->fec_enable && 0)
>  		return false;
>  
>  	return intel_dp_source_supports_dsc(intel_dp, pipe_config) &&
> @@ -2024,8 +2025,9 @@ static int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
>  	int pipe_bpp;
>  	int ret;
>  
> +	/* HACK: Disable FEC until we solved FIFO underruns */
>  	pipe_config->fec_enable = !intel_dp_is_edp(intel_dp) &&
> -		intel_dp_supports_fec(intel_dp, pipe_config);
> +		intel_dp_supports_fec(intel_dp, pipe_config) && 0;
>  
>  	if (!intel_dp_supports_dsc(intel_dp, pipe_config))
>  		return -EINVAL;

With v3 of the previous patch, this is now obsolete and confirmed working on ICL.

So this can finally be dropped. :)
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 4dfb78dc7fa2..02242a16640b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1877,7 +1877,8 @@  static bool intel_dp_source_supports_dsc(struct intel_dp *intel_dp,
 static bool intel_dp_supports_dsc(struct intel_dp *intel_dp,
 				  const struct intel_crtc_state *pipe_config)
 {
-	if (!intel_dp_is_edp(intel_dp) && !pipe_config->fec_enable)
+	/* HACK: Disable FEC until we solved FIFO underruns */
+	if (!intel_dp_is_edp(intel_dp) && !pipe_config->fec_enable && 0)
 		return false;
 
 	return intel_dp_source_supports_dsc(intel_dp, pipe_config) &&
@@ -2024,8 +2025,9 @@  static int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
 	int pipe_bpp;
 	int ret;
 
+	/* HACK: Disable FEC until we solved FIFO underruns */
 	pipe_config->fec_enable = !intel_dp_is_edp(intel_dp) &&
-		intel_dp_supports_fec(intel_dp, pipe_config);
+		intel_dp_supports_fec(intel_dp, pipe_config) && 0;
 
 	if (!intel_dp_supports_dsc(intel_dp, pipe_config))
 		return -EINVAL;