Make crtc_notify wrap/unwrap code do nothing unless mode code is inuse

Drivers not using the new hw/xfree86/modes code would crash in DRI due to
that code trying to monitor CRTC changes.

(cherry picked from commit ea309e4745)

Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Keith Packard 2009-01-30 14:19:41 -08:00
parent 09cde70a6b
commit 4302a32391

View File

@ -2987,22 +2987,29 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
xf86_crtc_notify_proc_ptr
xf86_wrap_crtc_notify (ScreenPtr screen, xf86_crtc_notify_proc_ptr new)
{
ScrnInfoPtr scrn = xf86Screens[screen->myNum];
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
xf86_crtc_notify_proc_ptr old;
old = config->xf86_crtc_notify;
config->xf86_crtc_notify = new;
return old;
if (xf86CrtcConfigPrivateIndex != -1)
{
ScrnInfoPtr scrn = xf86Screens[screen->myNum];
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
xf86_crtc_notify_proc_ptr old;
old = config->xf86_crtc_notify;
config->xf86_crtc_notify = new;
return old;
}
return NULL;
}
void
xf86_unwrap_crtc_notify(ScreenPtr screen, xf86_crtc_notify_proc_ptr old)
{
ScrnInfoPtr scrn = xf86Screens[screen->myNum];
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
config->xf86_crtc_notify = old;
if (xf86CrtcConfigPrivateIndex != -1)
{
ScrnInfoPtr scrn = xf86Screens[screen->myNum];
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
config->xf86_crtc_notify = old;
}
}
void