]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/display: convert various port/phy helpers to struct intel_display
authorJani Nikula <jani.nikula@intel.com>
Tue, 4 Mar 2025 10:27:30 +0000 (12:27 +0200)
committerJani Nikula <jani.nikula@intel.com>
Wed, 5 Mar 2025 18:04:41 +0000 (20:04 +0200)
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.

Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/e28e53bad5014ba3ef17431557b517f1b8530963.1741084010.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_bios.c
drivers/gpu/drm/i915/display/intel_ddi.c
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_display.h
drivers/gpu/drm/i915/display/intel_display_power_well.c

index e0e4e9b62d8d01e44e7948fedefa89f8e795b0b4..a8d08d7d82b3db91b7d4236be63fa41085ddc84c 100644 (file)
@@ -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 */
index 20fc258a4d6ddce20e56349fa27cfee23c203b3c..3b7ec0be90114aa33932e1d210b88796e12e0d33 100644 (file)
@@ -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,
index c4b0ec60fded26d962007a9afa47cd580ab8b1f8..9d4f2dacbbcef891a707d51c63706ee26b24b742 100644 (file)
@@ -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
index bc9a5a14ca6a0a293d9818e99ca0dee561395f0a..45d70d3e10419a9e2176b4a14196c4f78795c69f 100644 (file)
@@ -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);
index 5b60db597329c9be39ceaca835f2bacb4567aede..8ec87ffd87d26fc631472856f3dab4ee552fea3e 100644 (file)
@@ -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));