xorg-x11-drv-intel: Update to 2.21.0.
This is a major update to the latest stable version. Requires xorg-x11-server-devel >= 1.13.2 to be sure to compile for the new version of the x-server.
This commit is contained in:
parent
a64cbd4f50
commit
825f07179b
|
@ -1,12 +0,0 @@
|
|||
Index: xf86-video-intel-2.11.0/src/drmmode_display.c
|
||||
===================================================================
|
||||
--- xf86-video-intel-2.11.0/src/drmmode_display.c
|
||||
+++ xf86-video-intel-2.11.0/src/drmmode_display.c 2010-04-29 00:18:34.000000000 +0200
|
||||
@@ -103,6 +103,7 @@
|
||||
"asus-laptop",
|
||||
"eeepc",
|
||||
"thinkpad_screen",
|
||||
+ "mbp_backlight",
|
||||
"acpi_video1",
|
||||
"acpi_video0",
|
||||
"fujitsu-laptop",
|
|
@ -1,37 +0,0 @@
|
|||
diff -up xf86-video-intel-20100319/src/drmmode_display.c.jx xf86-video-intel-20100319/src/drmmode_display.c
|
||||
--- xf86-video-intel-20100319/src/drmmode_display.c.jx 2010-03-22 13:24:13.483183499 -0400
|
||||
+++ xf86-video-intel-20100319/src/drmmode_display.c 2010-03-22 13:25:59.810184060 -0400
|
||||
@@ -1452,7 +1452,7 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
|
||||
intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
struct drm_i915_getparam gp;
|
||||
drmmode_ptr drmmode;
|
||||
- unsigned int i;
|
||||
+ unsigned int i, lvds = -1;
|
||||
int has_flipping = 0;
|
||||
|
||||
drmmode = xnfalloc(sizeof *drmmode);
|
||||
@@ -1473,9 +1473,22 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
|
||||
drmmode->mode_res->max_height);
|
||||
for (i = 0; i < drmmode->mode_res->count_crtcs; i++)
|
||||
drmmode_crtc_init(scrn, drmmode, i);
|
||||
+
|
||||
+ /* do LVDS first */
|
||||
+ for (i = 0; i < drmmode->mode_res->count_connectors; i++) {
|
||||
+ drmModeConnectorPtr koutput =
|
||||
+ drmModeGetConnector(drmmode->fd,
|
||||
+ drmmode->mode_res->connectors[i]);
|
||||
+ if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS) {
|
||||
+ drmmode_output_init(scrn, drmmode, i);
|
||||
+ lvds = i;
|
||||
+ }
|
||||
+ drmModeFreeConnector(koutput);
|
||||
+ }
|
||||
|
||||
for (i = 0; i < drmmode->mode_res->count_connectors; i++)
|
||||
- drmmode_output_init(scrn, drmmode, i);
|
||||
+ if (i != lvds)
|
||||
+ drmmode_output_init(scrn, drmmode, i);
|
||||
|
||||
xf86InitialConfiguration(scrn, TRUE);
|
||||
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
diff -up xf86-video-intel-2.11.0/src/drmmode_display.c.no-flip xf86-video-intel-2.11.0/src/drmmode_display.c
|
||||
--- xf86-video-intel-2.11.0/src/drmmode_display.c.no-flip 2010-05-03 15:30:19.000000000 -0400
|
||||
+++ xf86-video-intel-2.11.0/src/drmmode_display.c 2010-05-03 15:30:59.000000000 -0400
|
||||
@@ -1504,10 +1504,15 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
|
||||
gp.value = &has_flipping;
|
||||
(void)drmCommandWriteRead(intel->drmSubFD, DRM_I915_GETPARAM, &gp,
|
||||
sizeof(gp));
|
||||
+
|
||||
+ xf86DrvMsg(scrn->scrnIndex, X_INFO,
|
||||
+ "Pageflipping %s in kernel, %s disabled in X\n",
|
||||
+ has_flipping ? "enabled" : "disabled",
|
||||
+ has_flipping ? "but" : "and");
|
||||
if (has_flipping) {
|
||||
xf86DrvMsg(scrn->scrnIndex, X_INFO,
|
||||
- "Kernel page flipping support detected, enabling\n");
|
||||
- intel->use_pageflipping = TRUE;
|
||||
+ "Don't panic: https://bugzilla.redhat.com/588421\n");
|
||||
+ intel->use_pageflipping = FALSE;
|
||||
drmmode->flip_count = 0;
|
||||
drmmode->event_context.version = DRM_EVENT_CONTEXT_VERSION;
|
||||
drmmode->event_context.vblank_handler = drmmode_vblank_handler;
|
||||
diff -up xf86-video-intel-2.11.0/src/i830_dri.c.no-flip xf86-video-intel-2.11.0/src/i830_dri.c
|
||||
--- xf86-video-intel-2.11.0/src/i830_dri.c.no-flip 2010-03-29 14:23:02.000000000 -0400
|
||||
+++ xf86-video-intel-2.11.0/src/i830_dri.c 2010-05-03 15:30:19.000000000 -0400
|
||||
@@ -1013,7 +1013,7 @@ Bool I830DRI2ScreenInit(ScreenPtr screen
|
||||
|
||||
info.CopyRegion = I830DRI2CopyRegion;
|
||||
#if DRI2INFOREC_VERSION >= 4
|
||||
- if (intel->use_pageflipping) {
|
||||
+ if (intel->use_pageflipping || 1) {
|
||||
info.version = 4;
|
||||
info.ScheduleSwap = I830DRI2ScheduleSwap;
|
||||
info.GetMSC = I830DRI2GetMSC;
|
|
@ -1,16 +0,0 @@
|
|||
diff -up xf86-video-intel-2.11.0/src/drmmode_display.c.jx xf86-video-intel-2.11.0/src/drmmode_display.c
|
||||
--- xf86-video-intel-2.11.0/src/drmmode_display.c.jx 2010-04-16 10:28:08.000000000 -0400
|
||||
+++ xf86-video-intel-2.11.0/src/drmmode_display.c 2010-04-26 15:28:58.000000000 -0400
|
||||
@@ -689,6 +689,12 @@ drmmode_output_mode_valid(xf86OutputPtr
|
||||
else
|
||||
return MODE_OK;
|
||||
}
|
||||
+
|
||||
+ /* I don't actually believe any VGA is this good */
|
||||
+ if (koutput->connector_type == DRM_MODE_CONNECTOR_VGA)
|
||||
+ if (pModes->Clock > 250000)
|
||||
+ return MODE_CLOCK_HIGH;
|
||||
+
|
||||
return MODE_OK;
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
From feff2ec80eeeba5074d19efcddf4867adf639b4f Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Mon, 5 Jul 2010 09:07:08 +1000
|
||||
Subject: [PATCH] uxa: don't compare planemask with FB_ALLONES.
|
||||
|
||||
planemask is an unsigned long initialised to ~0, on 64-bit this is not equal
|
||||
to an (unsigned int)-1.
|
||||
|
||||
Use the macro provided to do this.
|
||||
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
uxa/uxa-accel.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c
|
||||
index ded66a1..633b433 100644
|
||||
--- a/uxa/uxa-accel.c
|
||||
+++ b/uxa/uxa-accel.c
|
||||
@@ -81,7 +81,7 @@ uxa_fill_spans(DrawablePtr pDrawable, GCPtr pGC, int n,
|
||||
if (!dst_pixmap)
|
||||
goto fallback;
|
||||
|
||||
- if (pGC->alu != GXcopy || pGC->planemask != FB_ALLONES)
|
||||
+ if (pGC->alu != GXcopy || !UXA_PM_IS_SOLID(pDrawable, pGC->planemask))
|
||||
goto solid;
|
||||
|
||||
format = PictureMatchFormat(screen,
|
||||
@@ -1048,7 +1048,7 @@ uxa_fill_region_solid(DrawablePtr pDrawable,
|
||||
extents = REGION_EXTENTS(screen, pRegion);
|
||||
|
||||
/* Using GEM, the relocation costs outweigh the advantages of the blitter */
|
||||
- if (nbox == 1 || (alu != GXcopy && alu != GXclear) || planemask != FB_ALLONES) {
|
||||
+ if (nbox == 1 || (alu != GXcopy && alu != GXclear) || !UXA_PM_IS_SOLID(&pixmap->drawable, planemask)) {
|
||||
try_solid:
|
||||
if (uxa_screen->info->check_solid &&
|
||||
!uxa_screen->info->check_solid(&pixmap->drawable, alu, planemask))
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
diff -up xf86-video-intel-20090908/src/drmmode_display.c.jx xf86-video-intel-20090908/src/drmmode_display.c
|
||||
--- xf86-video-intel-20090908/src/drmmode_display.c.jx 2009-09-08 14:30:55.000000000 -0400
|
||||
+++ xf86-video-intel-20090908/src/drmmode_display.c 2009-09-08 14:31:09.000000000 -0400
|
||||
@@ -1195,8 +1195,19 @@ drmmode_output_get_property(xf86OutputPt
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+#ifdef RANDR_GET_CRTC_INTERFACE
|
||||
+static xf86CrtcPtr
|
||||
+drmmode_get_crtc(xf86OutputPtr output)
|
||||
+{
|
||||
+ return output->crtc;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static const xf86OutputFuncsRec drmmode_output_funcs = {
|
||||
.create_resources = drmmode_output_create_resources,
|
||||
+#ifdef RANDR_GET_CRTC_INTERFACE
|
||||
+ .get_crtc = drmmode_get_crtc,
|
||||
+#endif
|
||||
#ifdef RANDR_12_INTERFACE
|
||||
.set_property = drmmode_output_set_property,
|
||||
.get_property = drmmode_output_get_property,
|
|
@ -1,23 +0,0 @@
|
|||
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
|
||||
index d50e640..d6c7cd3 100644
|
||||
--- a/src/drmmode_display.c
|
||||
+++ b/src/drmmode_display.c
|
||||
@@ -412,6 +412,18 @@ drmmode_output_detect(xf86OutputPtr output)
|
||||
drmmode_output->mode_output =
|
||||
drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
|
||||
|
||||
+ switch (drmmode_output->mode_output->connector_type) {
|
||||
+ case DRM_MODE_CONNECTOR_SVIDEO:
|
||||
+ /* FIXME: KMS svideo detection is flaky an causes X to
|
||||
+ * come up in 1024x768 when it tries to pick a clone
|
||||
+ * mode that fits both the panel and the tv out. Once
|
||||
+ * KMS learns how to detect svideo better we can
|
||||
+ * remove this. */
|
||||
+ return DRM_MODE_UNKNOWNCONNECTION;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
switch (drmmode_output->mode_output->connection) {
|
||||
case DRM_MODE_CONNECTED:
|
||||
status = XF86OutputStatusConnected;
|
|
@ -1,146 +0,0 @@
|
|||
diff -up xf86-video-intel-2.12.0/src/i830_driver.c.uevent xf86-video-intel-2.12.0/src/i830_driver.c
|
||||
--- xf86-video-intel-2.12.0/src/i830_driver.c.uevent 2010-06-24 16:29:49.000000000 -0400
|
||||
+++ xf86-video-intel-2.12.0/src/i830_driver.c 2010-06-25 11:40:01.335975581 -0400
|
||||
@@ -81,6 +81,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#include "i915_drm.h"
|
||||
#include <xf86drmMode.h>
|
||||
|
||||
+#include "libudev.h"
|
||||
+
|
||||
#define BIT(x) (1 << (x))
|
||||
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||
#define NB_OF(x) (sizeof (x) / sizeof (*x))
|
||||
@@ -996,6 +998,80 @@ int i830_crtc_to_pipe(xf86CrtcPtr crtc)
|
||||
return drmmode_get_pipe_from_crtc_id(intel->bufmgr, crtc);
|
||||
}
|
||||
|
||||
+static void
|
||||
+I830HandleUEvents(int fd, void *closure)
|
||||
+{
|
||||
+ ScrnInfoPtr scrn = closure;
|
||||
+ intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
+ struct udev_device *dev;
|
||||
+
|
||||
+ dev = udev_monitor_receive_device(intel->uevent_monitor);
|
||||
+ if (!dev)
|
||||
+ return;
|
||||
+
|
||||
+ /*
|
||||
+ * technically we should inspect the event to see that it's a hotplug.
|
||||
+ * but we know it's a hotplug, we don't get events for anything else.
|
||||
+ * XXX but we should definitely trim by drm node
|
||||
+ */
|
||||
+
|
||||
+ RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE);
|
||||
+
|
||||
+ udev_device_unref(dev);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+I830UeventInit(ScrnInfoPtr scrn)
|
||||
+{
|
||||
+ intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
+ struct udev *u;
|
||||
+ struct udev_monitor *mon;
|
||||
+
|
||||
+ u = udev_new();
|
||||
+ if (!u)
|
||||
+ return;
|
||||
+
|
||||
+ mon = udev_monitor_new_from_netlink(u, "udev");
|
||||
+
|
||||
+ if (!mon) {
|
||||
+ udev_unref(u);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (udev_monitor_filter_add_match_subsystem_devtype(mon,
|
||||
+ "drm",
|
||||
+ "drm_minor") < 0 ||
|
||||
+ udev_monitor_enable_receiving(mon) < 0)
|
||||
+ {
|
||||
+ udev_monitor_unref(mon);
|
||||
+ udev_unref(u);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ intel->uevent_handler =
|
||||
+ xf86AddGeneralHandler(udev_monitor_get_fd(mon),
|
||||
+ I830HandleUEvents,
|
||||
+ scrn);
|
||||
+
|
||||
+ intel->uevent_monitor = mon;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+I830UeventFini(ScrnInfoPtr scrn)
|
||||
+{
|
||||
+ intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
+
|
||||
+ if (intel->uevent_handler)
|
||||
+ {
|
||||
+ struct udev *u = udev_monitor_get_udev(intel->uevent_monitor);
|
||||
+
|
||||
+ xf86RemoveGeneralHandler(intel->uevent_handler);
|
||||
+
|
||||
+ udev_monitor_unref(intel->uevent_monitor);
|
||||
+ udev_unref(u);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static Bool
|
||||
I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
|
||||
{
|
||||
@@ -1233,6 +1309,8 @@ I830ScreenInit(int scrnIndex, ScreenPtr
|
||||
|
||||
intel->suspended = FALSE;
|
||||
|
||||
+ I830UeventInit(scrn);
|
||||
+
|
||||
return uxa_resources_init(screen);
|
||||
}
|
||||
|
||||
@@ -1306,7 +1384,8 @@ static Bool I830CloseScreen(int scrnInde
|
||||
{
|
||||
ScrnInfoPtr scrn = xf86Screens[scrnIndex];
|
||||
intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
-
|
||||
+
|
||||
+ I830UeventFini(scrn);
|
||||
if (scrn->vtSema == TRUE) {
|
||||
I830LeaveVT(scrnIndex, 0);
|
||||
}
|
||||
diff -up xf86-video-intel-2.12.0/src/i830.h.uevent xf86-video-intel-2.12.0/src/i830.h
|
||||
--- xf86-video-intel-2.12.0/src/i830.h.uevent 2010-06-24 16:29:49.000000000 -0400
|
||||
+++ xf86-video-intel-2.12.0/src/i830.h 2010-06-25 11:39:15.665029821 -0400
|
||||
@@ -47,6 +47,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
#ifndef _I830_H_
|
||||
#define _I830_H_
|
||||
|
||||
+#include "libudev.h"
|
||||
+
|
||||
#include "xf86_OSproc.h"
|
||||
#include "compiler.h"
|
||||
#include "xf86PciInfo.h"
|
||||
@@ -432,6 +434,9 @@ typedef struct intel_screen_private {
|
||||
*/
|
||||
Bool fallback_debug;
|
||||
unsigned debug_flush;
|
||||
+
|
||||
+ struct udev_monitor *uevent_monitor;
|
||||
+ InputHandlerProc uevent_handler;
|
||||
} intel_screen_private;
|
||||
|
||||
enum {
|
||||
diff -up xf86-video-intel-2.12.0/src/Makefile.am.uevent xf86-video-intel-2.12.0/src/Makefile.am
|
||||
--- xf86-video-intel-2.12.0/src/Makefile.am.uevent 2010-06-24 16:29:37.000000000 -0400
|
||||
+++ xf86-video-intel-2.12.0/src/Makefile.am 2010-06-25 11:39:15.665029821 -0400
|
||||
@@ -32,7 +32,7 @@ AM_CFLAGS = @CWARNFLAGS@ @XORG_CFLAGS@ @
|
||||
intel_drv_la_LTLIBRARIES = intel_drv.la
|
||||
intel_drv_la_LDFLAGS = -module -avoid-version
|
||||
intel_drv_ladir = @moduledir@/drivers
|
||||
-intel_drv_la_LIBADD = -lm @DRM_LIBS@ -ldrm_intel ../uxa/libuxa.la
|
||||
+intel_drv_la_LIBADD = -ludev -lm @DRM_LIBS@ -ldrm_intel ../uxa/libuxa.la
|
||||
intel_drv_la_LIBADD += @PCIACCESS_LIBS@
|
||||
|
||||
INTEL_DRI_SRCS = \
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-intel
|
||||
version = 2.12.0
|
||||
version = 2.21.0
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,12 @@ description
|
|||
X.Org X11 intel video driver.
|
||||
end
|
||||
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
thisapp = xf86-video-intel-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
sources = xf86-video-intel-%{version}.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -30,16 +34,14 @@ build
|
|||
libXvMC-devel
|
||||
libxcb-devel
|
||||
libtool
|
||||
mesa-devel
|
||||
mesa-devel >= 9.0.2
|
||||
pkg-config
|
||||
xcb-util-devel
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-server-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xf86-video-intel-%{version}
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
|
@ -62,6 +64,10 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
requires
|
||||
dri-drivers >= 9.0.2
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-debuginfo
|
||||
|
|
Loading…
Reference in New Issue