drm/i915: Extract intel_edp_backlight_setup()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 12 Sep 2022 11:18:05 +0000 (14:18 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 26 Sep 2022 14:03:23 +0000 (17:03 +0300)
Pull the eDP backlight setup into its own function. No
reason to pollute intel_edp_init_connector() with all
the mundane details.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220912111814.17466-7-ville.syrjala@linux.intel.com
Reviewed-by: Luca Coelho <luciano.coelho@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_dp.c

index c9be61d..d24a336 100644 (file)
@@ -5206,6 +5206,35 @@ intel_edp_add_properties(struct intel_dp *intel_dp)
                                                       fixed_mode->vdisplay);
 }
 
+static void intel_edp_backlight_setup(struct intel_dp *intel_dp,
+                                     struct intel_connector *connector)
+{
+       struct drm_i915_private *i915 = dp_to_i915(intel_dp);
+       enum pipe pipe = INVALID_PIPE;
+
+       if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915)) {
+               /*
+                * Figure out the current pipe for the initial backlight setup.
+                * If the current pipe isn't valid, try the PPS pipe, and if that
+                * fails just assume pipe A.
+                */
+               pipe = vlv_active_pipe(intel_dp);
+
+               if (pipe != PIPE_A && pipe != PIPE_B)
+                       pipe = intel_dp->pps.pps_pipe;
+
+               if (pipe != PIPE_A && pipe != PIPE_B)
+                       pipe = PIPE_A;
+
+               drm_dbg_kms(&i915->drm,
+                           "[CONNECTOR:%d:%s] using pipe %c for initial backlight setup\n",
+                           connector->base.base.id, connector->base.name,
+                           pipe_name(pipe));
+       }
+
+       intel_backlight_setup(connector, pipe);
+}
+
 static bool intel_edp_init_connector(struct intel_dp *intel_dp,
                                     struct intel_connector *intel_connector)
 {
@@ -5215,7 +5244,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
        struct drm_display_mode *fixed_mode;
        struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
        bool has_dpcd;
-       enum pipe pipe = INVALID_PIPE;
        struct edid *edid;
 
        if (!intel_dp_is_edp(intel_dp))
@@ -5290,28 +5318,9 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
 
        mutex_unlock(&dev->mode_config.mutex);
 
-       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
-               /*
-                * Figure out the current pipe for the initial backlight setup.
-                * If the current pipe isn't valid, try the PPS pipe, and if that
-                * fails just assume pipe A.
-                */
-               pipe = vlv_active_pipe(intel_dp);
-
-               if (pipe != PIPE_A && pipe != PIPE_B)
-                       pipe = intel_dp->pps.pps_pipe;
-
-               if (pipe != PIPE_A && pipe != PIPE_B)
-                       pipe = PIPE_A;
-
-               drm_dbg_kms(&dev_priv->drm,
-                           "using pipe %c for initial backlight setup\n",
-                           pipe_name(pipe));
-       }
-
        intel_panel_init(intel_connector);
 
-       intel_backlight_setup(intel_connector, pipe);
+       intel_edp_backlight_setup(intel_dp, intel_connector);
 
        intel_edp_add_properties(intel_dp);