Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Cc: <intel-xe@lists.freedesktop.org>,
	<intel-gfx@lists.freedesktop.org>, <ankit.k.nautiyal@intel.com>
Subject: Re: [PATCH] drm/i915/dp: Fallback to DSC for HDR content if needed
Date: Fri, 11 Jul 2025 15:57:05 +0300	[thread overview]
Message-ID: <aHEKIZC_KanqJTF5@ideak-desk> (raw)
In-Reply-To: <20250703140252.3547953-1-chaitanya.kumar.borah@intel.com>

On Thu, Jul 03, 2025 at 07:32:52PM +0530, Chaitanya Kumar Borah wrote:
> If user-space has enabled HDR by passing HDR metadata and we can't support
> 10bpc fallback to DSC.
> 
> Now that we need the helper to determine the presence of HDR metadata at
> multiple places make it non static.
> 
> Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c          | 16 ++++++++++++++++
>  drivers/gpu/drm/i915/display/intel_dp.h          |  1 +
>  .../drm/i915/display/intel_dp_aux_backlight.c    | 13 -------------
>  3 files changed, 17 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index f48912f308df..abbba159e479 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -1774,6 +1774,9 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
>  	     bpp -= 2 * 3) {
>  		int link_bpp = intel_dp_output_bpp(pipe_config->output_format, bpp);
>  
> +		if (intel_dp_in_hdr_mode(conn_state) && bpp < 30)
> +			return -EINVAL;

This limit should be set in limits->pipe.min_bpp, computed already by
this time in intel_dp_compute_config_limits(). Not sure though if it's
expected that the modeset fails if DSC is not available for instance.

> +
>  		mode_rate = intel_dp_link_required(clock, link_bpp);
>  
>  		for (i = 0; i < intel_dp->num_common_rates; i++) {
> @@ -2910,6 +2913,19 @@ static void intel_dp_compute_vsc_sdp(struct intel_dp *intel_dp,
>  	}
>  }
>  
> +bool
> +intel_dp_in_hdr_mode(const struct drm_connector_state *conn_state)
> +{
> +	struct hdr_output_metadata *hdr_metadata;
> +
> +	if (!conn_state->hdr_output_metadata)
> +		return false;
> +
> +	hdr_metadata = conn_state->hdr_output_metadata->data;
> +
> +	return hdr_metadata->hdmi_metadata_type1.eotf == HDMI_EOTF_SMPTE_ST2084;
> +}
> +
>  static void
>  intel_dp_compute_hdr_metadata_infoframe_sdp(struct intel_dp *intel_dp,
>  					    struct intel_crtc_state *crtc_state,
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h
> index 0657f5681196..5def589e3c0e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.h
> +++ b/drivers/gpu/drm/i915/display/intel_dp.h
> @@ -214,5 +214,6 @@ int intel_dp_compute_min_hblank(struct intel_crtc_state *crtc_state,
>  
>  int intel_dp_dsc_bpp_step_x16(const struct intel_connector *connector);
>  void intel_dp_dpcd_set_probe(struct intel_dp *intel_dp, bool force_on_external);
> +bool intel_dp_in_hdr_mode(const struct drm_connector_state *conn_state);
>  
>  #endif /* __INTEL_DP_H__ */
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> index 41228478b21c..12084a542fc5 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -225,19 +225,6 @@ intel_dp_aux_hdr_set_aux_backlight(const struct drm_connector_state *conn_state,
>  			connector->base.base.id, connector->base.name);
>  }
>  
> -static bool
> -intel_dp_in_hdr_mode(const struct drm_connector_state *conn_state)
> -{
> -	struct hdr_output_metadata *hdr_metadata;
> -
> -	if (!conn_state->hdr_output_metadata)
> -		return false;
> -
> -	hdr_metadata = conn_state->hdr_output_metadata->data;
> -
> -	return hdr_metadata->hdmi_metadata_type1.eotf == HDMI_EOTF_SMPTE_ST2084;
> -}
> -
>  static void
>  intel_dp_aux_hdr_set_backlight(const struct drm_connector_state *conn_state, u32 level)
>  {
> -- 
> 2.25.1
> 

  parent reply	other threads:[~2025-07-11 12:57 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-03 14:02 [PATCH] drm/i915/dp: Fallback to DSC for HDR content if needed Chaitanya Kumar Borah
2025-07-03 15:07 ` ✓ CI.KUnit: success for " Patchwork
2025-07-03 15:48 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-05  3:42 ` ✗ Xe.CI.Full: failure " Patchwork
2025-07-11  4:27 ` [PATCH] " Kandpal, Suraj
2025-07-16 13:57   ` Borah, Chaitanya Kumar
2025-07-11 12:57 ` Imre Deak [this message]
2025-07-16 14:30   ` Borah, Chaitanya Kumar

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=aHEKIZC_KanqJTF5@ideak-desk \
    --to=imre.deak@intel.com \
    --cc=ankit.k.nautiyal@intel.com \
    --cc=chaitanya.kumar.borah@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