Re: [XFree86] 4.2.99.4 no display, locked keyboard (Radeon7500Mobility)

2003-02-04 Thread Vladimir Dergachev
Michel,

   could you remind me what is that xxx_SAVE bit ?

best

  Vladimir Dergachev

On Sun, 3 Feb 2003, Michel [ISO-8859-1] Dänzer wrote:

> On Son, 2003-02-02 at 12:51, Michel Dänzer wrote:
> > On Son, 2003-02-02 at 06:09, hy0 wrote:
> > >
> > > Judging from current situation, we probably should take
> > > RADEONWaitForVerticalSync and RADEONWaitForVerticalSync2 all out of the
> > > cursor routines.
> >
> > I'd prefer fixing those functions instead. After some more thought,
> > polling for _VBLANK_SAVE in both is probably safest for 4.3.0.
>
> Here's what I'm talking about, what do you think?
>
>
> --
> Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
> XFree86 and DRI project member   /  CS student, Free Software enthusiast
>
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel



Re: [XFree86] 4.2.99.4 no display, locked keyboard(Radeon7500Mobility)

2003-02-03 Thread hy0
- Original Message -
From: "Michel Dänzer" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: "hy0" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Sunday, February 02, 2003 7:31 PM
Subject: Re: [XFree86] 4.2.99.4 no display, locked
keyboard(Radeon7500Mobility)


> On Son, 2003-02-02 at 12:51, Michel Dänzer wrote:
> > On Son, 2003-02-02 at 06:09, hy0 wrote:
> > >
> > > Judging from current situation, we probably should take
> > > RADEONWaitForVerticalSync and RADEONWaitForVerticalSync2 all out of
the
> > > cursor routines.
> >
> > I'd prefer fixing those functions instead. After some more thought,
> > polling for _VBLANK_SAVE in both is probably safest for 4.3.0.
>
> Here's what I'm talking about, what do you think?
>

Yes, this should work. Thanks.

Hui

> --
> Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
> XFree86 and DRI project member   /  CS student, Free Software enthusiast
>

___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel



Re: [XFree86] 4.2.99.4 no display, locked keyboard(Radeon7500Mobility)

2003-02-02 Thread Michel Dänzer
On Son, 2003-02-02 at 12:51, Michel Dänzer wrote:
> On Son, 2003-02-02 at 06:09, hy0 wrote:
> > 
> > Judging from current situation, we probably should take
> > RADEONWaitForVerticalSync and RADEONWaitForVerticalSync2 all out of the
> > cursor routines. 
> 
> I'd prefer fixing those functions instead. After some more thought,
> polling for _VBLANK_SAVE in both is probably safest for 4.3.0.

Here's what I'm talking about, what do you think?


-- 
Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member   /  CS student, Free Software enthusiast

Index: programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h
===
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h,v
retrieving revision 1.24
diff -p -u -r1.24 radeon_reg.h
--- programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h	2003/01/17 19:54:03	1.24
+++ programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h	2003/02/03 03:28:42
@@ -307,6 +307,10 @@
 #define RADEON_CRTC2_PITCH  0x032c
 #define RADEON_CRTC_STATUS  0x005c
 #   define RADEON_CRTC_VBLANK_SAVE  (1 <<  1)
+#   define RADEON_CRTC_VBLANK_SAVE_CLEAR  (1 <<  1)
+#define RADEON_CRTC2_STATUS  0x03fc
+#   define RADEON_CRTC2_VBLANK_SAVE  (1 <<  1)
+#   define RADEON_CRTC2_VBLANK_SAVE_CLEAR  (1 <<  1)
 #define RADEON_CRTC_V_SYNC_STRT_WID 0x020c
 #   define RADEON_CRTC_V_SYNC_STRT(0x7ff <<  0)
 #   define RADEON_CRTC_V_SYNC_STRT_SHIFT  0
Index: programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
===
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v
retrieving revision 1.84
diff -p -u -r1.84 radeon_driver.c
--- programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	2003/01/30 05:31:31	1.84
+++ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	2003/02/03 03:28:46
@@ -671,9 +675,13 @@ void RADEONWaitForVerticalSync(ScrnInfoP
 unsigned char *RADEONMMIO = info->MMIO;
 inti;
 
-OUTREG(RADEON_GEN_INT_STATUS, RADEON_VSYNC_INT_AK);
-for (i = 0; i < RADEON_TIMEOUT; i++) {
-	if (INREG(RADEON_GEN_INT_STATUS) & RADEON_VSYNC_INT) break;
+/* Clear the CRTC_VBLANK_SAVE bit */
+OUTREG(RADEON_CRTC_STATUS, RADEON_CRTC_VBLANK_SAVE_CLEAR);
+
+/* Wait for it to go back up */
+for (i = 0; i < RADEON_TIMEOUT/1000; i++) {
+	if (INREG(RADEON_CRTC_STATUS) & RADEON_CRTC_VBLANK_SAVE) break;
+	usleep(1);
 }
 }
 
@@ -683,10 +691,14 @@ void RADEONWaitForVerticalSync2(ScrnInfo
 RADEONInfoPtr  info   = RADEONPTR(pScrn);
 unsigned char *RADEONMMIO = info->MMIO;
 inti;
+
+/* Clear the CRTC2_VBLANK_SAVE bit */
+OUTREG(RADEON_CRTC2_STATUS, RADEON_CRTC2_VBLANK_SAVE_CLEAR);
 
-OUTREG(RADEON_GEN_INT_STATUS, RADEON_VSYNC2_INT_AK);
-for (i = 0; i < RADEON_TIMEOUT; i++) {
-	if (INREG(RADEON_GEN_INT_STATUS) & RADEON_VSYNC2_INT) break;
+/* Wait for it to go back up */
+for (i = 0; i < RADEON_TIMEOUT/1000; i++) {
+	if (INREG(RADEON_CRTC2_STATUS) & RADEON_CRTC2_VBLANK_SAVE) break;
+	usleep(1);
 }
 }