xorg-server: Changes to 'ubuntu+1'
debian/changelog | 6 +
debian/patches/drm_device_keep_trying.patch | 132 ++++++++++----------------
debian/patches/ppc64el-endian-fix.patch | 34 ++++++
debian/patches/rrcrtc-brackets-are-hard.patch | 39 -------
debian/patches/series | 3
debian/patches/xi-dont-copy-too-much.patch | 67 -------------
6 files changed, 92 insertions(+), 189 deletions(-)
New commits:
commit aae62b119a9a035c586110a5438f8dd492a7e71c
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Tue Jun 24 15:37:44 2014 +0200
refresh and drop patches for 1.16
Still need updating:
- xmir.patch (rewrite on top of glamor?)
- 190_cache-xkbcomp_output_for_fast_start_up.patch
diff --git a/debian/patches/drm_device_keep_trying.patch b/debian/patches/drm_device_keep_trying.patch
index 8a8f920..ea36cf9 100644
--- a/debian/patches/drm_device_keep_trying.patch
+++ b/debian/patches/drm_device_keep_trying.patch
@@ -21,19 +21,20 @@ Signed-off-by: Bryce Harrington <bryce@canonical.com>
--- a/config/udev.c
+++ b/config/udev.c
-@@ -98,7 +98,7 @@
- if (strncmp(sysname, "card", 4) != 0)
+@@ -116,7 +116,7 @@
+ if (xf86_find_platform_device_by_devnum(major(devnum), minor(devnum)))
return;
- LogMessage(X_INFO, "config/udev: Adding drm device (%s)\n", path);
+ LogMessage(X_INFO, "config/udev: Adding drm device (%s) %s %s\n", path, sysname, syspath);
- config_udev_odev_setup_attribs(path, syspath, NewGPUDeviceRequest);
- return;
-@@ -430,11 +430,23 @@
+ config_udev_odev_setup_attribs(path, syspath, major(devnum),
+ minor(devnum), NewGPUDeviceRequest);
+@@ -456,6 +456,17 @@
+
#ifdef CONFIG_UDEV_KMS
- static Bool
++static Bool
+get_pci_busid(const char *in, char *pci_str)
+{
+ int ret, domain, bus, dev, func;
@@ -44,27 +45,20 @@ Signed-off-by: Bryce Harrington <bryce@canonical.com>
+ return TRUE;
+}
+
-+static Bool
+ static void
config_udev_odev_setup_attribs(const char *path, const char *syspath,
- config_odev_probe_proc_ptr probe_callback)
- {
- struct OdevAttributes *attribs = config_odev_allocate_attribute_list();
- int ret;
-+ const char *platform;
-
- if (!attribs)
- return FALSE;
-@@ -447,6 +459,33 @@
- if (ret == FALSE)
- goto fail;
+ int major, int minor,
+@@ -468,6 +479,31 @@
+ config_odev_add_int_attribute(attribs, ODEV_ATTRIB_MAJOR, major);
+ config_odev_add_int_attribute(attribs, ODEV_ATTRIB_MINOR, minor);
+ if (strstr(syspath, "/devices/pci")) {
+ char pci_str[17];
+ const char *end = strstr(syspath, "/drm/card");
+ if (strstr(syspath, "/usb"))
-+ ret = config_odev_add_attribute(attribs, ODEV_ATTRIB_BUSID, "");
++ config_odev_add_attribute(attribs, ODEV_ATTRIB_BUSID, "");
+ else if (get_pci_busid(end - 13, pci_str))
-+ ret = config_odev_add_attribute(attribs, ODEV_ATTRIB_BUSID, pci_str);
++ config_odev_add_attribute(attribs, ODEV_ATTRIB_BUSID, pci_str);
+ } else if ((platform = strstr(syspath, "/devices/platform/"))) {
+ /* OMAP relies on this, modesetting doesn't use it */
+ const char *end;
@@ -72,40 +66,37 @@ Signed-off-by: Bryce Harrington <bryce@canonical.com>
+ end = strchr(platform, '.');
+ if (end) {
+ char *busid;
++ int ret;
++
+ ret = asprintf(&busid, "platform:%.*s:%02li",
+ (int)(end - platform), platform, strtol(end + 1, NULL, 10));
+ if (ret >= 0) {
-+ ret = config_odev_add_attribute(attribs, ODEV_ATTRIB_BUSID, busid);
++ config_odev_add_attribute(attribs, ODEV_ATTRIB_BUSID, busid);
+ free(busid);
+ }
-+ else
-+ ret = TRUE;
+ }
+ }
-+ if (ret == FALSE)
-+ goto fail;
+
/* ownership of attribs is passed to probe layer */
probe_callback(attribs);
- return TRUE;
+ }
--- a/hw/xfree86/os-support/linux/lnx_platform.c
+++ b/hw/xfree86/os-support/linux/lnx_platform.c
-@@ -19,44 +19,6 @@
-
- #include "hotplug.h"
-
--static Bool
--get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index)
--{
+@@ -23,10 +23,7 @@
+ static Bool
+ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index)
+ {
- drmSetVersion sv;
- char *buf;
-- int fd;
+ int major, minor, fd;
- int err = 0;
--
-- fd = open(path, O_RDWR, O_CLOEXEC);
-- if (fd == -1)
-- return FALSE;
--
+ Bool paused, server_fd = FALSE;
+
+ major = config_odev_get_int_attribute(attribs, ODEV_ATTRIB_MAJOR, 0);
+@@ -50,17 +47,6 @@
+ if (fd == -1)
+ return FALSE;
+
- sv.drm_di_major = 1;
- sv.drm_di_minor = 4;
- sv.drm_dd_major = -1; /* Don't care */
@@ -117,56 +108,35 @@ Signed-off-by: Bryce Harrington <bryce@canonical.com>
- goto out;
- }
-
-- /* for a delayed probe we've already added the device */
-- if (delayed_index == -1) {
-- xf86_add_platform_device(attribs);
-- delayed_index = xf86_num_platform_devices - 1;
-- }
--
+ /* for a delayed probe we've already added the device */
+ if (delayed_index == -1) {
+ xf86_add_platform_device(attribs, FALSE);
+@@ -70,14 +56,9 @@
+ if (server_fd)
+ xf86_platform_devices[delayed_index].flags |= XF86_PDEV_SERVER_FD;
+
- buf = drmGetBusid(fd);
- xf86_add_platform_device_attrib(delayed_index,
- ODEV_ATTRIB_BUSID, buf);
- drmFreeBusid(buf);
-out:
-- close(fd);
+ if (!server_fd)
+ close(fd);
- return (err == 0);
--}
--
++ return TRUE;
+ }
+
Bool
- xf86PlatformDeviceCheckBusID(struct xf86_platform_device *device, const char *busid)
- {
-@@ -105,11 +67,6 @@
- char *dpath;
- dpath = xf86_get_platform_attrib(index, ODEV_ATTRIB_PATH);
+@@ -157,8 +138,11 @@
+ break;
+ }
-- ret = get_drm_info(attribs, dpath, index);
-- if (ret == FALSE) {
-- xf86_remove_platform_device(index);
-- return;
-- }
- ret = xf86platformAddDevice(index);
- if (ret == -1)
- xf86_remove_platform_device(index);
-@@ -145,18 +102,10 @@
+- if (i != xf86_num_platform_devices)
++ if (i != xf86_num_platform_devices) {
++ LogMessage(X_INFO, "config/udev: Ignoring already known drm device (%s)\n",
++ path);
+ goto out_free;
++ }
LogMessage(X_INFO, "xfree86: Adding drm device (%s)\n", path);
-- if (!xf86VTOwner()) {
-- /* if we don't currently own the VT then don't probe the device,
-- just mark it as unowned for later use */
-- attribs->unowned = TRUE;
-- xf86_add_platform_device(attribs);
-- return;
-- }
--
-- ret = get_drm_info(attribs, path, -1);
-- if (ret == FALSE)
-- goto out_free;
--
-+ /* if we don't currently own the VT then don't probe the device,
-+ just mark it as unowned for later use */
-+ attribs->unowned = !xf86VTOwner();
-+ xf86_add_platform_device(attribs);
- return;
-
- out_free:
diff --git a/debian/patches/rrcrtc-brackets-are-hard.patch b/debian/patches/rrcrtc-brackets-are-hard.patch
deleted file mode 100644
index c5d8ec8..0000000
--- a/debian/patches/rrcrtc-brackets-are-hard.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From dd0c31d6b7559bb0dda6283a5d345d537f1d6b42 Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied@gmail.com>
-Date: Tue, 30 Jul 2013 13:17:45 +1000
-Subject: [PATCH] rrcrtc: brackets are hard, lets go shopping.
-
-Slaving two outputs on a secondary GPU to a primary GPU testing
-picked this up, in that we'd try to resize to the totally the
-wrong thing, then as usual segfault in the rotation code.
-
-Signed-off-by: Dave Airlie <airlied@redhat.com>
----
- randr/rrcrtc.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-Index: xorg-server/randr/rrcrtc.c
-===================================================================
---- xorg-server.orig/randr/rrcrtc.c 2014-03-05 15:25:13.634526931 +0000
-+++ xorg-server/randr/rrcrtc.c 2014-03-05 15:25:22.938653390 +0000
-@@ -476,7 +476,7 @@
-
- xorg_list_for_each_entry(slave, &pScreen->output_slave_list, output_head) {
- rrScrPrivPtr slave_priv = rrGetScrPriv(slave);
-- for (c = 0; c < slave_priv->numCrtcs; c++)
-+ for (c = 0; c < slave_priv->numCrtcs; c++) {
- if (slave_priv->crtcs[c] == rr_crtc) {
- newbox.x1 = x;
- newbox.x2 = x + w;
-@@ -491,8 +491,9 @@
- newbox.y1 = slave_priv->crtcs[c]->y;
- newbox.y2 = slave_priv->crtcs[c]->y + slave_priv->crtcs[c]->mode->mode.height;
- }
-- RegionInit(&new_crtc_region, &newbox, 1);
-- RegionUnion(&total_region, &total_region, &new_crtc_region);
-+ RegionInit(&new_crtc_region, &newbox, 1);
-+ RegionUnion(&total_region, &total_region, &new_crtc_region);
-+ }
- }
-
- newsize = RegionExtents(&total_region);
diff --git a/debian/patches/series b/debian/patches/series
index 9fa55f1..5e74491 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -42,7 +42,6 @@ no-nv.patch
xf86-fixup-detection.patch
xf86-inactive-gpuscreen.patch
xrandr-rroutputchanged-main.patch
-rrcrtc-brackets-are-hard.patch
config-add-no-removal.patch
xf86-ignore-conflicting-rr-caps.patch
fix-detach-gpu.patch
@@ -53,6 +52,5 @@ fix-ftbfs-ppc64el.patch
xmir.patch
drm_device_keep_trying.patch
xi2-resize-touch.patch
-xi-dont-copy-too-much.patch
mi-dont-process-disabled.patch
ppc64el-endian-fix.patch
diff --git a/debian/patches/xi-dont-copy-too-much.patch b/debian/patches/xi-dont-copy-too-much.patch
deleted file mode 100644
index 117f7f4..0000000
--- a/debian/patches/xi-dont-copy-too-much.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-commit 56929f41e6c4cc1b2d72a33d14b4d993e7b613a3
-Author: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Tue Apr 29 16:52:01 2014 +1000
-
- Xi: don't copy a DeviceEvent into an InternalEvent
-
- ==26141== Invalid read of size 8
- ==26141== at 0x58FAEA: DeliverEmulatedMotionEvent (exevents.c:1484)
-
- An InternalEvent is bigger than a DeviceEvent, thus copying one to the other
- reads past the allocated boundary. Shouldn't have any real effect since we
- shouldn't access anything past the DeviceEvent boundary if the event type is
- correct.
-
- Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-
-diff --git a/Xi/exevents.c b/Xi/exevents.c
-index 9c207eb..02530bd 100644
---- a/Xi/exevents.c
-+++ b/Xi/exevents.c
-@@ -1469,7 +1469,7 @@ static void
- DeliverEmulatedMotionEvent(DeviceIntPtr dev, TouchPointInfoPtr ti,
- InternalEvent *ev)
- {
-- InternalEvent motion;
-+ DeviceEvent motion;
-
- if (ti->num_listeners) {
- ClientPtr client;
-@@ -1481,11 +1481,11 @@ DeliverEmulatedMotionEvent(DeviceIntPtr dev, TouchPointInfoPtr ti,
- ti->listeners[0].type != LISTENER_POINTER_GRAB)
- return;
-
-- motion = *ev;
-- motion.any.type = ET_TouchUpdate;
-- motion.device_event.detail.button = 0;
-+ motion = ev->device_event;
-+ motion.type = ET_TouchUpdate;
-+ motion.detail.button = 0;
-
-- if (!RetrieveTouchDeliveryData(dev, ti, &motion,
-+ if (!RetrieveTouchDeliveryData(dev, ti, (InternalEvent*)&motion,
- &ti->listeners[0], &client, &win, &grab,
- &mask))
- return;
-@@ -1500,18 +1500,18 @@ DeliverEmulatedMotionEvent(DeviceIntPtr dev, TouchPointInfoPtr ti,
- }
- }
-
-- DeliverTouchEmulatedEvent(dev, ti, &motion, &ti->listeners[0], client,
-+ DeliverTouchEmulatedEvent(dev, ti, (InternalEvent*)&motion, &ti->listeners[0], client,
- win, grab, mask);
- }
- else {
- InternalEvent button;
- int converted;
-
-- converted = TouchConvertToPointerEvent(ev, &motion, &button);
-+ converted = TouchConvertToPointerEvent(ev, (InternalEvent*)&motion, &button);
-
- BUG_WARN(converted == 0);
- if (converted)
-- ProcessOtherEvent(&motion, dev);
-+ ProcessOtherEvent((InternalEvent*)&motion, dev);
- }
- }
-
commit 201424bd607c84c106635d71dbef18d69c41454e
Author: Adam Conrad <adconrad@ubuntu.com>
Date: Mon Jun 23 23:47:15 2014 -0600
Fix PPC endian assumptions (LP: #1333422)
diff --git a/debian/changelog b/debian/changelog
index 126f08d..d29c7a7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.15.1-0ubuntu6) utopic; urgency=medium
+
+ * ppc64el-endian-fix.patch: Fix PPC endian assumptions (LP: #1333422)
+
+ -- Adam Conrad <adconrad@ubuntu.com> Mon, 23 Jun 2014 23:47:15 -0600
+
xorg-server (2:1.15.1-0ubuntu5) utopic; urgency=low
* Add upstream patch to fix some valgrind issues.
diff --git a/debian/patches/ppc64el-endian-fix.patch b/debian/patches/ppc64el-endian-fix.patch
new file mode 100644
index 0000000..6950b27
--- /dev/null
+++ b/debian/patches/ppc64el-endian-fix.patch
@@ -0,0 +1,34 @@
+From adb7bc3386559dfee34b359dadcbb6796bc416e7 Mon Sep 17 00:00:00 2001
+From: Dinar Valeev <dvaleev@suse.com>
+Date: Mon, 24 Feb 2014 10:36:54 +0000
+Subject: arch: Fix image and bitmap byte order for ppc64le
+
+So far PPC was big endian for sure. For ppc64le this is no longer
+true.
+
+Signed-off-by: Egbert Eich <eich@freedesktop.org>
+Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+---
+diff --git a/include/servermd.h b/include/servermd.h
+index 081123b..e413314 100644
+--- a/include/servermd.h
++++ b/include/servermd.h
+@@ -114,8 +114,13 @@ SOFTWARE.
+
+ #if defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__)
+
+-#define IMAGE_BYTE_ORDER MSBFirst
+-#define BITMAP_BIT_ORDER MSBFirst
++#if defined(__LITTLE_ENDIAN__)
++#define IMAGE_BYTE_ORDER LSBFirst
++#define BITMAP_BIT_ORDER LSBFirst
++#else
++#define IMAGE_BYTE_ORDER MSBFirst
++#define BITMAP_BIT_ORDER MSBFirst
++#endif
+ #define GLYPHPADBYTES 4
+
+ #endif /* PowerPC */
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/debian/patches/series b/debian/patches/series
index 8266f07..9fa55f1 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -55,3 +55,4 @@ drm_device_keep_trying.patch
xi2-resize-touch.patch
xi-dont-copy-too-much.patch
mi-dont-process-disabled.patch
+ppc64el-endian-fix.patch
Reply to: