From: Ville Syrjälä <ville.syrj...@linux.intel.com>

Pull all the TV connector property setup into its own neat function.

Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_tv.c | 80 +++++++++++++------------
 1 file changed, 43 insertions(+), 37 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_tv.c 
b/drivers/gpu/drm/i915/display/intel_tv.c
index 9379f3463344..306d08482855 100644
--- a/drivers/gpu/drm/i915/display/intel_tv.c
+++ b/drivers/gpu/drm/i915/display/intel_tv.c
@@ -1869,6 +1869,48 @@ static const struct drm_encoder_funcs intel_tv_enc_funcs 
= {
        .destroy = intel_encoder_destroy,
 };
 
+static void intel_tv_add_properties(struct drm_connector *connector)
+{
+       struct drm_i915_private *i915 = to_i915(connector->dev);
+       struct drm_connector_state *conn_state = connector->state;
+       const char *tv_format_names[ARRAY_SIZE(tv_modes)];
+       int i;
+
+       /* BIOS margin values */
+       conn_state->tv.margins.left = 54;
+       conn_state->tv.margins.top = 36;
+       conn_state->tv.margins.right = 46;
+       conn_state->tv.margins.bottom = 37;
+
+       conn_state->tv.mode = 0;
+
+       /* Create TV properties then attach current values */
+       for (i = 0; i < ARRAY_SIZE(tv_modes); i++) {
+               /* 1080p50/1080p60 not supported on gen3 */
+               if (DISPLAY_VER(i915) == 3 && tv_modes[i].oversample == 1)
+                       break;
+
+               tv_format_names[i] = tv_modes[i].name;
+       }
+       drm_mode_create_tv_properties(&i915->drm, i, tv_format_names);
+
+       drm_object_attach_property(&connector->base,
+                                  i915->drm.mode_config.tv_mode_property,
+                                  conn_state->tv.mode);
+       drm_object_attach_property(&connector->base,
+                                  
i915->drm.mode_config.tv_left_margin_property,
+                                  conn_state->tv.margins.left);
+       drm_object_attach_property(&connector->base,
+                                  i915->drm.mode_config.tv_top_margin_property,
+                                  conn_state->tv.margins.top);
+       drm_object_attach_property(&connector->base,
+                                  
i915->drm.mode_config.tv_right_margin_property,
+                                  conn_state->tv.margins.right);
+       drm_object_attach_property(&connector->base,
+                                  
i915->drm.mode_config.tv_bottom_margin_property,
+                                  conn_state->tv.margins.bottom);
+}
+
 void
 intel_tv_init(struct drm_i915_private *dev_priv)
 {
@@ -1878,9 +1920,6 @@ intel_tv_init(struct drm_i915_private *dev_priv)
        struct intel_encoder *intel_encoder;
        struct intel_connector *intel_connector;
        u32 tv_dac_on, tv_dac_off, save_tv_dac;
-       const char *tv_format_names[ARRAY_SIZE(tv_modes)];
-       int i, initial_mode = 0;
-       struct drm_connector_state *state;
 
        if ((intel_de_read(dev_priv, TV_CTL) & TV_FUSE_STATE_MASK) == 
TV_FUSE_STATE_DISABLED)
                return;
@@ -1926,7 +1965,6 @@ intel_tv_init(struct drm_i915_private *dev_priv)
 
        intel_encoder = &intel_tv->base;
        connector = &intel_connector->base;
-       state = connector->state;
 
        /*
         * The documentation, for the older chipsets at least, recommend
@@ -1963,41 +2001,9 @@ intel_tv_init(struct drm_i915_private *dev_priv)
        intel_encoder->cloneable = 0;
        intel_tv->type = DRM_MODE_CONNECTOR_Unknown;
 
-       /* BIOS margin values */
-       state->tv.margins.left = 54;
-       state->tv.margins.top = 36;
-       state->tv.margins.right = 46;
-       state->tv.margins.bottom = 37;
-
-       state->tv.mode = initial_mode;
-
        drm_connector_helper_add(connector, &intel_tv_connector_helper_funcs);
        connector->interlace_allowed = false;
        connector->doublescan_allowed = false;
 
-       /* Create TV properties then attach current values */
-       for (i = 0; i < ARRAY_SIZE(tv_modes); i++) {
-               /* 1080p50/1080p60 not supported on gen3 */
-               if (DISPLAY_VER(dev_priv) == 3 &&
-                   tv_modes[i].oversample == 1)
-                       break;
-
-               tv_format_names[i] = tv_modes[i].name;
-       }
-       drm_mode_create_tv_properties(dev, i, tv_format_names);
-
-       drm_object_attach_property(&connector->base, 
dev->mode_config.tv_mode_property,
-                                  state->tv.mode);
-       drm_object_attach_property(&connector->base,
-                                  dev->mode_config.tv_left_margin_property,
-                                  state->tv.margins.left);
-       drm_object_attach_property(&connector->base,
-                                  dev->mode_config.tv_top_margin_property,
-                                  state->tv.margins.top);
-       drm_object_attach_property(&connector->base,
-                                  dev->mode_config.tv_right_margin_property,
-                                  state->tv.margins.right);
-       drm_object_attach_property(&connector->base,
-                                  dev->mode_config.tv_bottom_margin_property,
-                                  state->tv.margins.bottom);
+       intel_tv_add_properties(connector);
 }
-- 
2.35.1

Reply via email to