b5410eb
Obviously this is not upstreamable...
b5410eb
b5410eb
diff -up linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_display.c.jx linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_display.c
b5410eb
--- linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_display.c.jx	2013-01-30 12:03:28.000000000 -0500
b5410eb
+++ linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_display.c	2013-01-30 12:40:53.177449368 -0500
b5410eb
@@ -6925,6 +6925,11 @@ intel_modeset_check_state(struct drm_dev
b5410eb
 	struct intel_encoder *encoder;
b5410eb
 	struct intel_connector *connector;
b5410eb
 
b5410eb
+	/* oh hush */
b5410eb
+	extern int i915_in_tv_detect;
b5410eb
+	if (i915_in_tv_detect)
b5410eb
+		return;
b5410eb
+
b5410eb
 	list_for_each_entry(connector, &dev->mode_config.connector_list,
b5410eb
 			    base.head) {
b5410eb
 		/* This also checks the encoder/connector hw state with the
b5410eb
diff -up linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_tv.c.jx linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_tv.c
b5410eb
--- linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_tv.c.jx	2012-12-10 22:30:57.000000000 -0500
b5410eb
+++ linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_tv.c	2013-01-30 12:39:34.318593585 -0500
b5410eb
@@ -1296,6 +1296,8 @@ static void intel_tv_find_better_format(
b5410eb
 		connector->dev->mode_config.tv_mode_property, i);
b5410eb
 }
b5410eb
 
b5410eb
+int i915_in_tv_detect = 0;
b5410eb
+
b5410eb
 /**
b5410eb
  * Detect the TV connection.
b5410eb
  *
b5410eb
@@ -1314,11 +1316,15 @@ intel_tv_detect(struct drm_connector *co
b5410eb
 	if (force) {
b5410eb
 		struct intel_load_detect_pipe tmp;
b5410eb
 
b5410eb
+		i915_in_tv_detect = 1;
b5410eb
 		if (intel_get_load_detect_pipe(connector, &mode, &tmp)) {
b5410eb
 			type = intel_tv_detect_type(intel_tv, connector);
b5410eb
 			intel_release_load_detect_pipe(connector, &tmp);
b5410eb
-		} else
b5410eb
+			i915_in_tv_detect = 0;
b5410eb
+		} else {
b5410eb
+			i915_in_tv_detect = 0;
b5410eb
 			return connector_status_unknown;
b5410eb
+		}
b5410eb
 	} else
b5410eb
 		return connector->status;
b5410eb