xf86-video-intel: update to the latest git snapshot.

The released version is quite old and doesn't run properly on new devices.
Some logic from similar packages in wip.
This commit is contained in:
maya 2020-07-31 14:41:37 +00:00
parent a89df354d9
commit f3f5387186
15 changed files with 23 additions and 546 deletions

View file

@ -1,9 +1,11 @@
# $NetBSD: Makefile,v 1.43 2020/06/28 13:54:09 nia Exp $
# $NetBSD: Makefile,v 1.44 2020/07/31 14:41:37 maya Exp $
DISTNAME= xf86-video-intel-2.99.917
PKGREVISION= 7
PKGNAME= xf86-video-intel-2.99.917.20200515
COMMIT_ID= 5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc
DISTNAME= xf86-video-intel-${COMMIT_ID}
CATEGORIES= x11
MASTER_SITES= ${MASTER_SITE_XORG:=driver/}
#MASTER_SITES= ${MASTER_SITE_XORG:=driver/}
MASTER_SITES= https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/-/archive/${COMMIT_ID}/
EXTRACT_SUFX= .tar.bz2
MAINTAINER= joerg@NetBSD.org
@ -13,11 +15,12 @@ COMMENT= Modular Xorg Intel video driver
CONFLICTS+= xf86-video-i810-[0-9]*
CONFIGURE_ARGS+= --enable-dri
CONFIGURE_ARGS+= --disable-dri1
CONFIGURE_ARGS+= --enable-dri2
CONFIGURE_ARGS+= --enable-dri3
GNU_CONFIGURE= YES
USE_LIBTOOL= YES
USE_TOOLS+= pkg-config
USE_TOOLS+= pkg-config automake autoconf autoreconf
# Assumes platform compiler has SSE2, etc
ONLY_FOR_PLATFORM+= *-*-i386 *-*-x86_64
@ -26,9 +29,14 @@ CONFIGURE_ENV.SunOS+= DRIVER_MAN_SUFFIX=4
BUILDLINK_API_DEPENDS.libdrm+= libdrm>=2.4.7
pre-configure:
cd ${WRKSRC} && autoreconf -vif
.include "../../devel/xorg-util-macros/buildlink3.mk"
.include "../../x11/modular-xorg-server/buildlink3.mk"
.include "../../x11/libXvMC/buildlink3.mk"
.include "../../x11/libdrm/buildlink3.mk"
.include "../../x11/libXvMC/buildlink3.mk"
.include "../../x11/xcb-util/buildlink3.mk"
.include "../../x11/xorgproto/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

View file

@ -1,3 +1,5 @@
@comment $NetBSD: PLIST,v 1.4 2013/05/16 06:16:50 richard Exp $
@comment $NetBSD: PLIST,v 1.5 2020/07/31 14:41:37 maya Exp $
lib/libI810XvMC.la
lib/libIntelXvMC.la
lib/xorg/modules/drivers/intel_drv.la
man/man4/intel.4

View file

@ -1,19 +1,7 @@
$NetBSD: distinfo,v 1.29 2018/05/15 10:50:19 wiz Exp $
$NetBSD: distinfo,v 1.30 2020/07/31 14:41:37 maya 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 (xf86-video-intel-5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc.tar.bz2) = f9cb02d46b771e278a11dc88536049daf76f6ee8
RMD160 (xf86-video-intel-5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc.tar.bz2) = 40400b5860115d3c679ec849e0ba90dba74ee6ca
SHA512 (xf86-video-intel-5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc.tar.bz2) = 29fea01332438ad7616bae56a926f5c6fa08f93f67c23a0bb38f775719f12b15fba5bcb096c0665948f80d3ff6b7c108f360e44aae008192ef6c9b21187b4bbb
Size (xf86-video-intel-5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc.tar.bz2) = 1250303 bytes
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) = 233229449a469e12a928bde4e2f8196157918102
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_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) = e1800c27e1b35568254efa7bc16bf89a2e5a6fd4

View file

@ -1,25 +0,0 @@
$NetBSD: patch-src_backlight.c,v 1.2 2015/05/22 05:40:36 richard Exp $
SunOS needs <sys/mkdev.h> for major()
--- src/backlight.c.orig 2014-11-18 21:50:39.000000000 +0000
+++ src/backlight.c
@@ -49,6 +49,9 @@
#include "backlight.h"
#include "fd.h"
+#ifdef __sun
+#include <sys/mkdev.h>
+#endif
#define BACKLIGHT_CLASS "/sys/class/backlight"
@@ -84,7 +87,7 @@ void backlight_init(struct backlight *b)
b->has_power = 0;
}
-#ifdef __OpenBSD__
+#if defined(__OpenBSD__) || defined(__NetBSD__)
#include <dev/wscons/wsconsio.h>
#include <xf86Priv.h>

View file

@ -1,40 +0,0 @@
$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

View file

@ -1,88 +0,0 @@
$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;

View file

@ -1,17 +0,0 @@
$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;

View file

@ -1,60 +0,0 @@
$NetBSD: patch-src_sna_sna__accel.c,v 1.2 2018/05/15 10:50:19 wiz Exp $
Upstream patches for xorg-server-1.19 and 1.20.
--- 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)
{
@@ -16754,7 +16764,9 @@ static int sna_create_gc(GCPtr gc)
gc->freeCompClip = 0;
gc->pCompositeClip = 0;
+#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1,19,99,1,0)
gc->pRotatedPixmap = 0;
+#endif
fb_gc(gc)->bpp = bits_per_pixel(gc->depth);
@@ -17811,6 +17823,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 +17841,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 +18017,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);
}

View file

@ -1,38 +0,0 @@
$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;

View file

@ -1,16 +0,0 @@
$NetBSD: patch-src_sna_sna__display.c,v 1.1 2015/05/22 05:40:36 richard Exp $
SunOS needs <alloca.h> for alloca()
--- src/sna/sna_display.c.orig 2014-12-20 13:45:31.000000000 +0000
+++ src/sna/sna_display.c
@@ -72,6 +72,9 @@
#include <memcheck.h>
#endif
+#ifdef __sun
+#include <alloca.h>
+#endif
/* Minor discrepancy between 32-bit/64-bit ABI in old kernels */
union compat_mode_get_connector{
struct drm_mode_get_connector conn;

View file

@ -1,12 +0,0 @@
$NetBSD: patch-src_sna_sna__dri2.c,v 1.1 2015/03/03 01:02:05 khorben Exp $
--- src/sna/sna_dri2.c.orig 2014-12-20 12:46:23.000000000 +0000
+++ src/sna/sna_dri2.c
@@ -247,6 +247,7 @@ inline static void *dri2_window_get_fron
#define xorg_can_triple_buffer() 0
#define swap_limit(d, l) false
+#define mark_stale(b)
#else

View file

@ -1,77 +0,0 @@
$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;

View file

@ -1,17 +0,0 @@
$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 {

View file

@ -1,55 +0,0 @@
$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

View file

@ -1,76 +0,0 @@
$NetBSD: patch-src_uxa_intel__driver.c,v 1.3 2018/05/15 10:48:01 wiz Exp $
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
@@ -642,7 +642,11 @@ redisplay_dirty(ScreenPtr screen, Pixmap
return;
PixmapRegionInit(&pixregion, dirty->slave_dst->master_pixmap);
+#ifdef HAS_DIRTYTRACKING_ROTATION
+ PixmapSyncDirtyHelper(dirty);
+#else
PixmapSyncDirtyHelper(dirty, &pixregion);
+#endif
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;