mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 09:41:44 +00:00
drm/i915: Configure the TV sense state correctly on GM45 to make TV detection reliable
The TV detection logic is not reliable on the Cantiga platform. Sometimes the TV will be misdetected as the following two cases: - TV is misdetected on some laptops. e.g. There is no TV connector port or no TV is attached. But the TV is shown as connected. - TV connector type is misdetected. e.g. the component TV is attached, but the TV is shown as S-video type. According to the hardware requirement, the TV sense state bits of TV DAC register should be cleared to zero on Cantiga platfrom. https://bugzilla.kernel.org/show_bug.cgi?id=14792 Cc: Stable Team <stable@kernel.org> Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> Tested-by: Santi <santi@agolina.net> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
bfac4d6725
commit
fb8b5a39b6
@ -1399,6 +1399,15 @@ intel_tv_detect_type (struct drm_crtc *crtc, struct intel_encoder *intel_encoder
|
||||
DAC_A_0_7_V |
|
||||
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);
|
||||
intel_wait_for_vblank(dev);
|
||||
|
Loading…
Reference in New Issue
Block a user