Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Michał Grzelak" <michal.grzelak@intel.com>
To: Imre Deak <imre.deak@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm/i915/display: Clarify target pipe bpp variable name in compute_sink_pipe_bpp()<
Date: Wed, 11 Feb 2026 14:35:37 +0100 (CET)	[thread overview]
Message-ID: <394b5ad6-d8d5-0de8-1792-aac286a9446b@intel.com> (raw)
In-Reply-To: <20260211115811.508496-1-imre.deak@intel.com>

[-- Attachment #1: Type: text/plain, Size: 4031 bytes --]

Hello Imre,

Some comments below wrt commit messages. No functional change requested.

On Wed, 11 Feb 2026, Imre Deak wrote:
> Clarify that the baseline pipe BPP - i.e. the non-DP specific
> platform/EDID maximum BPP limited by any user-requested max-bpc setting
> - set by compute_sink_pipe_bpp() is a baseline _target_ pipe BPP. This
> target BPP can get either rejected or adjusted (lowering or increasing
> it as needed) by the encoder state computation based on other
> constrains, like a minimum pipe BPP dictated by a non-RGB output format

s/contrains/contraints

> (24 BPP) or a min/max DSC input BPP dictated by a DSC sink. Whether an
> out-of-bound target BPP is adjusted or rejected depends on the max-bpc
> property's semantic assumed by the driver, which is atm to reject such a

s/semantic/semantics

> request.
>
> A follow-up change will also compute the baseline _maximum_ pipe BPP,
> which is the non-DP specific platform/EDID maximum BPP w/o the requested
> max-bpc adjustment and as such is a hard limit: The encoder state

s/The/the

> computation must ensure that the final BPP selected for the modeset is
> below this maximum. Tracking the baseline maximum pipe BPP separately
> will allow for adjusting the baseline target BPP as needed, clamping it
> to the valid DP min/max pipe BPP range, instead of rejecting an
> out-of-bound BPC/BPP request.
>
> To clarify the above semantics rename bpp in compute_sink_bpp() to

s/compute_sink_bpp()/compute_sink_pipe_bpp()

> target_pipe_bpp in this patch, preparing for a follow-up change also
> computing max_pipe_bpp in the same function.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>

Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>

BR,
Michał

> ---

> drivers/gpu/drm/i915/display/intel_display.c | 47 +++++++++++---------
> 1 file changed, 25 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 295f14416be70..ab4b59916d2e7 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -4350,6 +4350,23 @@ static int intel_crtc_atomic_check(struct intel_atomic_state *state,
> 	return 0;
> }
>
> +static int bpc_to_bpp(int bpc)
> +{
> +	switch (bpc) {
> +	case 6 ... 7:
> +		return 6 * 3;
> +	case 8 ... 9:
> +		return 8 * 3;
> +	case 10 ... 11:
> +		return 10 * 3;
> +	case 12 ... 16:
> +		return 12 * 3;
> +	default:
> +		MISSING_CASE(bpc);
> +		return -EINVAL;
> +	}
> +}
> +
> static int
> compute_sink_pipe_bpp(const struct drm_connector_state *conn_state,
> 		      struct intel_crtc_state *crtc_state)
> @@ -4357,36 +4374,22 @@ compute_sink_pipe_bpp(const struct drm_connector_state *conn_state,
> 	struct intel_display *display = to_intel_display(crtc_state);
> 	struct drm_connector *connector = conn_state->connector;
> 	const struct drm_display_info *info = &connector->display_info;
> -	int bpp;
> +	int target_pipe_bpp;
>
> -	switch (conn_state->max_bpc) {
> -	case 6 ... 7:
> -		bpp = 6 * 3;
> -		break;
> -	case 8 ... 9:
> -		bpp = 8 * 3;
> -		break;
> -	case 10 ... 11:
> -		bpp = 10 * 3;
> -		break;
> -	case 12 ... 16:
> -		bpp = 12 * 3;
> -		break;
> -	default:
> -		MISSING_CASE(conn_state->max_bpc);
> -		return -EINVAL;
> -	}
> +	target_pipe_bpp = bpc_to_bpp(conn_state->max_bpc);
> +	if (target_pipe_bpp < 0)
> +		return target_pipe_bpp;
>
> -	if (bpp < crtc_state->pipe_bpp) {
> +	if (target_pipe_bpp < crtc_state->pipe_bpp) {
> 		drm_dbg_kms(display->drm,
> -			    "[CONNECTOR:%d:%s] Limiting display bpp to %d "
> +			    "[CONNECTOR:%d:%s] Limiting target display pipe bpp to %d "
> 			    "(EDID bpp %d, max requested bpp %d, max platform bpp %d)\n",
> 			    connector->base.id, connector->name,
> -			    bpp, 3 * info->bpc,
> +			    target_pipe_bpp, 3 * info->bpc,
> 			    3 * conn_state->max_requested_bpc,
> 			    crtc_state->pipe_bpp);
>
> -		crtc_state->pipe_bpp = bpp;
> +		crtc_state->pipe_bpp = target_pipe_bpp;
> 	}
>
> 	return 0;
> -- 
> 2.49.1
>
>

  parent reply	other threads:[~2026-02-11 13:35 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-11 11:58 [PATCH 1/2] drm/i915/display: Clarify target pipe bpp variable name in compute_sink_pipe_bpp() Imre Deak
2026-02-11 11:58 ` [PATCH 2/2] drm/i915/dp: Clamp the connector max_bpc request to the valid pipe bpp range Imre Deak
2026-02-11 13:36   ` Michał Grzelak
2026-02-11 16:06   ` Nautiyal, Ankit K
2026-02-11 17:12     ` Imre Deak
2026-02-12  4:14       ` Nautiyal, Ankit K
2026-02-12  7:56         ` Imre Deak
2026-02-12  9:01           ` Nautiyal, Ankit K
2026-02-12  9:21             ` Imre Deak
2026-02-11 13:35 ` Michał Grzelak [this message]
2026-02-11 23:25   ` [PATCH 1/2] drm/i915/display: Clarify target pipe bpp variable name in compute_sink_pipe_bpp()< Michał Grzelak
2026-02-11 14:14 ` ✓ CI.KUnit: success for series starting with [1/2] drm/i915/display: Clarify target pipe bpp variable name in compute_sink_pipe_bpp() Patchwork
2026-02-11 14:52 ` ✓ Xe.CI.BAT: " Patchwork
     [not found] ` <177085437889.247401.14482774231614824232@a3b018990fe9>
2026-02-12 16:17   ` ✗ i915.CI.Full: failure " 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=394b5ad6-d8d5-0de8-1792-aac286a9446b@intel.com \
    --to=michal.grzelak@intel.com \
    --cc=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox