@@ -1451,8 +1451,18 @@ intel_tv_detect(struct drm_connector *connector)
struct intel_output *intel_output = to_intel_output(connector);
struct intel_tv_priv *tv_priv = intel_output->dev_priv;
struct drm_encoder *encoder = &intel_output->enc;
+ struct drm_i915_private *dev_priv = connector->dev->dev_private;
int dpms_mode;
int type = tv_priv->type;
+ static int first_detect = 1;
+
+ if (first_detect) {
+ first_detect = 0;
+ if (!(I915_READ(TV_CTL) & TV_ENC_ENABLE))
+ return connector_status_disconnected;
+ else
+ return connector_status_connected;
+ }
mode = reported_modes[0];
drm_mode_set_crtcinfo(&mode, CRTC_INTERLACE_HALVE_V);