[PATCH 1/5] drm/i915/display: convert various port/phy helpers to struct intel_display
Garg, Nemesa
nemesa.garg at intel.com
Tue Mar 4 12:32:33 UTC 2025
> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces at lists.freedesktop.org> On Behalf Of Jani
> Nikula
> Sent: Tuesday, March 4, 2025 3:58 PM
> To: intel-gfx at lists.freedesktop.org; intel-xe at lists.freedesktop.org
> Cc: Nikula, Jani <jani.nikula at intel.com>
> Subject: [PATCH 1/5] drm/i915/display: convert various port/phy helpers to
> struct intel_display
>
> Going forward, struct intel_display is the main display device data pointer. The
> intel_display.[ch] files are too big to convert in one go. Convert the various
> port/phy helpers to struct intel_display.
>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_bios.c | 5 +--
> drivers/gpu/drm/i915/display/intel_ddi.c | 6 +--
> drivers/gpu/drm/i915/display/intel_display.c | 40 +++++++++----------
> drivers/gpu/drm/i915/display/intel_display.h | 7 ++--
> .../i915/display/intel_display_power_well.c | 9 ++---
> 5 files changed, 31 insertions(+), 36 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c
> b/drivers/gpu/drm/i915/display/intel_bios.c
> index e0e4e9b62d8d..a8d08d7d82b3 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -2902,7 +2902,6 @@ init_vbt_panel_defaults(struct intel_panel *panel)
> static void init_vbt_missing_defaults(struct intel_display *display) {
> - struct drm_i915_private *i915 = to_i915(display->drm);
> unsigned int ports = DISPLAY_RUNTIME_INFO(display)->port_mask;
> enum port port;
>
> @@ -2912,13 +2911,13 @@ init_vbt_missing_defaults(struct intel_display
> *display)
> for_each_port_masked(port, ports) {
> struct intel_bios_encoder_data *devdata;
> struct child_device_config *child;
> - enum phy phy = intel_port_to_phy(i915, port);
> + enum phy phy = intel_port_to_phy(display, port);
>
> /*
> * VBT has the TypeC mode (native,TBT/USB) and we don't
> want
> * to detect it.
> */
> - if (intel_phy_is_tc(i915, phy))
> + if (intel_phy_is_tc(display, phy))
> continue;
>
> /* Create fake child device config */ diff --git
> a/drivers/gpu/drm/i915/display/intel_ddi.c
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 20fc258a4d6d..3b7ec0be9011 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -5100,7 +5100,7 @@ void intel_ddi_init(struct intel_display *display,
> return;
> }
>
> - phy = intel_port_to_phy(dev_priv, port);
> + phy = intel_port_to_phy(display, port);
>
> /*
> * On platforms with HTI (aka HDPORT), if it's enabled at boot it may
> @@ -5160,7 +5160,7 @@ void intel_ddi_init(struct intel_display *display,
> port_name(port - PORT_D_XELPD +
> PORT_D),
> phy_name(phy));
> } else if (DISPLAY_VER(dev_priv) >= 12) {
> - enum tc_port tc_port = intel_port_to_tc(dev_priv, port);
> + enum tc_port tc_port = intel_port_to_tc(display, port);
>
> drm_encoder_init(&dev_priv->drm, &encoder->base,
> &intel_ddi_funcs,
> DRM_MODE_ENCODER_TMDS,
> @@ -5170,7 +5170,7 @@ void intel_ddi_init(struct intel_display *display,
> tc_port != TC_PORT_NONE ? "TC" : "",
> tc_port != TC_PORT_NONE ?
> tc_port_name(tc_port) : phy_name(phy));
> } else if (DISPLAY_VER(dev_priv) >= 11) {
> - enum tc_port tc_port = intel_port_to_tc(dev_priv, port);
> + enum tc_port tc_port = intel_port_to_tc(display, port);
>
> drm_encoder_init(&dev_priv->drm, &encoder->base,
> &intel_ddi_funcs,
> DRM_MODE_ENCODER_TMDS,
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index c4b0ec60fded..9d4f2dacbbce 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -1834,20 +1834,20 @@ bool intel_phy_is_combo(struct intel_display
> *display, enum phy phy) }
>
> /* Prefer intel_encoder_is_tc() */
> -bool intel_phy_is_tc(struct drm_i915_private *dev_priv, enum phy phy)
> +bool intel_phy_is_tc(struct intel_display *display, enum phy phy)
> {
> /*
> * Discrete GPU phy's are not attached to FIA's to support TC
> * subsystem Legacy or non-legacy, and only support native DP/HDMI
> */
> - if (IS_DGFX(dev_priv))
> + if (display->platform.dgfx)
> return false;
>
> - if (DISPLAY_VER(dev_priv) >= 13)
> + if (DISPLAY_VER(display) >= 13)
> return phy >= PHY_F && phy <= PHY_I;
> - else if (IS_TIGERLAKE(dev_priv))
> + else if (display->platform.tigerlake)
> return phy >= PHY_D && phy <= PHY_I;
> - else if (IS_ICELAKE(dev_priv))
> + else if (display->platform.icelake)
> return phy >= PHY_C && phy <= PHY_F;
>
> return false;
> @@ -1864,17 +1864,17 @@ bool intel_phy_is_snps(struct intel_display
> *display, enum phy phy) }
>
> /* Prefer intel_encoder_to_phy() */
> -enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port)
> +enum phy intel_port_to_phy(struct intel_display *display, enum port
> +port)
> {
> - if (DISPLAY_VER(i915) >= 13 && port >= PORT_D_XELPD)
> + if (DISPLAY_VER(display) >= 13 && port >= PORT_D_XELPD)
> return PHY_D + port - PORT_D_XELPD;
> - else if (DISPLAY_VER(i915) >= 13 && port >= PORT_TC1)
> + else if (DISPLAY_VER(display) >= 13 && port >= PORT_TC1)
> return PHY_F + port - PORT_TC1;
> - else if (IS_ALDERLAKE_S(i915) && port >= PORT_TC1)
> + else if (display->platform.alderlake_s && port >= PORT_TC1)
> return PHY_B + port - PORT_TC1;
> - else if ((IS_DG1(i915) || IS_ROCKETLAKE(i915)) && port >= PORT_TC1)
> + else if ((display->platform.dg1 || display->platform.rocketlake) &&
> +port >= PORT_TC1)
> return PHY_C + port - PORT_TC1;
> - else if ((IS_JASPERLAKE(i915) || IS_ELKHARTLAKE(i915)) &&
> + else if ((display->platform.jasperlake ||
> +display->platform.elkhartlake) &&
> port == PORT_D)
> return PHY_A;
>
> @@ -1882,12 +1882,12 @@ enum phy intel_port_to_phy(struct
> drm_i915_private *i915, enum port port) }
>
> /* Prefer intel_encoder_to_tc() */
> -enum tc_port intel_port_to_tc(struct drm_i915_private *dev_priv, enum
> port port)
> +enum tc_port intel_port_to_tc(struct intel_display *display, enum port
> +port)
> {
> - if (!intel_phy_is_tc(dev_priv, intel_port_to_phy(dev_priv, port)))
> + if (!intel_phy_is_tc(display, intel_port_to_phy(display, port)))
> return TC_PORT_NONE;
>
> - if (DISPLAY_VER(dev_priv) >= 12)
> + if (DISPLAY_VER(display) >= 12)
> return TC_PORT_1 + port - PORT_TC1;
> else
> return TC_PORT_1 + port - PORT_C;
> @@ -1895,9 +1895,9 @@ enum tc_port intel_port_to_tc(struct
> drm_i915_private *dev_priv, enum port port)
>
> enum phy intel_encoder_to_phy(struct intel_encoder *encoder) {
> - struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> + struct intel_display *display = to_intel_display(encoder);
>
> - return intel_port_to_phy(i915, encoder->port);
> + return intel_port_to_phy(display, encoder->port);
> }
>
> bool intel_encoder_is_combo(struct intel_encoder *encoder) @@ -1916,16
> +1916,16 @@ bool intel_encoder_is_snps(struct intel_encoder *encoder)
>
> bool intel_encoder_is_tc(struct intel_encoder *encoder) {
> - struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> + struct intel_display *display = to_intel_display(encoder);
>
> - return intel_phy_is_tc(i915, intel_encoder_to_phy(encoder));
> + return intel_phy_is_tc(display, intel_encoder_to_phy(encoder));
> }
>
> enum tc_port intel_encoder_to_tc(struct intel_encoder *encoder) {
> - struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> + struct intel_display *display = to_intel_display(encoder);
>
> - return intel_port_to_tc(i915, encoder->port);
> + return intel_port_to_tc(display, encoder->port);
> }
>
> enum intel_display_power_domain
> diff --git a/drivers/gpu/drm/i915/display/intel_display.h
> b/drivers/gpu/drm/i915/display/intel_display.h
> index bc9a5a14ca6a..45d70d3e1041 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.h
> +++ b/drivers/gpu/drm/i915/display/intel_display.h
> @@ -426,7 +426,7 @@ intel_mode_valid_max_plane_size(struct intel_display
> *display, enum drm_mode_status intel_cpu_transcoder_mode_valid(struct
> intel_display *display,
> const struct drm_display_mode *mode); -
> enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port);
> +enum phy intel_port_to_phy(struct intel_display *display, enum port
> +port);
> bool is_trans_port_sync_mode(const struct intel_crtc_state *state); bool
> is_trans_port_sync_master(const struct intel_crtc_state *state);
> u8 intel_crtc_joined_pipe_mask(const struct intel_crtc_state *crtc_state);
> @@ -465,10 +465,9 @@ intel_encoder_current_mode(struct intel_encoder
> *encoder); void intel_encoder_get_config(struct intel_encoder *encoder,
> struct intel_crtc_state *crtc_state); bool
> intel_phy_is_combo(struct intel_display *display, enum phy phy); -bool
> intel_phy_is_tc(struct drm_i915_private *dev_priv, enum phy phy);
> +bool intel_phy_is_tc(struct intel_display *display, enum phy phy);
> bool intel_phy_is_snps(struct intel_display *display, enum phy phy); -enum
> tc_port intel_port_to_tc(struct drm_i915_private *dev_priv,
> - enum port port);
> +enum tc_port intel_port_to_tc(struct intel_display *display, enum port
> +port);
>
> enum phy intel_encoder_to_phy(struct intel_encoder *encoder); bool
> intel_encoder_is_combo(struct intel_encoder *encoder); diff --git
> a/drivers/gpu/drm/i915/display/intel_display_power_well.c
> b/drivers/gpu/drm/i915/display/intel_display_power_well.c
> index 5b60db597329..8ec87ffd87d2 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power_well.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power_well.c
> @@ -549,10 +549,9 @@ static void
> icl_aux_power_well_enable(struct intel_display *display,
> struct i915_power_well *power_well) {
> - struct drm_i915_private *dev_priv = to_i915(display->drm);
> enum phy phy = icl_aux_pw_to_phy(display, power_well);
>
> - if (intel_phy_is_tc(dev_priv, phy))
> + if (intel_phy_is_tc(display, phy))
> return icl_tc_phy_aux_power_well_enable(display,
> power_well);
> else if (display->platform.icelake)
> return icl_combo_phy_aux_power_well_enable(display,
> @@ -565,10 +564,9 @@ static void
> icl_aux_power_well_disable(struct intel_display *display,
> struct i915_power_well *power_well) {
> - struct drm_i915_private *dev_priv = to_i915(display->drm);
> enum phy phy = icl_aux_pw_to_phy(display, power_well);
>
> - if (intel_phy_is_tc(dev_priv, phy))
> + if (intel_phy_is_tc(display, phy))
> return hsw_power_well_disable(display, power_well);
> else if (display->platform.icelake)
> return icl_combo_phy_aux_power_well_disable(display,
> @@ -1829,11 +1827,10 @@ tgl_tc_cold_off_power_well_is_enabled(struct
> intel_display *display, static void xelpdp_aux_power_well_enable(struct
> intel_display *display,
> struct i915_power_well
> *power_well) {
> - struct drm_i915_private *dev_priv = to_i915(display->drm);
> enum aux_ch aux_ch = i915_power_well_instance(power_well)-
> >xelpdp.aux_ch;
> enum phy phy = icl_aux_pw_to_phy(display, power_well);
>
> - if (intel_phy_is_tc(dev_priv, phy))
> + if (intel_phy_is_tc(display, phy))
> icl_tc_port_assert_ref_held(display, power_well,
> aux_ch_to_digital_port(display,
> aux_ch));
>
LGTM,
Reviewed-by: Nemesa Garg <nemesa.garg at intel.com>
> --
> 2.39.5
More information about the Intel-gfx
mailing list