From: Jani Nikula <jani.nikula@linux.intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org, Luca Coelho <luciano.coelho@intel.com>
Subject: Re: [Intel-gfx] [PATCH 1/2] drm/i915: Check lane count when determining FEC support
Date: Wed, 20 Sep 2023 15:01:58 +0300 [thread overview]
Message-ID: <87ttrpqci1.fsf@intel.com> (raw)
In-Reply-To: <ZQrT-BzAEnh7hEHd@intel.com>
On Wed, 20 Sep 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Wed, Sep 20, 2023 at 12:23:34PM +0300, Jani Nikula wrote:
>> On Wed, 13 Sep 2023, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
>> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> >
>> > ICL doesn't support FEC with a x1 DP link. Make sure
>> > we don't try to enable FEC in such cases.
>>
>> The question is, should we rather require x2 link for FEC?
>>
>> I suppose x1 link with DSC+FEC is an unlikely scenario with our current
>> link bandwidth policy, so probably not a big deal.
>
> I think currently we just smash lane_count to max when using DSC.
> So doesn't really matter currently. But something to keep in mind
> if/when we tune the policy.
The patch is actually a bit subtle. Or the existing code is.
The paths under intel_edp_dsc_compute_pipe_bpp() and
intel_dp_dsc_compute_pipe_bpp() *assume* FEC is enabled/disabled
depending on the case. They don't look at fec_enable. Any checks for
fec_enable in there would be late.
Let's say eDP gains the ability to do FEC. I don't even remember what
the DP spec says about that. But having to check for fec_enable would
trip over, because it's not initialized yet.
So the patch highlights one aspect to keep in mind, but a little bit
hides another point to keep in mind. Damned if you do, damned if you
don't...
BR,
Jani.
>
>>
>> BR,
>> Jani.
>>
>> >
>> > Requires a bit of reordering to make sure we've computed lane_count
>> > before checking it.
>> >
>> > Cc: Luca Coelho <luciano.coelho@intel.com>
>> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> > ---
>> > drivers/gpu/drm/i915/display/intel_dp.c | 21 +++++++++++----------
>> > 1 file changed, 11 insertions(+), 10 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>> > index 55ba6eeaa810..2cde8ac513bb 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> > @@ -1363,7 +1363,8 @@ static bool intel_dp_source_supports_fec(struct intel_dp *intel_dp,
>> > if (DISPLAY_VER(dev_priv) >= 12)
>> > return true;
>> >
>> > - if (DISPLAY_VER(dev_priv) == 11 && encoder->port != PORT_A)
>> > + if (DISPLAY_VER(dev_priv) == 11 &&
>> > + encoder->port != PORT_A && pipe_config->lane_count != 1)
>> > return true;
>> >
>> > return false;
>> > @@ -2105,15 +2106,6 @@ int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
>> > &pipe_config->hw.adjusted_mode;
>> > int ret;
>> >
>> > - pipe_config->fec_enable = !intel_dp_is_edp(intel_dp) &&
>> > - intel_dp_supports_fec(intel_dp, pipe_config);
>> > -
>> > - if (!intel_dp_supports_dsc(intel_dp, pipe_config))
>> > - return -EINVAL;
>> > -
>> > - if (!intel_dp_dsc_supports_format(intel_dp, pipe_config->output_format))
>> > - return -EINVAL;
>> > -
>> > /*
>> > * compute pipe bpp is set to false for DP MST DSC case
>> > * and compressed_bpp is calculated same time once
>> > @@ -2134,6 +2126,15 @@ int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
>> > }
>> > }
>> >
>> > + pipe_config->fec_enable = !intel_dp_is_edp(intel_dp) &&
>> > + intel_dp_supports_fec(intel_dp, pipe_config);
>> > +
>> > + if (!intel_dp_supports_dsc(intel_dp, pipe_config))
>> > + return -EINVAL;
>> > +
>> > + if (!intel_dp_dsc_supports_format(intel_dp, pipe_config->output_format))
>> > + return -EINVAL;
>> > +
>> > /* Calculate Slice count */
>> > if (intel_dp_is_edp(intel_dp)) {
>> > pipe_config->dsc.slice_count =
>>
>> --
>> Jani Nikula, Intel
--
Jani Nikula, Intel
next prev parent reply other threads:[~2023-09-20 12:02 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-13 15:03 [Intel-gfx] [PATCH 1/2] drm/i915: Check lane count when determining FEC support Ville Syrjala
2023-09-13 15:03 ` [Intel-gfx] [PATCH 2/2] drm/i915: Require FEC for DSC on DP-MST Ville Syrjala
2023-09-20 9:20 ` Jani Nikula
2023-09-20 11:09 ` Ville Syrjälä
2023-10-04 15:36 ` [Intel-gfx] [PATCH v2 " Ville Syrjala
2023-09-13 23:22 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Check lane count when determining FEC support Patchwork
2023-09-14 3:27 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2023-09-20 9:23 ` [Intel-gfx] [PATCH 1/2] " Jani Nikula
2023-09-20 11:14 ` Ville Syrjälä
2023-09-20 12:01 ` Jani Nikula [this message]
2023-10-04 22:24 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Check lane count when determining FEC support (rev2) Patchwork
2023-10-05 9:24 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2023-10-05 13:13 ` [Intel-gfx] [PATCH 1/2] drm/i915: Check lane count when determining FEC support Imre Deak
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=87ttrpqci1.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=luciano.coelho@intel.com \
--cc=ville.syrjala@linux.intel.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.