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:
parent
a89df354d9
commit
f3f5387186
15 changed files with 23 additions and 546 deletions
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
|
@ -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
|
|
@ -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;
|
|
@ -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;
|
|
@ -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);
|
||||
}
|
|
@ -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;
|
||||
|
|
@ -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;
|
|
@ -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
|
||||
|
|
@ -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;
|
|
@ -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 {
|
|
@ -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
|
|
@ -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;
|
Loading…
Reference in a new issue