mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-08-02 23:47:49 +00:00
xf86-video-intel: update to xf86-video-intel-201008122
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
f3e6bca1c8
commit
fc31f5ba9c
@ -1,10 +1,10 @@
|
|||||||
PKG_NAME="xf86-video-intel"
|
PKG_NAME="xf86-video-intel"
|
||||||
PKG_VERSION="2.12.0"
|
PKG_VERSION="20100812"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="i386 x86_64"
|
PKG_ARCH="i386 x86_64"
|
||||||
PKG_LICENSE="OSS"
|
PKG_LICENSE="OSS"
|
||||||
PKG_SITE="http://intellinuxgraphics.org/"
|
PKG_SITE="http://intellinuxgraphics.org/"
|
||||||
PKG_URL="http://xorg.freedesktop.org/archive/individual/driver/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
PKG_URL="http://sources.openelec.tv/svn/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||||
PKG_DEPENDS="udev"
|
PKG_DEPENDS="udev"
|
||||||
PKG_BUILD_DEPENDS="toolchain util-macros fontsproto udev xorg-server"
|
PKG_BUILD_DEPENDS="toolchain util-macros fontsproto udev xorg-server"
|
||||||
PKG_PRIORITY="optional"
|
PKG_PRIORITY="optional"
|
||||||
|
@ -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,36 +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;
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
diff -Naur xf86-video-intel-20100812/src/intel_display.c xf86-video-intel-20100812.patch/src/intel_display.c
|
||||||
|
--- xf86-video-intel-20100812/src/intel_display.c 2010-08-09 11:13:58.000000000 +0200
|
||||||
|
+++ xf86-video-intel-20100812.patch/src/intel_display.c 2010-08-12 23:30:18.091210425 +0200
|
||||||
|
@@ -1511,10 +1511,14 @@
|
||||||
|
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;
|
||||||
|
mode->flip_count = 0;
|
||||||
|
mode->event_context.version = DRM_EVENT_CONTEXT_VERSION;
|
||||||
|
mode->event_context.vblank_handler = intel_vblank_handler;
|
||||||
|
diff -Naur xf86-video-intel-20100812/src/intel_dri.c xf86-video-intel-20100812.patch/src/intel_dri.c
|
||||||
|
--- xf86-video-intel-20100812/src/intel_dri.c 2010-08-09 11:13:58.000000000 +0200
|
||||||
|
+++ xf86-video-intel-20100812.patch/src/intel_dri.c 2010-08-12 23:31:53.708336093 +0200
|
||||||
|
@@ -1056,7 +1056,7 @@
|
||||||
|
|
||||||
|
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,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,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 = \
|
|
Loading…
x
Reference in New Issue
Block a user