On Fre, 2002-01-25 at 06:29, Al Tobey wrote:
> I am trying to configure a radeon 7000 (OEM, if that matters) to drive
> my Sun 20D10 monitor. I'm running X 4.2.0 and everything works fine on
> a normal monitor. The adapter cable for the Sun monitor has the
> capacitor hack in it to make it work on composite sync, which worked
> fine with an ATI Mach64 with 'composite_sync' 'On'. Even specifying
> "composite" or "-csync" on the modelines doesn't help.
Please try the attached patch and specifying composite sync in the
modeline.
--
Earthling Michel D�nzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member / CS student, Free Software enthusiast
? Makefile
? local.diff
? r128.4.html
? r128._man
Index: radeon_driver.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v
retrieving revision 1.51
diff -u -r1.51 radeon_driver.c
--- radeon_driver.c 2002/01/21 18:49:16 1.51
+++ radeon_driver.c 2002/01/27 13:58:01
@@ -3705,6 +3705,9 @@
| ((mode->Flags & V_DBLSCAN)
? RADEON_CRTC_DBL_SCAN_EN
: 0)
+ | ((mode->Flags & V_CSYNC)
+ ? RADEON_CRTC_CSYNC_EN
+ : 0)
| ((mode->Flags & V_INTERLACE)
? RADEON_CRTC_INTERLACE_EN
: 0));
@@ -3715,6 +3718,7 @@
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
@@ -3837,6 +3841,9 @@
| ((mode->Flags & V_DBLSCAN)
? RADEON_CRTC2_DBL_SCAN_EN
: 0)
+ | ((mode->Flags & V_CSYNC)
+ ? RADEON_CRTC_CSYNC_EN
+ : 0)
| ((mode->Flags & V_INTERLACE)
? RADEON_CRTC2_INTERLACE_EN
: 0));
@@ -4197,6 +4204,7 @@
pScrn->depth,
pScrn->bitsPerPixel);
if (mode->Flags & V_DBLSCAN) ErrorF(" D");
+ if (mode->Flags & V_CSYNC) ErrorF(" C");
if (mode->Flags & V_INTERLACE) ErrorF(" I");
if (mode->Flags & V_PHSYNC) ErrorF(" +H");
if (mode->Flags & V_NHSYNC) ErrorF(" -H");
@@ -4219,6 +4227,7 @@
pScrn->depth,
pScrn->bitsPerPixel);
if (mode->Flags & V_DBLSCAN) ErrorF(" D");
+ if (mode->Flags & V_CSYNC) ErrorF(" C");
if (mode->Flags & V_INTERLACE) ErrorF(" I");
if (mode->Flags & V_PHSYNC) ErrorF(" +H");
if (mode->Flags & V_NHSYNC) ErrorF(" -H");