Regression 2.6.27 -> 2.6.28

Alex Deucher alexdeucher at gmail.com
Mon Feb 2 14:31:16 PST 2009


On Mon, Feb 2, 2009 at 5:11 PM, Michel Dänzer <michel at daenzer.net> wrote:
> On Mon, 2009-02-02 at 17:06 -0500, Alex Deucher wrote:
>> On Sat, Jan 31, 2009 at 8:26 AM, Michel Dänzer <michel at daenzer.net> wrote:
>> > On Fri, 2009-01-30 at 20:52 +0100, Jörg-Volker Peetz wrote:
>> >>
>> >> But with radeon_crtc_modeset_ioctl() calls in legacy_crtc_dpms() in
>> >> xf86-video-ati/src/legacy_crtc.c disabled like this:
>> >>
>> >> $ diff legacy_crtc.c legacy_crtc.c.orig
>> >> 671,672c671,672
>> >> <     /*    if (mode == DPMSModeOff)
>> >> <           radeon_crtc_modeset_ioctl(crtc, FALSE); */
>> >> ---
>> >> >     if (mode == DPMSModeOff)
>> >> >     radeon_crtc_modeset_ioctl(crtc, FALSE);
>> >> 710c710
>> >> <       /* radeon_crtc_modeset_ioctl(crtc, TRUE); */
>> >> ---
>> >> >     radeon_crtc_modeset_ioctl(crtc, TRUE);
>> >>
>> >> the wakeups stayed below 5/s after xset dpms force off.
>> >
>> > Okay. Unfortunately, we can't just remove these calls, or 3D
>> > applications with sync-to-vblank enabled may hang after a mode switch.
>> > We need to know the exact conditions under which the CRTC frame counter
>> > registers reset to zero, then we can move these calls where they are
>> > really necessary.
>>
>> The crtc frame counters are reset when the crtc is disabled or when
>> the the frame count reset registers are written to.
>
> We never do the latter that I know of. I thougt the above places was
> where the CRTC is dis/enabled, but apparently not - do you know where
> these calls need to move to?

That should work for pre-avivo cards, but we should probably move them
to radeon_crtc_dpms() in radeon_crtc.c since that will handle both the
legacy and atom cases (atom isn't currently handled at all).  Also,
note that on pre-avivo cards, crtc2 has to be enabled before crtc1 or
you may get a blank screen, so that may cause issues with the frame
counters on each crtc since we blank both crtcs when enabling crtc2.

Alex


More information about the xorg-driver-ati mailing list