drm/i915/sdvo: Remove unused encoding member
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 22 Oct 2010 08:15:22 +0000 (09:15 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 22 Oct 2010 08:15:22 +0000 (09:15 +0100)
This block is only used when detecting whether the connector is HDMI and
never again, so scope the variable to the detection routine.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/intel_sdvo.c

index 6739a74551741dfbc5522bba6381a9b9e3856070..de158b76bcd572da1e261713c66d43fa4428f72c 100644 (file)
@@ -120,12 +120,6 @@ struct intel_sdvo {
         */
        struct drm_display_mode *sdvo_lvds_fixed_mode;
 
-       /*
-        * supported encoding mode, used to determine whether HDMI is
-        * supported
-        */
-       struct intel_sdvo_encode encode;
-
        /* DDC bus used by this SDVO encoder */
        uint8_t ddc_bus;
 
@@ -799,17 +793,13 @@ static void intel_sdvo_get_mode_from_dtd(struct drm_display_mode * mode,
                mode->flags |= DRM_MODE_FLAG_PVSYNC;
 }
 
-static bool intel_sdvo_get_supp_encode(struct intel_sdvo *intel_sdvo,
-                                      struct intel_sdvo_encode *encode)
+static bool intel_sdvo_check_supp_encode(struct intel_sdvo *intel_sdvo)
 {
-       if (intel_sdvo_get_value(intel_sdvo,
-                                 SDVO_CMD_GET_SUPP_ENCODE,
-                                 encode, sizeof(*encode)))
-               return true;
+       struct intel_sdvo_encode encode;
 
-       /* non-support means DVI */
-       memset(encode, 0, sizeof(*encode));
-       return false;
+       return intel_sdvo_get_value(intel_sdvo,
+                                 SDVO_CMD_GET_SUPP_ENCODE,
+                                 &encode, sizeof(encode));
 }
 
 static bool intel_sdvo_set_encode(struct intel_sdvo *intel_sdvo,
@@ -1958,12 +1948,22 @@ intel_sdvo_select_i2c_bus(struct drm_i915_private *dev_priv,
 }
 
 static bool
-intel_sdvo_get_digital_encoding_mode(struct intel_sdvo *intel_sdvo, int device)
+intel_sdvo_is_hdmi_connector(struct intel_sdvo *intel_sdvo, int device)
 {
-       return intel_sdvo_set_target_output(intel_sdvo,
-                                           device == 0 ? SDVO_OUTPUT_TMDS0 : SDVO_OUTPUT_TMDS1) &&
-               intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_ENCODE,
-                                    &intel_sdvo->is_hdmi, 1);
+       int is_hdmi;
+
+       if (!intel_sdvo_check_supp_encode(intel_sdvo))
+               return false;
+
+       if (!intel_sdvo_set_target_output(intel_sdvo,
+                                         device == 0 ? SDVO_OUTPUT_TMDS0 : SDVO_OUTPUT_TMDS1))
+               return false;
+
+       is_hdmi = 0;
+       if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_ENCODE, &is_hdmi, 1))
+               return false;
+
+       return !!is_hdmi;
 }
 
 static u8
@@ -2064,14 +2064,13 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, int device)
        encoder->encoder_type = DRM_MODE_ENCODER_TMDS;
        connector->connector_type = DRM_MODE_CONNECTOR_DVID;
 
-       if (intel_sdvo_get_supp_encode(intel_sdvo, &intel_sdvo->encode)
-               && intel_sdvo_get_digital_encoding_mode(intel_sdvo, device)
-               && intel_sdvo->is_hdmi) {
+       if (intel_sdvo_is_hdmi_connector(intel_sdvo, device)) {
                /* enable hdmi encoding mode if supported */
                intel_sdvo_set_encode(intel_sdvo, SDVO_ENCODE_HDMI);
                intel_sdvo_set_colorimetry(intel_sdvo,
                                           SDVO_COLORIMETRY_RGB256);
                connector->connector_type = DRM_MODE_CONNECTOR_HDMIA;
+               intel_sdvo->is_hdmi = true;
        }
        intel_sdvo->base.clone_mask = ((1 << INTEL_SDVO_NON_TV_CLONE_BIT) |
                                       (1 << INTEL_ANALOG_CLONE_BIT));