All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Clint Taylor <clinton.a.taylor@intel.com>,
	intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH v2 03/12] drm/i915/xe3lpd: Add check to see if edp over type c is allowed
Date: Thu, 24 Oct 2024 11:19:43 +0300	[thread overview]
Message-ID: <87bjz9ud40.fsf@intel.com> (raw)
In-Reply-To: <20241023214701.963830-4-clinton.a.taylor@intel.com>

On Wed, 23 Oct 2024, Clint Taylor <clinton.a.taylor@intel.com> wrote:
> From: Suraj Kandpal <suraj.kandpal@intel.com>
>
> Read PICA register to see if edp over type C is possible and then
> add the appropriate tables for it.

I've rejected this before, look up the review comments and adjust.

BR,
Jani.


>
> --v2
> -remove bool from intel_encoder have it in runtime_info [Jani]
> -initialize the bool in runtime_info init [Jani]
> -dont abbreviate the bool [Jani]
>
> Bspec: 68846
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_cx0_phy.c    |  4 ++++
>  .../gpu/drm/i915/display/intel_display_device.c |  4 ++++
>  .../gpu/drm/i915/display/intel_display_device.h |  1 +
>  drivers/gpu/drm/i915/display/intel_dp.c         | 17 ++++++++++++++---
>  drivers/gpu/drm/i915/display/intel_dp.h         |  5 +++++
>  drivers/gpu/drm/i915/i915_reg.h                 |  3 +++
>  6 files changed, 31 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> index 8bd5a4d1b735..ef14e12828c3 100644
> --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> @@ -2257,9 +2257,13 @@ intel_c20_pll_tables_get(struct intel_crtc_state *crtc_state,
>  			 struct intel_encoder *encoder)
>  {
>  	struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> +	struct intel_display_runtime_info *display_runtime = DISPLAY_RUNTIME_INFO(i915);
>  
>  	if (intel_crtc_has_dp_encoder(crtc_state)) {
>  		if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
> +			if (DISPLAY_VER(i915) >= 30 &&
> +			    display_runtime->edp_typec_support)
> +				return xe3lpd_c20_dp_edp_tables;
>  			if (DISPLAY_VER_FULL(i915) == IP_VER(14, 1))
>  				return xe2hpd_c20_edp_tables;
>  		}
> diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c b/drivers/gpu/drm/i915/display/intel_display_device.c
> index aa22189e3853..8583c3529060 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_device.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_device.c
> @@ -15,6 +15,7 @@
>  #include "intel_display_params.h"
>  #include "intel_display_power.h"
>  #include "intel_display_reg_defs.h"
> +#include "intel_dp.h"
>  #include "intel_fbc.h"
>  #include "intel_step.h"
>  
> @@ -1685,6 +1686,9 @@ static void __intel_display_device_info_runtime_init(struct drm_i915_private *i9
>  		}
>  	}
>  
> +	if (DISPLAY_VER(i915) >= 30)
> +		intel_dp_check_edp_typec_support(display, display_runtime);
> +
>  	display_runtime->rawclk_freq = intel_read_rawclk(display);
>  	drm_dbg_kms(&i915->drm, "rawclk rate: %d kHz\n", display_runtime->rawclk_freq);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h b/drivers/gpu/drm/i915/display/intel_display_device.h
> index 071a36b51f79..410f8b33a8a1 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_device.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_device.h
> @@ -232,6 +232,7 @@ struct intel_display_runtime_info {
>  	bool has_hdcp;
>  	bool has_dmc;
>  	bool has_dsc;
> +	bool edp_typec_support;
>  };
>  
>  struct intel_display_device_info {
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 7e29619ba040..992cc51e07b5 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5572,6 +5572,16 @@ intel_dp_detect_sdp_caps(struct intel_dp *intel_dp)
>  		drm_dp_as_sdp_supported(&intel_dp->aux, intel_dp->dpcd);
>  }
>  
> +void
> +intel_dp_check_edp_typec_support(struct intel_display *display,
> +				 struct intel_display_runtime_info *display_runtime)
> +{
> +	u32 ret = 0;
> +
> +	ret = intel_de_read(display, PICA_PHY_CONFIG_CONTROL);
> +	display_runtime->edp_typec_support = ret & EDP_ON_TYPEC;
> +}
> +
>  static int
>  intel_dp_detect(struct drm_connector *connector,
>  		struct drm_modeset_acquire_ctx *ctx,
> @@ -6441,10 +6451,11 @@ intel_dp_init_connector(struct intel_digital_port *dig_port,
>  
>  	if (_intel_dp_is_port_edp(dev_priv, intel_encoder->devdata, port)) {
>  		/*
> -		 * Currently we don't support eDP on TypeC ports, although in
> -		 * theory it could work on TypeC legacy ports.
> +		 * Currently we don't support eDP on TypeC ports for DISPLAY_VER < 30,
> +		 * although in theory it could work on TypeC legacy ports.
>  		 */
> -		drm_WARN_ON(dev, intel_encoder_is_tc(intel_encoder));
> +		if (DISPLAY_VER(dev_priv) < 30)
> +			drm_WARN_ON(dev, intel_encoder_is_tc(intel_encoder));
>  		type = DRM_MODE_CONNECTOR_eDP;
>  		intel_encoder->type = INTEL_OUTPUT_EDP;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h
> index 60baf4072dc9..c6a80c4e2166 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.h
> +++ b/drivers/gpu/drm/i915/display/intel_dp.h
> @@ -20,6 +20,8 @@ struct intel_atomic_state;
>  struct intel_connector;
>  struct intel_crtc_state;
>  struct intel_digital_port;
> +struct intel_display;
> +struct intel_display_runtime_info;
>  struct intel_dp;
>  struct intel_encoder;
>  
> @@ -204,5 +206,8 @@ bool intel_dp_link_params_valid(struct intel_dp *intel_dp, int link_rate,
>  				u8 lane_count);
>  bool intel_dp_has_connector(struct intel_dp *intel_dp,
>  			    const struct drm_connector_state *conn_state);
> +void
> +intel_dp_check_edp_typec_support(struct intel_display *display,
> +				 struct intel_display_runtime_info *display_runtime);
>  
>  #endif /* __INTEL_DP_H__ */
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 8d758947f301..2743a2dd0a3d 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -4575,4 +4575,7 @@ enum skl_power_gate {
>  
>  #define MTL_MEDIA_GSI_BASE		0x380000
>  
> +#define PICA_PHY_CONFIG_CONTROL		_MMIO(0x16FE68)
> +#define   EDP_ON_TYPEC			REG_BIT(31)
> +
>  #endif /* _I915_REG_H_ */

-- 
Jani Nikula, Intel

  reply	other threads:[~2024-10-24  8:19 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-23 21:46 [PATCH v2 00/12] drm/i915/xe3lpd: ptl display patches Clint Taylor
2024-10-23 21:46 ` [PATCH v2 01/12] drm/i915/xe3lpd: Update pmdemand programming Clint Taylor
2024-10-23 22:16   ` Gustavo Sousa
2024-10-23 21:46 ` [PATCH v2 02/12] drm/i915/xe3lpd: Disable HDCP Line Rekeying for Xe3 Clint Taylor
2024-10-24 19:04   ` Matt Roper
2024-10-23 21:46 ` [PATCH v2 03/12] drm/i915/xe3lpd: Add check to see if edp over type c is allowed Clint Taylor
2024-10-24  8:19   ` Jani Nikula [this message]
2024-10-23 21:46 ` [PATCH v2 04/12] drm/i915/display/ptl: Fill VRR crtc_state timings before other transcoder timings Clint Taylor
2024-10-24 10:52   ` Golani, Mitulkumar Ajitkumar
2024-10-23 21:46 ` [PATCH v2 05/12] drm/i915/ptl: Define IS_PANTHERLAKE macro Clint Taylor
2024-10-23 21:46 ` [PATCH v2 06/12] drm/i915/cx0: Extend C10 check to PTL Clint Taylor
2024-10-23 21:46 ` [PATCH v2 07/12] drm/i915/cx0: Remove bus reset after every c10 transaction Clint Taylor
2024-10-24  6:08   ` Kahola, Mika
2024-10-24  8:20     ` Jani Nikula
2024-10-24 19:18     ` Matt Roper
2024-10-24 22:15       ` Taylor, Clinton A
2024-10-24 22:21         ` Matt Roper
2024-10-25  6:44           ` Kahola, Mika
2024-10-24  8:20   ` Jani Nikula
2024-10-23 21:46 ` [PATCH v2 08/12] drm/i915/xe3lpd: Move async flip bit to PLANE_SURF register Clint Taylor
2024-10-24  6:14   ` Chauhan, Shekhar
2024-10-23 21:46 ` [PATCH v2 09/12] drm/i915/xe3: Underrun recovery does not exist post Xe2 Clint Taylor
2024-10-24  8:55   ` Pottumuttu, Sai Teja
2024-10-23 21:46 ` [PATCH v2 10/12] drm/i915/display/xe3: disable x-tiled framebuffers Clint Taylor
2024-10-23 22:24   ` Gustavo Sousa
2024-10-23 21:47 ` [PATCH v2 11/12] drm/i915/xe3lpd: Skip disabling VRR during modeset disable Clint Taylor
2024-10-24 17:24   ` Golani, Mitulkumar Ajitkumar
2024-10-23 21:47 ` [PATCH v2 12/12] drm/i915/xe3lpd: Power request asserting/deasserting Clint Taylor
2024-10-23 22:21   ` Gustavo Sousa
2024-10-24  8:49 ` ✓ Fi.CI.BAT: success for drm/i915/xe3lpd: ptl display patches (rev2) Patchwork
2024-10-24  8:50 ` ✗ Fi.CI.SPARSE: warning " Patchwork
2024-10-24 10:38 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-10-24 13:11 ` ✓ CI.Patch_applied: success " Patchwork
2024-10-24 13:12 ` ✗ CI.checkpatch: warning " Patchwork
2024-10-24 13:13 ` ✓ CI.KUnit: success " Patchwork
2024-10-24 13:24 ` ✓ CI.Build: " Patchwork
2024-10-24 13:27 ` ✓ CI.Hooks: " Patchwork
2024-10-24 13:28 ` ✗ CI.checksparse: warning " Patchwork
2024-10-24 13:57 ` ✗ CI.BAT: failure " Patchwork
2024-10-25 14:26 ` ✗ CI.FULL: " Patchwork

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=87bjz9ud40.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=clinton.a.taylor@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 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.