drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions
authorJani Nikula <jani.nikula@intel.com>
Thu, 5 Jul 2018 13:25:08 +0000 (16:25 +0300)
committerJani Nikula <jani.nikula@intel.com>
Fri, 6 Jul 2018 07:54:05 +0000 (10:54 +0300)
Avoid confusion with the functions to be added for the new ICL or gen 11
DSI implementation by renaming the current DSI functions. While at it,
permutate the words in the function names to make them all start with
"vlv_dsi" or "vlv_dsi_pll" etc.

Reduce the platform abstractions in the PLL file while at it, moving the
checks to vlv_dsi.c instead, where we typically already have the
necessary if ladders.

Leave the static functions as-is for now; they could be renamed later if
needed.

No functional changes.

v2: use "gen7" prefix.

v3: use "vlv" and "bxt" prefixes, reduce the abstractions.

References: https://patchwork.freedesktop.org/series/44823/
Cc: Madhav Chauhan <madhav.chauhan@intel.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Madhav Chauhan <madhav.chauhan@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180705132509.12881-2-jani.nikula@intel.com
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_dsi.h
drivers/gpu/drm/i915/intel_dsi_vbt.c
drivers/gpu/drm/i915/vlv_dsi.c
drivers/gpu/drm/i915/vlv_dsi_pll.c

index 12102224f47ae24ac15faea3482f7e7d989ea3d5..d33033abbf185acaff5d4fb6d388bc3c181ecdd4 100644 (file)
@@ -9416,7 +9416,7 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
                 * registers/MIPI[BXT]. We can break out here early, since we
                 * need the same DSI PLL to be enabled for both DSI ports.
                 */
-               if (!intel_dsi_pll_is_enabled(dev_priv))
+               if (!bxt_dsi_pll_is_enabled(dev_priv))
                        break;
 
                /* XXX: this works for video mode only */
@@ -14092,7 +14092,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
                intel_ddi_init(dev_priv, PORT_B);
                intel_ddi_init(dev_priv, PORT_C);
 
-               intel_dsi_init(dev_priv);
+               vlv_dsi_init(dev_priv);
        } else if (HAS_DDI(dev_priv)) {
                int found;
 
@@ -14198,7 +14198,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
                                intel_hdmi_init(dev_priv, CHV_HDMID, PORT_D);
                }
 
-               intel_dsi_init(dev_priv);
+               vlv_dsi_init(dev_priv);
        } else if (!IS_GEN2(dev_priv) && !IS_PINEVIEW(dev_priv)) {
                bool found = false;
 
index 88d3581124e87e8649548bd3e3d781b42acfcbde..3034477b79ff04532c02b5bc22c20a3f46f18110 100644 (file)
@@ -1731,7 +1731,7 @@ int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector);
 int intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_id);
 void intel_dp_mst_encoder_cleanup(struct intel_digital_port *intel_dig_port);
 /* vlv_dsi.c */
-void intel_dsi_init(struct drm_i915_private *dev_priv);
+void vlv_dsi_init(struct drm_i915_private *dev_priv);
 
 /* intel_dsi_dcs_backlight.c */
 int intel_dsi_dcs_init_backlight_funcs(struct intel_connector *intel_connector);
index dce9bcc2de533c115401e6c36a3b850ecfacc962..ad7c1cb329836510d7263988a258a8be7f6e9623 100644 (file)
@@ -130,20 +130,28 @@ static inline struct intel_dsi *enc_to_intel_dsi(struct drm_encoder *encoder)
 }
 
 /* vlv_dsi.c */
-void wait_for_dsi_fifo_empty(struct intel_dsi *intel_dsi, enum port port);
+void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port);
 enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt);
 
 /* vlv_dsi_pll.c */
-bool intel_dsi_pll_is_enabled(struct drm_i915_private *dev_priv);
-int intel_compute_dsi_pll(struct intel_encoder *encoder,
-                         struct intel_crtc_state *config);
-void intel_enable_dsi_pll(struct intel_encoder *encoder,
-                         const struct intel_crtc_state *config);
-void intel_disable_dsi_pll(struct intel_encoder *encoder);
-u32 intel_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
-                      struct intel_crtc_state *config);
-void intel_dsi_reset_clocks(struct intel_encoder *encoder,
-                           enum port port);
+int vlv_dsi_pll_compute(struct intel_encoder *encoder,
+                       struct intel_crtc_state *config);
+void vlv_dsi_pll_enable(struct intel_encoder *encoder,
+                       const struct intel_crtc_state *config);
+void vlv_dsi_pll_disable(struct intel_encoder *encoder);
+u32 vlv_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
+                    struct intel_crtc_state *config);
+void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port);
+
+bool bxt_dsi_pll_is_enabled(struct drm_i915_private *dev_priv);
+int bxt_dsi_pll_compute(struct intel_encoder *encoder,
+                       struct intel_crtc_state *config);
+void bxt_dsi_pll_enable(struct intel_encoder *encoder,
+                       const struct intel_crtc_state *config);
+void bxt_dsi_pll_disable(struct intel_encoder *encoder);
+u32 bxt_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
+                    struct intel_crtc_state *config);
+void bxt_dsi_reset_clocks(struct intel_encoder *encoder, enum port port);
 
 /* intel_dsi_vbt.c */
 bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id);
index 4d6ffa7b3e7b9d930d720790b4df60fa0a2dbf58..ac83d6b89ae0c36c236ffc5bd155d86f045f7526 100644 (file)
@@ -181,7 +181,7 @@ static const u8 *mipi_exec_send_packet(struct intel_dsi *intel_dsi,
                break;
        }
 
-       wait_for_dsi_fifo_empty(intel_dsi, port);
+       vlv_dsi_wait_for_fifo_empty(intel_dsi, port);
 
 out:
        data += len;
index 3b7acb5a70b3eb1a5dea527edae654e1c89de1d0..0aa99eeae2715c0bb05b25fd36e313bbb52b6070 100644 (file)
@@ -69,7 +69,7 @@ enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt)
        }
 }
 
-void wait_for_dsi_fifo_empty(struct intel_dsi *intel_dsi, enum port port)
+void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port)
 {
        struct drm_encoder *encoder = &intel_dsi->base.base;
        struct drm_device *dev = encoder->dev;
@@ -342,11 +342,15 @@ static bool intel_dsi_compute_config(struct intel_encoder *encoder,
                        pipe_config->cpu_transcoder = TRANSCODER_DSI_C;
                else
                        pipe_config->cpu_transcoder = TRANSCODER_DSI_A;
-       }
 
-       ret = intel_compute_dsi_pll(encoder, pipe_config);
-       if (ret)
-               return false;
+               ret = bxt_dsi_pll_compute(encoder, pipe_config);
+               if (ret)
+                       return false;
+       } else {
+               ret = vlv_dsi_pll_compute(encoder, pipe_config);
+               if (ret)
+                       return false;
+       }
 
        pipe_config->clock_set = true;
 
@@ -810,8 +814,13 @@ static void intel_dsi_pre_enable(struct intel_encoder *encoder,
         * The BIOS may leave the PLL in a wonky state where it doesn't
         * lock. It needs to be fully powered down to fix it.
         */
-       intel_disable_dsi_pll(encoder);
-       intel_enable_dsi_pll(encoder, pipe_config);
+       if (IS_GEN9_LP(dev_priv)) {
+               bxt_dsi_pll_disable(encoder);
+               bxt_dsi_pll_enable(encoder, pipe_config);
+       } else {
+               vlv_dsi_pll_disable(encoder);
+               vlv_dsi_pll_enable(encoder, pipe_config);
+       }
 
        if (IS_BROXTON(dev_priv)) {
                /* Add MIPI IO reset programming for modeset */
@@ -949,7 +958,7 @@ static void intel_dsi_post_disable(struct intel_encoder *encoder,
 
        if (is_vid_mode(intel_dsi)) {
                for_each_dsi_port(port, intel_dsi->ports)
-                       wait_for_dsi_fifo_empty(intel_dsi, port);
+                       vlv_dsi_wait_for_fifo_empty(intel_dsi, port);
 
                intel_dsi_port_disable(encoder);
                usleep_range(2000, 5000);
@@ -979,11 +988,13 @@ static void intel_dsi_post_disable(struct intel_encoder *encoder,
                                val & ~MIPIO_RST_CTRL);
        }
 
-       intel_disable_dsi_pll(encoder);
-
-       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
+       if (IS_GEN9_LP(dev_priv)) {
+               bxt_dsi_pll_disable(encoder);
+       } else {
                u32 val;
 
+               vlv_dsi_pll_disable(encoder);
+
                val = I915_READ(DSPCLK_GATE_D);
                val &= ~DPOUNIT_CLOCK_GATE_DISABLE;
                I915_WRITE(DSPCLK_GATE_D, val);
@@ -1024,7 +1035,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
         * configuration, otherwise accessing DSI registers will hang the
         * machine. See BSpec North Display Engine registers/MIPI[BXT].
         */
-       if (IS_GEN9_LP(dev_priv) && !intel_dsi_pll_is_enabled(dev_priv))
+       if (IS_GEN9_LP(dev_priv) && !bxt_dsi_pll_is_enabled(dev_priv))
                goto out_put_power;
 
        /* XXX: this only works for one DSI output */
@@ -1247,16 +1258,19 @@ static void intel_dsi_get_config(struct intel_encoder *encoder,
 
        pipe_config->output_types |= BIT(INTEL_OUTPUT_DSI);
 
-       if (IS_GEN9_LP(dev_priv))
+       if (IS_GEN9_LP(dev_priv)) {
                bxt_dsi_get_pipe_config(encoder, pipe_config);
+               pclk = bxt_dsi_get_pclk(encoder, pipe_config->pipe_bpp,
+                                       pipe_config);
+       } else {
+               pclk = vlv_dsi_get_pclk(encoder, pipe_config->pipe_bpp,
+                                       pipe_config);
+       }
 
-       pclk = intel_dsi_get_pclk(encoder, pipe_config->pipe_bpp,
-                                 pipe_config);
-       if (!pclk)
-               return;
-
-       pipe_config->base.adjusted_mode.crtc_clock = pclk;
-       pipe_config->port_clock = pclk;
+       if (pclk) {
+               pipe_config->base.adjusted_mode.crtc_clock = pclk;
+               pipe_config->port_clock = pclk;
+       }
 }
 
 static enum drm_mode_status
@@ -1590,7 +1604,10 @@ static void intel_dsi_unprepare(struct intel_encoder *encoder)
                        /* Panel commands can be sent when clock is in LP11 */
                        I915_WRITE(MIPI_DEVICE_READY(port), 0x0);
 
-                       intel_dsi_reset_clocks(encoder, port);
+                       if (IS_GEN9_LP(dev_priv))
+                               bxt_dsi_reset_clocks(encoder, port);
+                       else
+                               vlv_dsi_reset_clocks(encoder, port);
                        I915_WRITE(MIPI_EOT_DISABLE(port), CLOCKSTOP);
 
                        val = I915_READ(MIPI_DSI_FUNC_PRG(port));
@@ -1713,7 +1730,7 @@ static void intel_dsi_add_properties(struct intel_connector *connector)
        }
 }
 
-void intel_dsi_init(struct drm_i915_private *dev_priv)
+void vlv_dsi_init(struct drm_i915_private *dev_priv)
 {
        struct drm_device *dev = &dev_priv->drm;
        struct intel_dsi *intel_dsi;
index 2ff2ee7f3b78cfdb6f75f76811151dbc6f1fa24f..a132a8037ecc6b2a317229918e8d2471cdbcb9dd 100644 (file)
@@ -111,8 +111,8 @@ static int dsi_calc_mnp(struct drm_i915_private *dev_priv,
  * XXX: The muxing and gating is hard coded for now. Need to add support for
  * sharing PLLs with two DSI outputs.
  */
-static int vlv_compute_dsi_pll(struct intel_encoder *encoder,
-                              struct intel_crtc_state *config)
+int vlv_dsi_pll_compute(struct intel_encoder *encoder,
+                       struct intel_crtc_state *config)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
@@ -142,8 +142,8 @@ static int vlv_compute_dsi_pll(struct intel_encoder *encoder,
        return 0;
 }
 
-static void vlv_enable_dsi_pll(struct intel_encoder *encoder,
-                              const struct intel_crtc_state *config)
+void vlv_dsi_pll_enable(struct intel_encoder *encoder,
+                       const struct intel_crtc_state *config)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
@@ -175,7 +175,7 @@ static void vlv_enable_dsi_pll(struct intel_encoder *encoder,
        DRM_DEBUG_KMS("DSI PLL locked\n");
 }
 
-static void vlv_disable_dsi_pll(struct intel_encoder *encoder)
+void vlv_dsi_pll_disable(struct intel_encoder *encoder)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        u32 tmp;
@@ -192,7 +192,7 @@ static void vlv_disable_dsi_pll(struct intel_encoder *encoder)
        mutex_unlock(&dev_priv->sb_lock);
 }
 
-static bool bxt_dsi_pll_is_enabled(struct drm_i915_private *dev_priv)
+bool bxt_dsi_pll_is_enabled(struct drm_i915_private *dev_priv)
 {
        bool enabled;
        u32 val;
@@ -229,7 +229,7 @@ static bool bxt_dsi_pll_is_enabled(struct drm_i915_private *dev_priv)
        return enabled;
 }
 
-static void bxt_disable_dsi_pll(struct intel_encoder *encoder)
+void bxt_dsi_pll_disable(struct intel_encoder *encoder)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        u32 val;
@@ -261,8 +261,8 @@ static void assert_bpp_mismatch(enum mipi_dsi_pixel_format fmt, int pipe_bpp)
             bpp, pipe_bpp);
 }
 
-static u32 vlv_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
-                           struct intel_crtc_state *config)
+u32 vlv_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
+                    struct intel_crtc_state *config)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
@@ -327,8 +327,8 @@ static u32 vlv_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
        return pclk;
 }
 
-static u32 bxt_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
-                           struct intel_crtc_state *config)
+u32 bxt_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
+                    struct intel_crtc_state *config)
 {
        u32 pclk;
        u32 dsi_clk;
@@ -357,16 +357,7 @@ static u32 bxt_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
        return pclk;
 }
 
-u32 intel_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
-                      struct intel_crtc_state *config)
-{
-       if (IS_GEN9_LP(to_i915(encoder->base.dev)))
-               return bxt_dsi_get_pclk(encoder, pipe_bpp, config);
-       else
-               return vlv_dsi_get_pclk(encoder, pipe_bpp, config);
-}
-
-static void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
+void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
 {
        u32 temp;
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
@@ -480,8 +471,8 @@ static void bxt_dsi_program_clocks(struct drm_device *dev, enum port port,
        I915_WRITE(BXT_MIPI_CLOCK_CTL, tmp);
 }
 
-static int gen9lp_compute_dsi_pll(struct intel_encoder *encoder,
-                              struct intel_crtc_state *config)
+int bxt_dsi_pll_compute(struct intel_encoder *encoder,
+                       struct intel_crtc_state *config)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
@@ -528,8 +519,8 @@ static int gen9lp_compute_dsi_pll(struct intel_encoder *encoder,
        return 0;
 }
 
-static void gen9lp_enable_dsi_pll(struct intel_encoder *encoder,
-                              const struct intel_crtc_state *config)
+void bxt_dsi_pll_enable(struct intel_encoder *encoder,
+                       const struct intel_crtc_state *config)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
@@ -568,52 +559,7 @@ static void gen9lp_enable_dsi_pll(struct intel_encoder *encoder,
        DRM_DEBUG_KMS("DSI PLL locked\n");
 }
 
-bool intel_dsi_pll_is_enabled(struct drm_i915_private *dev_priv)
-{
-       if (IS_GEN9_LP(dev_priv))
-               return bxt_dsi_pll_is_enabled(dev_priv);
-
-       MISSING_CASE(INTEL_DEVID(dev_priv));
-
-       return false;
-}
-
-int intel_compute_dsi_pll(struct intel_encoder *encoder,
-                         struct intel_crtc_state *config)
-{
-       struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-
-       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
-               return vlv_compute_dsi_pll(encoder, config);
-       else if (IS_GEN9_LP(dev_priv))
-               return gen9lp_compute_dsi_pll(encoder, config);
-
-       return -ENODEV;
-}
-
-void intel_enable_dsi_pll(struct intel_encoder *encoder,
-                         const struct intel_crtc_state *config)
-{
-       struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-
-       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
-               vlv_enable_dsi_pll(encoder, config);
-       else if (IS_GEN9_LP(dev_priv))
-               gen9lp_enable_dsi_pll(encoder, config);
-}
-
-void intel_disable_dsi_pll(struct intel_encoder *encoder)
-{
-       struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-
-       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
-               vlv_disable_dsi_pll(encoder);
-       else if (IS_GEN9_LP(dev_priv))
-               bxt_disable_dsi_pll(encoder);
-}
-
-static void gen9lp_dsi_reset_clocks(struct intel_encoder *encoder,
-                                   enum port port)
+void bxt_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
 {
        u32 tmp;
        struct drm_device *dev = encoder->base.dev;
@@ -638,13 +584,3 @@ static void gen9lp_dsi_reset_clocks(struct intel_encoder *encoder,
        }
        I915_WRITE(MIPI_EOT_DISABLE(port), CLOCKSTOP);
 }
-
-void intel_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
-{
-       struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-
-       if (IS_GEN9_LP(dev_priv))
-               gen9lp_dsi_reset_clocks(encoder, port);
-       else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
-               vlv_dsi_reset_clocks(encoder, port);
-}