summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMa Ling <ling.ma@intel.com>2009-05-15 14:01:18 +0800
committerZhenyu Wang <zhenyu.z.wang@intel.com>2009-06-03 09:49:29 +0800
commit6a635be5ea2b2df9d6b9a8006325244394038474 (patch)
tree89ff2ca583bc35cc50de813ef41f50171da8feb6
parentec2fde7c8250fdc30984f16c8a1d3587d70b0144 (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.h1
-rw-r--r--src/i830_crt.c4
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 */