diff options
-rw-r--r-- | kernels/linux-libre-xen/i915-fix-ghost-tv-output.patch | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/kernels/linux-libre-xen/i915-fix-ghost-tv-output.patch b/kernels/linux-libre-xen/i915-fix-ghost-tv-output.patch new file mode 100644 index 000000000..96654047b --- /dev/null +++ b/kernels/linux-libre-xen/i915-fix-ghost-tv-output.patch @@ -0,0 +1,27 @@ +Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> +Tested-by: Santi <santi@agolina.net> +--- + drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) + +diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c +index dc83b7a..c8f67bf 100644 +--- a/drivers/gpu/drm/i915/intel_tv.c ++++ b/drivers/gpu/drm/i915/intel_tv.c +@@ -1267,6 +1267,15 @@ + DAC_B_0_7_V | + DAC_C_0_7_V); + ++ /* ++ * The TV sense state should be cleared to zero on cantiga platform. Otherwise ++ * the TV is misdetected. This is hardware requirement. ++ */ ++ if (IS_GM45(dev)) ++ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL | ++ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL); ++ ++ + I915_WRITE(TV_CTL, tv_ctl); + I915_WRITE(TV_DAC, tv_dac); + POSTING_READ(TV_DAC); + |