diff options
author | Ma Ling <ling.ma@intel.com> | 2009-05-15 14:01:18 +0800 |
---|---|---|
committer | Zhenyu Wang <zhenyu.z.wang@intel.com> | 2009-06-03 09:49:29 +0800 |
commit | 6a635be5ea2b2df9d6b9a8006325244394038474 (patch) | |
tree | 89ff2ca583bc35cc50de813ef41f50171da8feb6 | |
parent | ec2fde7c8250fdc30984f16c8a1d3587d70b0144 (diff) |
Set activation periods as 64 cdclk sync up with KMS
We use force CRT detect trigger bit(1 << 3) to detect VGA in hot plug mode,
which triggers a CRT hotplug/unplug detection cycle independent of the
interrupt enable bit(1 << 9), so keep bit 9.
And although spec says CRT_HOTPLUG_ACTIVATION_PERIOD_64(1 << 8) is only useful
for mobile platform, it is also required to detect vga on G4x platform correctly.
Tested the patch on G45/G43/Q45 platforms with no regressions
It fixed freedesktop.org bug #21120 and part of bug #21210.
Signed-off-by: Ma Ling <ling.ma@intel.com>
-rw-r--r-- | src/i810_reg.h | 1 | ||||
-rw-r--r-- | src/i830_crt.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/i810_reg.h b/src/i810_reg.h index cb337842..db542aa3 100644 --- a/src/i810_reg.h +++ b/src/i810_reg.h @@ -1262,6 +1262,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # define CRT_HOTPLUG_DETECT_VOLTAGE_325MV (0 << 2) # define CRT_HOTPLUG_DETECT_VOLTAGE_475MV (1 << 2) # define CRT_HOTPLUG_MASK (0x3fc) /* Bits 9-2 */ +# define CRT_FORCE_HOTPLUG_MASK 0xfffffe1f #define PORT_HOTPLUG_STAT 0x61114 # define HDMIB_HOTPLUG_INT_STATUS (1 << 29) diff --git a/src/i830_crt.c b/src/i830_crt.c index d8e4a766..eced5e8f 100644 --- a/src/i830_crt.c +++ b/src/i830_crt.c @@ -185,7 +185,7 @@ i830_crt_detect_hotplug(xf86OutputPtr output) hotplug_en = INREG(PORT_HOTPLUG_EN); - hotplug_en &= ~CRT_HOTPLUG_MASK; + hotplug_en &= CRT_FORCE_HOTPLUG_MASK; /* This starts the detection sequence */ hotplug_en |= CRT_HOTPLUG_FORCE_DETECT; @@ -193,7 +193,7 @@ i830_crt_detect_hotplug(xf86OutputPtr output) /* GM45 requires a longer activation period to reliably * detect CRT */ - if (IS_GM45(pI830)) + if (IS_G4X(pI830)) hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64; /* Use the default voltage value */ |