diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2006-04-24 07:44:52 +0000 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2006-04-24 07:44:52 +0000 |
commit | cc1825b503ce7e785cbb4611fd177477a1081b6e (patch) | |
tree | 5f55a35cd1d01d5678a7c15a3da11ee77d779617 /src/radeon_driver.c | |
parent | a66145bc9d487f7e19237cf292f12750cb959f61 (diff) |
Fix enabling of external VGA output on some cards with dual entity setup
instead of MergedFB. This was broken due to bogus manipulations of a
register between the 2 entities. This fix is a big "violent" in that it
always enables the analog output regardless of what is plugged. It
should work though (at the expense of some additional power
consumption). A proper fix should be easy to do once Alex gets his
output mapping rework in.
Diffstat (limited to 'src/radeon_driver.c')
-rw-r--r-- | src/radeon_driver.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 2e70c58c..579650d6 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -1,5 +1,5 @@ /* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v 1.117 2004/02/19 22:38:12 tsi Exp $ */ -/* $XdotOrg: driver/xf86-video-ati/src/radeon_driver.c,v 1.111 2006/04/21 00:34:43 airlied Exp $ */ +/* $XdotOrg: driver/xf86-video-ati/src/radeon_driver.c,v 1.112 2006/04/21 00:38:44 airlied Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and * VA Linux Systems Inc., Fremont, California. @@ -7806,13 +7806,21 @@ static Bool RADEONInitCrtcRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save, ? RADEON_CRTC_INTERLACE_EN : 0)); + /* Don't try to be smart and unconditionally enable the analog output + * for now as the dodgy code to handle it for the second head doesn't + * work. This will be correctly fixed when Alex' megapatch gets in that + * reworks the whole output mapping + */ +#if 0 if ((info->DisplayType == MT_DFP) || (info->DisplayType == MT_LCD)) { save->crtc_ext_cntl = RADEON_VGA_ATI_LINEAR | RADEON_XCRT_CNT_EN; save->crtc_gen_cntl &= ~(RADEON_CRTC_DBL_SCAN_EN | RADEON_CRTC_CSYNC_EN | RADEON_CRTC_INTERLACE_EN); - } else { + } else +#endif + { save->crtc_ext_cntl = (RADEON_VGA_ATI_LINEAR | RADEON_XCRT_CNT_EN | RADEON_CRTC_CRT_ON); @@ -7976,7 +7984,6 @@ static Bool RADEONInitCrtc2Registers(ScrnInfoPtr pScrn, RADEONSavePtr save, : 0)); /* Turn CRT on in case the first head is a DFP */ - save->crtc_ext_cntl |= RADEON_CRTC_CRT_ON; save->dac2_cntl = info->SavedReg.dac2_cntl; /* always let TVDAC drive CRT2, we don't support tvout yet */ save->dac2_cntl |= RADEON_DAC2_DAC2_CLK_SEL; |