diff options
author | wiz <wiz> | 2016-12-07 21:59:54 +0000 |
---|---|---|
committer | wiz <wiz> | 2016-12-07 21:59:54 +0000 |
commit | 0869baa5922e1d7325a838000913d0239867bfd8 (patch) | |
tree | e4fae822240e7307d533c9b69bdbbf99842acd4f /x11 | |
parent | 39868f0195d5c7fd9efd504a9df67ff00118a345 (diff) | |
download | pkgsrc-0869baa5922e1d7325a838000913d0239867bfd8.tar.gz |
Patches from David Shao fixing build with xorg-server-1.19.
Sent in PR 51687.
Bump PKGREVISION.
Diffstat (limited to 'x11')
-rw-r--r-- | x11/xf86-video-intel/Makefile | 4 | ||||
-rw-r--r-- | x11/xf86-video-intel/distinfo | 12 | ||||
-rw-r--r-- | x11/xf86-video-intel/patches/patch-src_compat-api.h | 40 | ||||
-rw-r--r-- | x11/xf86-video-intel/patches/patch-src_legacy_i810_i810__video.c | 88 | ||||
-rw-r--r-- | x11/xf86-video-intel/patches/patch-src_sna_sna.h | 17 | ||||
-rw-r--r-- | x11/xf86-video-intel/patches/patch-src_sna_sna__accel.c | 50 | ||||
-rw-r--r-- | x11/xf86-video-intel/patches/patch-src_sna_sna__acpi.c | 38 | ||||
-rw-r--r-- | x11/xf86-video-intel/patches/patch-src_sna_sna__driver.c | 77 | ||||
-rw-r--r-- | x11/xf86-video-intel/patches/patch-src_uxa_intel.h | 17 | ||||
-rw-r--r-- | x11/xf86-video-intel/patches/patch-src_uxa_intel__display.c | 55 | ||||
-rw-r--r-- | x11/xf86-video-intel/patches/patch-src_uxa_intel__driver.c | 62 |
11 files changed, 454 insertions, 6 deletions
diff --git a/x11/xf86-video-intel/Makefile b/x11/xf86-video-intel/Makefile index 9eb793bbe0c..2a93342c472 100644 --- a/x11/xf86-video-intel/Makefile +++ b/x11/xf86-video-intel/Makefile @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.38 2016/02/26 11:27:19 jperkin Exp $ +# $NetBSD: Makefile,v 1.39 2016/12/07 21:59:54 wiz Exp $ DISTNAME= xf86-video-intel-2.99.917 -PKGREVISION= 4 +PKGREVISION= 5 CATEGORIES= x11 MASTER_SITES= ${MASTER_SITE_XORG:=driver/} EXTRACT_SUFX= .tar.bz2 diff --git a/x11/xf86-video-intel/distinfo b/x11/xf86-video-intel/distinfo index 7fbd00b9c9f..e370d219021 100644 --- a/x11/xf86-video-intel/distinfo +++ b/x11/xf86-video-intel/distinfo @@ -1,11 +1,19 @@ -$NetBSD: distinfo,v 1.27 2016/01/05 13:05:37 tnn Exp $ +$NetBSD: distinfo,v 1.28 2016/12/07 21:59:54 wiz Exp $ SHA1 (xf86-video-intel-2.99.917.tar.bz2) = 9af9ded7a29026c211e5eb50a547e3e33976301d RMD160 (xf86-video-intel-2.99.917.tar.bz2) = dd443e9e87286bbc454f4231a7a5d7c9bb2488a1 SHA512 (xf86-video-intel-2.99.917.tar.bz2) = cbf4d46ad1ad5e5587c0f1f620ff534ef0645270517b60056b9f03e83d8216e2f456de46352a06c37c0c46963cc4ed20b71b815b20ec1bf680ff046e535f580f Size (xf86-video-intel-2.99.917.tar.bz2) = 2259040 bytes SHA1 (patch-src_backlight.c) = 39537a3233613c777f0475343f0be615bff3c3ca +SHA1 (patch-src_compat-api.h) = 303cc02ad41aa8024631577b9ea0bb26cd5f23f4 SHA1 (patch-src_legacy_i810_i810__dri.c) = fb963b994d51c9db48457106048226214a2d986c +SHA1 (patch-src_legacy_i810_i810__video.c) = 8788a9bf4e1efdb5292771c125af9a24c09d62da +SHA1 (patch-src_sna_sna.h) = 13f0f7c9f8235f6100da90203a9ca4aa09fad977 +SHA1 (patch-src_sna_sna__accel.c) = 0510f3409b5a1e6c0b381147af33e2ac1d4ff590 +SHA1 (patch-src_sna_sna__acpi.c) = 7105609e38876fe8bb931d6980c023cabdf41736 SHA1 (patch-src_sna_sna__display.c) = b2e5b330b5b4154b4d0bbf4edd7af1cec2c68cd8 SHA1 (patch-src_sna_sna__dri2.c) = 4bcc7e5c502a340954073386dad88fd6cebcc7b1 -SHA1 (patch-src_uxa_intel__driver.c) = 15ec83bf05b377764d1721c7a79ae9c6b1e7a0e6 +SHA1 (patch-src_sna_sna__driver.c) = ced69376d7f1af697b1f51ccb46d958495138136 +SHA1 (patch-src_uxa_intel.h) = 201a28ce259c474ea9f83700ec04c105388ad8ed +SHA1 (patch-src_uxa_intel__display.c) = b8936ecbad39f5a507ae32b4c46d5069f53ca727 +SHA1 (patch-src_uxa_intel__driver.c) = 1eeea5efb0f89eb19eb9b1f0afadb571962f2014 diff --git a/x11/xf86-video-intel/patches/patch-src_compat-api.h b/x11/xf86-video-intel/patches/patch-src_compat-api.h new file mode 100644 index 00000000000..0ef711e4d37 --- /dev/null +++ b/x11/xf86-video-intel/patches/patch-src_compat-api.h @@ -0,0 +1,40 @@ +$NetBSD: patch-src_compat-api.h,v 1.1 2016/12/07 21:59:54 wiz Exp $ + +Upstream patches for xorg-server-1.19. + +--- src/compat-api.h.orig 2014-11-18 21:50:39.000000000 +0000 ++++ src/compat-api.h +@@ -30,6 +30,7 @@ + + #include <xorg-server.h> + #include <xorgVersion.h> ++#include <xf86Module.h> + + #include <picturestr.h> + #ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR +@@ -42,6 +43,10 @@ + #define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] + #endif + ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 22 ++#define HAVE_NOTIFY_FD 1 ++#endif ++ + #ifndef XF86_SCRN_INTERFACE + + #define SCRN_ARG_TYPE int +@@ -223,4 +228,14 @@ static inline void FreePixmap(PixmapPtr + dstx, dsty) + #endif + ++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(22, 0) ++#define OsBlockSIGIO() ++#define OsReleaseSIGIO() ++#endif ++ ++#if !HAVE_NOTIFY_FD ++#define SetNotifyFd(fd, cb, mode, data) AddGeneralSocket(fd); ++#define RemoveNotifyFd(fd) RemoveGeneralSocket(fd) ++#endif ++ + #endif diff --git a/x11/xf86-video-intel/patches/patch-src_legacy_i810_i810__video.c b/x11/xf86-video-intel/patches/patch-src_legacy_i810_i810__video.c new file mode 100644 index 00000000000..1aeb09058f9 --- /dev/null +++ b/x11/xf86-video-intel/patches/patch-src_legacy_i810_i810__video.c @@ -0,0 +1,88 @@ +$NetBSD: patch-src_legacy_i810_i810__video.c,v 1.1 2016/12/07 21:59:54 wiz Exp $ + +Upstream patches for xorg-server-1.19. + +--- src/legacy/i810/i810_video.c.orig 2014-08-29 09:33:11.000000000 +0000 ++++ src/legacy/i810/i810_video.c +@@ -77,7 +77,11 @@ static int I810PutImage( ScrnInfoPtr, + static int I810QueryImageAttributes(ScrnInfoPtr, + int, unsigned short *, unsigned short *, int *, int *); + ++#if !HAVE_NOTIFY_FD + static void I810BlockHandler(BLOCKHANDLER_ARGS_DECL); ++#else ++static void I810BlockHandler(void *data, void *_timeout); ++#endif + + #define MAKE_ATOM(a) MakeAtom(a, sizeof(a) - 1, TRUE) + +@@ -418,8 +422,14 @@ I810SetupImageVideo(ScreenPtr screen) + + pI810->adaptor = adapt; + ++#if !HAVE_NOTIFY_FD + pI810->BlockHandler = screen->BlockHandler; + screen->BlockHandler = I810BlockHandler; ++#else ++ RegisterBlockAndWakeupHandlers(I810BlockHandler, ++ (ServerWakeupHandlerProcPtr)NoopDDA, ++ pScrn); ++#endif + + xvBrightness = MAKE_ATOM("XV_BRIGHTNESS"); + xvContrast = MAKE_ATOM("XV_CONTRAST"); +@@ -1135,6 +1145,7 @@ I810QueryImageAttributes( + return size; + } + ++#if !HAVE_NOTIFY_FD + static void + I810BlockHandler (BLOCKHANDLER_ARGS_DECL) + { +@@ -1172,7 +1183,38 @@ I810BlockHandler (BLOCKHANDLER_ARGS_DECL + } + } + } ++#else ++static void ++I810BlockHandler(void *data, void *_timeout) ++{ ++ ScrnInfoPtr pScrn = data; ++ I810Ptr pI810 = I810PTR(pScrn); ++ I810PortPrivPtr pPriv = GET_PORT_PRIVATE(pScrn); ++ I810OverlayRegPtr overlay = (I810OverlayRegPtr) (pI810->FbBase + pI810->OverlayStart); + ++ if(pPriv->videoStatus & TIMER_MASK) { ++ UpdateCurrentTime(); ++ if(pPriv->videoStatus & OFF_TIMER) { ++ if(pPriv->offTime < currentTime.milliseconds) { ++ /* Turn off the overlay */ ++ overlay->OV0CMD &= 0xFFFFFFFE; ++ OVERLAY_UPDATE(pI810->OverlayPhysical); ++ ++ pPriv->videoStatus = FREE_TIMER; ++ pPriv->freeTime = currentTime.milliseconds + FREE_DELAY; ++ } ++ } else { /* FREE_TIMER */ ++ if(pPriv->freeTime < currentTime.milliseconds) { ++ if(pPriv->linear) { ++ xf86FreeOffscreenLinear(pPriv->linear); ++ pPriv->linear = NULL; ++ } ++ pPriv->videoStatus = 0; ++ } ++ } ++ } ++} ++#endif + + /*************************************************************************** + * Offscreen Images +@@ -1373,7 +1415,6 @@ I810DisplaySurface( + UpdateCurrentTime(); + pI810Priv->videoStatus = FREE_TIMER; + pI810Priv->freeTime = currentTime.milliseconds + FREE_DELAY; +- pScrn->pScreen->BlockHandler = I810BlockHandler; + } + + return Success; diff --git a/x11/xf86-video-intel/patches/patch-src_sna_sna.h b/x11/xf86-video-intel/patches/patch-src_sna_sna.h new file mode 100644 index 00000000000..cc92d91f2c4 --- /dev/null +++ b/x11/xf86-video-intel/patches/patch-src_sna_sna.h @@ -0,0 +1,17 @@ +$NetBSD: patch-src_sna_sna.h,v 1.1 2016/12/07 21:59:54 wiz Exp $ + +Upstream patches for xorg-server-1.19. + +--- src/sna/sna.h.orig 2014-12-20 13:29:05.000000000 +0000 ++++ src/sna/sna.h +@@ -364,8 +364,10 @@ struct sna { + EntityInfoPtr pEnt; + const struct intel_device_info *info; + ++#if !HAVE_NOTIFY_FD + ScreenBlockHandlerProcPtr BlockHandler; + ScreenWakeupHandlerProcPtr WakeupHandler; ++#endif + CloseScreenProcPtr CloseScreen; + + PicturePtr clear; diff --git a/x11/xf86-video-intel/patches/patch-src_sna_sna__accel.c b/x11/xf86-video-intel/patches/patch-src_sna_sna__accel.c new file mode 100644 index 00000000000..9cc3ba3aff7 --- /dev/null +++ b/x11/xf86-video-intel/patches/patch-src_sna_sna__accel.c @@ -0,0 +1,50 @@ +$NetBSD: patch-src_sna_sna__accel.c,v 1.1 2016/12/07 21:59:54 wiz Exp $ + +Upstream patches for xorg-server-1.19. + +--- src/sna/sna_accel.c.orig 2014-12-20 13:29:27.000000000 +0000 ++++ src/sna/sna_accel.c +@@ -115,6 +115,11 @@ + #define RECTILINEAR 0x4 + #define OVERWRITES 0x8 + ++#if XFONT2_CLIENT_FUNCS_VERSION >= 1 ++#define AllocateFontPrivateIndex() xfont2_allocate_font_private_index() ++#define FontSetPrivate(font, idx, data) xfont2_font_set_private(font, idx, data) ++#endif ++ + #if 0 + static void __sna_fallback_flush(DrawablePtr d) + { +@@ -17811,6 +17816,13 @@ static bool sna_option_accel_blt(struct + return strcasecmp(s, "blt") == 0; + } + ++#if HAVE_NOTIFY_FD ++static void sna_accel_notify(int fd, int ready, void *data) ++{ ++ sna_mode_wakeup(data); ++} ++#endif ++ + bool sna_accel_init(ScreenPtr screen, struct sna *sna) + { + const char *backend; +@@ -17822,7 +17834,7 @@ bool sna_accel_init(ScreenPtr screen, st + list_init(&sna->flush_pixmaps); + list_init(&sna->active_pixmaps); + +- AddGeneralSocket(sna->kgem.fd); ++ SetNotifyFd(sna->kgem.fd, sna_accel_notify, X_NOTIFY_READ, sna); + + #ifdef DEBUG_MEMORY + sna->timer_expire[DEBUG_MEMORY_TIMER] = GetTimeInMillis()+ 10 * 1000; +@@ -17998,7 +18010,7 @@ void sna_accel_close(struct sna *sna) + sna_pixmap_expire(sna); + + DeleteCallback(&FlushCallback, sna_accel_flush_callback, sna); +- RemoveGeneralSocket(sna->kgem.fd); ++ RemoveNotifyFd(sna->kgem.fd); + + kgem_cleanup_cache(&sna->kgem); + } diff --git a/x11/xf86-video-intel/patches/patch-src_sna_sna__acpi.c b/x11/xf86-video-intel/patches/patch-src_sna_sna__acpi.c new file mode 100644 index 00000000000..7b9cb083f1b --- /dev/null +++ b/x11/xf86-video-intel/patches/patch-src_sna_sna__acpi.c @@ -0,0 +1,38 @@ +$NetBSD: patch-src_sna_sna__acpi.c,v 1.1 2016/12/07 21:59:54 wiz Exp $ + +Upstream patches for xorg-server-1.19. + +--- src/sna/sna_acpi.c.orig 2014-08-29 09:33:11.000000000 +0000 ++++ src/sna/sna_acpi.c +@@ -92,7 +92,7 @@ void _sna_acpi_wakeup(struct sna *sna) + DBG(("%s: error [%d], detaching from acpid\n", __FUNCTION__, n)); + + /* XXX reattach later? */ +- RemoveGeneralSocket(sna->acpi.fd); ++ RemoveNotifyFd(sna->acpi.fd); + sna_acpi_fini(sna); + return; + } +@@ -136,6 +136,13 @@ void _sna_acpi_wakeup(struct sna *sna) + } while (n); + } + ++#if HAVE_NOTIFY_FD ++static void sna_acpi_notify(int fd, int read, void *data) ++{ ++ _sna_acpi_wakeup(data); ++} ++#endif ++ + static int read_power_state(const char *path) + { + DIR *dir; +@@ -200,7 +207,7 @@ void sna_acpi_init(struct sna *sna) + + DBG(("%s: attaching to acpid\n", __FUNCTION__)); + +- AddGeneralSocket(sna->acpi.fd); ++ SetNotifyFd(sna->acpi.fd, sna_acpi_notify, X_NOTIFY_READ, sna); + sna->acpi.remain = sizeof(sna->acpi.event) - 1; + sna->acpi.offset = 0; + diff --git a/x11/xf86-video-intel/patches/patch-src_sna_sna__driver.c b/x11/xf86-video-intel/patches/patch-src_sna_sna__driver.c new file mode 100644 index 00000000000..900e2f88111 --- /dev/null +++ b/x11/xf86-video-intel/patches/patch-src_sna_sna__driver.c @@ -0,0 +1,77 @@ +$NetBSD: patch-src_sna_sna__driver.c,v 1.1 2016/12/07 21:59:54 wiz Exp $ + +Upstream patches for xorg-server-1.19. + +--- src/sna/sna_driver.c.orig 2014-12-11 13:52:11.000000000 +0000 ++++ src/sna/sna_driver.c +@@ -732,6 +732,7 @@ static bool has_shadow(struct sna *sna) + return sna->mode.flip_active == 0; + } + ++#if !HAVE_NOTIFY_FD + static void + sna_block_handler(BLOCKHANDLER_ARGS_DECL) + { +@@ -778,6 +779,31 @@ sna_wakeup_handler(WAKEUPHANDLER_ARGS_DE + FD_CLR(sna->kgem.fd, (fd_set*)read_mask); + } + } ++#else ++static void ++sna_block_handler(void *data, void *_timeout) ++{ ++ struct sna *sna = data; ++ int *timeout = _timeout; ++ struct timeval tv, *tvp; ++ ++ DBG(("%s (timeout=%d)\n", __FUNCTION__, *timeout)); ++ if (*timeout == 0) ++ return; ++ ++ if (*timeout < 0) { ++ tvp = NULL; ++ } else { ++ tv.tv_sec = *timeout / 1000; ++ tv.tv_usec = (*timeout % 1000) * 1000; ++ tvp = &tv; ++ } ++ ++ sna_accel_block_handler(sna, &tvp); ++ if (tvp) ++ *timeout = tvp->tv_sec * 1000 + tvp->tv_usec / 1000; ++} ++#endif + + #if HAVE_UDEV + static void +@@ -948,6 +974,12 @@ static Bool sna_early_close_screen(CLOSE + + /* XXX Note that we will leak kernel resources if !vtSema */ + ++#if HAVE_NOTIFY_FD ++ RemoveBlockAndWakeupHandlers(sna_block_handler, ++ (ServerWakeupHandlerProcPtr)NoopDDA, ++ sna); ++#endif ++ + sna_uevent_fini(sna); + sna_mode_close(sna); + +@@ -1166,11 +1198,17 @@ sna_screen_init(SCREEN_INIT_ARGS_DECL) + * later memory should be bound when allocating, e.g rotate_mem */ + scrn->vtSema = TRUE; + ++#if !HAVE_NOTIFY_FD + sna->BlockHandler = screen->BlockHandler; + screen->BlockHandler = sna_block_handler; + + sna->WakeupHandler = screen->WakeupHandler; + screen->WakeupHandler = sna_wakeup_handler; ++#else ++ RegisterBlockAndWakeupHandlers(sna_block_handler, ++ (ServerWakeupHandlerProcPtr)NoopDDA, ++ sna); ++#endif + + screen->SaveScreen = sna_save_screen; + screen->CreateScreenResources = sna_create_screen_resources; diff --git a/x11/xf86-video-intel/patches/patch-src_uxa_intel.h b/x11/xf86-video-intel/patches/patch-src_uxa_intel.h new file mode 100644 index 00000000000..ebaaf4b0e70 --- /dev/null +++ b/x11/xf86-video-intel/patches/patch-src_uxa_intel.h @@ -0,0 +1,17 @@ +$NetBSD: patch-src_uxa_intel.h,v 1.1 2016/12/07 21:59:54 wiz Exp $ + +Upstream patches for xorg-server-1.19. + +--- src/uxa/intel.h.orig 2014-12-09 20:41:25.000000000 +0000 ++++ src/uxa/intel.h +@@ -196,7 +196,10 @@ typedef struct intel_screen_private { + + int colorKey; + XF86VideoAdaptorPtr adaptor; ++ ++#if !HAVE_NOTIFY_FD + ScreenBlockHandlerProcPtr BlockHandler; ++#endif + Bool overlayOn; + + struct { diff --git a/x11/xf86-video-intel/patches/patch-src_uxa_intel__display.c b/x11/xf86-video-intel/patches/patch-src_uxa_intel__display.c new file mode 100644 index 00000000000..111eafa090c --- /dev/null +++ b/x11/xf86-video-intel/patches/patch-src_uxa_intel__display.c @@ -0,0 +1,55 @@ +$NetBSD: patch-src_uxa_intel__display.c,v 1.1 2016/12/07 21:59:54 wiz Exp $ + +Upstream patches for xorg-server-1.19. + +--- src/uxa/intel_display.c.orig 2014-12-09 20:43:16.000000000 +0000 ++++ src/uxa/intel_display.c +@@ -2072,6 +2072,7 @@ intel_pageflip_abort(ScrnInfoPtr scrn, x + /* + * Check for pending DRM events and process them. + */ ++#if !HAVE_NOTIFY_FD + static void + drm_wakeup_handler(pointer data, int err, pointer p) + { +@@ -2086,6 +2087,14 @@ drm_wakeup_handler(pointer data, int err + if (FD_ISSET(mode->fd, read_mask)) + drmHandleEvent(mode->fd, &mode->event_context); + } ++#else ++static void ++drm_notify_fd(int fd, int ready, void *data) ++{ ++ struct intel_mode *mode = data; ++ drmHandleEvent(mode->fd, &mode->event_context); ++} ++#endif + + /* + * If there are any available, read drm_events +@@ -2250,9 +2259,11 @@ intel_mode_init(struct intel_screen_priv + * registration within ScreenInit and not PreInit. + */ + mode->flip_count = 0; +- AddGeneralSocket(mode->fd); ++ SetNotifyFd(mode->fd, drm_notify_fd, X_NOTIFY_READ, mode); ++#if !HAVE_NOTIFY_FD + RegisterBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA, + drm_wakeup_handler, mode); ++#endif + } + + void +@@ -2276,9 +2287,11 @@ intel_mode_close(intel_screen_private *i + + intel_drm_abort_scrn(intel->scrn); + ++#if !HAVE_NOTIFY_FD + RemoveBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA, + drm_wakeup_handler, mode); +- RemoveGeneralSocket(mode->fd); ++#endif ++ RemoveNotifyFd(mode->fd); + } + + void diff --git a/x11/xf86-video-intel/patches/patch-src_uxa_intel__driver.c b/x11/xf86-video-intel/patches/patch-src_uxa_intel__driver.c index 4731c900a9c..597d1bf7a62 100644 --- a/x11/xf86-video-intel/patches/patch-src_uxa_intel__driver.c +++ b/x11/xf86-video-intel/patches/patch-src_uxa_intel__driver.c @@ -1,6 +1,6 @@ -$NetBSD: patch-src_uxa_intel__driver.c,v 1.1 2016/01/05 13:05:37 tnn Exp $ +$NetBSD: patch-src_uxa_intel__driver.c,v 1.2 2016/12/07 21:59:54 wiz Exp $ -fix build with xorg-server-1.18 +Upstream patches for xorg-server-1.19. --- src/uxa/intel_driver.c.orig 2014-12-09 20:43:22.000000000 +0000 +++ src/uxa/intel_driver.c @@ -16,3 +16,61 @@ fix build with xorg-server-1.18 RegionUninit(&pixregion); intel_flush(intel); +@@ -659,8 +663,9 @@ redisplay_dirty(ScreenPtr screen, Pixmap + } + + static void +-intel_dirty_update(ScreenPtr screen) ++intel_dirty_update(intel_screen_private *intel) + { ++ ScreenPtr screen = xf86ScrnToScreen(intel->scrn); + RegionPtr region; + PixmapDirtyUpdatePtr ent; + +@@ -677,6 +682,7 @@ intel_dirty_update(ScreenPtr screen) + } + #endif + ++#if !HAVE_NOTIFY_FD + static void + I830BlockHandler(BLOCKHANDLER_ARGS_DECL) + { +@@ -694,9 +700,22 @@ I830BlockHandler(BLOCKHANDLER_ARGS_DECL) + intel_uxa_block_handler(intel); + intel_video_block_handler(intel); + #ifdef INTEL_PIXMAP_SHARING +- intel_dirty_update(screen); ++ intel_dirty_update(intel); + #endif + } ++#else ++static void ++I830BlockHandler(void *data, void *timeout) ++{ ++ intel_screen_private *intel = data; ++ ++ intel_uxa_block_handler(intel); ++ intel_video_block_handler(intel); ++#ifdef INTEL_PIXMAP_SHARING ++ intel_dirty_update(intel); ++#endif ++} ++#endif + + static Bool + intel_init_initial_framebuffer(ScrnInfoPtr scrn) +@@ -939,8 +958,14 @@ I830ScreenInit(SCREEN_INIT_ARGS_DECL) + "Hardware cursor initialization failed\n"); + } + ++#if !HAVE_NOTIFY_FD + intel->BlockHandler = screen->BlockHandler; + screen->BlockHandler = I830BlockHandler; ++#else ++ RegisterBlockAndWakeupHandlers(I830BlockHandler, ++ (ServerWakeupHandlerProcPtr)NoopDDA, ++ intel); ++#endif + + #ifdef INTEL_PIXMAP_SHARING + screen->StartPixmapTracking = PixmapStartDirtyTracking; |