kernel/drm-i915-tv-detect-hush.patch

47 lines
1.7 KiB
Diff

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