> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Jani > Nikula > Sent: Tuesday, March 4, 2025 3:58 PM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx; intel-xe@xxxxxxxxxxxxxxxxxxxxx > Cc: Nikula, Jani <jani.nikula@xxxxxxxxx> > 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@xxxxxxxxx> > --- > 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@xxxxxxxxx> > -- > 2.39.5