diff options
Diffstat (limited to 'libre/linux-libre-lts/i915-fix-ghost-tv-output.patch')
-rw-r--r-- | libre/linux-libre-lts/i915-fix-ghost-tv-output.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libre/linux-libre-lts/i915-fix-ghost-tv-output.patch b/libre/linux-libre-lts/i915-fix-ghost-tv-output.patch new file mode 100644 index 000000000..3b631361a --- /dev/null +++ b/libre/linux-libre-lts/i915-fix-ghost-tv-output.patch @@ -0,0 +1,26 @@ +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); |