Update to 1.15.99.904
This commit is contained in:
parent
3f526f4094
commit
ce1052ae89
@ -1,35 +0,0 @@
|
||||
From 7103563676f5970e14da38923a15641fc1877328 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 2 Jul 2014 17:19:30 +0200
|
||||
Subject: [PATCH] fb: Fix xvfb crash in fbCloseScreen on client disconnect
|
||||
|
||||
Fix xvfb crash on client disconnect:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1113128
|
||||
caused by:
|
||||
http://patchwork.freedesktop.org/patch/24757/
|
||||
|
||||
The discussion there has some ideas for a better / cleaner fix, but for now
|
||||
lets gets this fixed before the 1.16 release with this simple fix.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
fb/fbscreen.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/fb/fbscreen.c b/fb/fbscreen.c
|
||||
index 1f91089..0d4d87f 100644
|
||||
--- a/fb/fbscreen.c
|
||||
+++ b/fb/fbscreen.c
|
||||
@@ -37,7 +37,8 @@ fbCloseScreen(ScreenPtr pScreen)
|
||||
free(depths[d].vids);
|
||||
free(depths);
|
||||
free(pScreen->visuals);
|
||||
- FreePixmap((PixmapPtr)pScreen->devPrivate);
|
||||
+ if (pScreen->devPrivate)
|
||||
+ FreePixmap((PixmapPtr)pScreen->devPrivate);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
--
|
||||
2.0.0
|
||||
|
@ -22,7 +22,7 @@ diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index b966e50..a4aeecd 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -326,25 +326,21 @@ xwl_screen_post_damage(struct xwl_screen *xwl_screen)
|
||||
@@ -326,31 +326,27 @@ xwl_screen_post_damage(struct xwl_screen *xwl_screen)
|
||||
struct xwl_window *xwl_window;
|
||||
RegionPtr region;
|
||||
BoxPtr box;
|
||||
@ -37,7 +37,13 @@ index b966e50..a4aeecd 100644
|
||||
-
|
||||
pixmap = (*xwl_screen->screen->GetWindowPixmap) (xwl_window->window);
|
||||
|
||||
buffer = xwl_shm_pixmap_get_wl_buffer(pixmap);
|
||||
#if GLAMOR_HAS_GBM
|
||||
if (xwl_screen->glamor)
|
||||
buffer = xwl_glamor_pixmap_get_wl_buffer(pixmap);
|
||||
#endif
|
||||
if (!xwl_screen->glamor)
|
||||
buffer = xwl_shm_pixmap_get_wl_buffer(pixmap);
|
||||
|
||||
wl_surface_attach(xwl_window->surface, buffer, 0, 0);
|
||||
- for (i = 0; i < count; i++) {
|
||||
- box = &RegionRects(region)[i];
|
||||
|
133
0002-Revert-dix-fix-up-coordinate-scaling-when-external-m.patch
Normal file
133
0002-Revert-dix-fix-up-coordinate-scaling-when-external-m.patch
Normal file
@ -0,0 +1,133 @@
|
||||
From 5a16e22115ad88bf9abe91c43c203385e2ea41bb Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 8 Jul 2014 11:10:39 +0200
|
||||
Subject: [PATCH 2/2] Revert "dix: fix up coordinate scaling when external
|
||||
monitors are present"
|
||||
|
||||
This reverts commit d90b5f83010248be65b2039b0b2d0b9e6a4e93cf.
|
||||
---
|
||||
dix/getevents.c | 80 +++++++++++++++------------------------------------------
|
||||
1 file changed, 20 insertions(+), 60 deletions(-)
|
||||
|
||||
diff --git a/dix/getevents.c b/dix/getevents.c
|
||||
index d68fa96..ffa89fa 100644
|
||||
--- a/dix/getevents.c
|
||||
+++ b/dix/getevents.c
|
||||
@@ -770,65 +770,27 @@ add_to_scroll_valuator(DeviceIntPtr dev, ValuatorMask *mask, int valuator, doubl
|
||||
}
|
||||
|
||||
|
||||
-/* FIXME: relative events from devices with absolute axis ranges is
|
||||
- fundamentally broken. We map the device coordinate range into the screen
|
||||
- range, but don't really account for device resolution in that.
|
||||
-
|
||||
- what we do here is a hack to make touchpads usable. for a given relative
|
||||
- motion vector in device coordinates:
|
||||
- 1. calculate physical movement on the device in metres
|
||||
- 2. calculate pixel vector that is the same physical movement on the
|
||||
- screen (times some magic number to provide sensible base speed)
|
||||
- 3. calculate what percentage this vector is of the current screen
|
||||
- width/height
|
||||
- 4. calculate equivalent vector in % on the device's min/max axis range
|
||||
- 5. Use that device vector as the actual motion vector
|
||||
-
|
||||
- e.g. 10/50mm on the device, 10/50mm on the screen are 30/100 pixels,
|
||||
- 30/100 pixels are 1/3% of the width, 1/3% of the device is a vector of
|
||||
- 20/80 -> use 20/80 as dx/dy.
|
||||
-
|
||||
- dx/dy is then applied to the current position in device coordinates,
|
||||
- mapped to screen coordinates and thus the movement on the screen reflects
|
||||
- the motion direction on the device.
|
||||
- */
|
||||
static void
|
||||
scale_for_device_resolution(DeviceIntPtr dev, ValuatorMask *mask)
|
||||
{
|
||||
- double x, y;
|
||||
+ double y;
|
||||
ValuatorClassPtr v = dev->valuator;
|
||||
int xrange = v->axes[0].max_value - v->axes[0].min_value + 1;
|
||||
int yrange = v->axes[1].max_value - v->axes[1].min_value + 1;
|
||||
|
||||
- /* Assume 100 units/m for devices without resolution */
|
||||
- int xres = 100000, yres = 100000;
|
||||
-
|
||||
- /* If we have multiple screens with different dpi, it gets complicated:
|
||||
- we have to map which screen we're on and then take the dpi of that
|
||||
- screen to be somewhat accurate. */
|
||||
- const ScreenPtr s = screenInfo.screens[0];
|
||||
- const double screen_res = 1000.0 * s->width/s->mmWidth; /* units/m */
|
||||
+ double screen_ratio = 1.0 * screenInfo.width/screenInfo.height;
|
||||
+ double device_ratio = 1.0 * xrange/yrange;
|
||||
+ double resolution_ratio = 1.0;
|
||||
+ double ratio;
|
||||
|
||||
- /* some magic multiplier, so unaccelerated movement of x mm on the
|
||||
- device reflects x * magic mm on the screen */
|
||||
- const double magic = 4;
|
||||
+ if (!valuator_mask_fetch_double(mask, 1, &y))
|
||||
+ return;
|
||||
|
||||
- if (v->axes[0].resolution != 0 && v->axes[1].resolution != 0) {
|
||||
- xres = v->axes[0].resolution;
|
||||
- yres = v->axes[1].resolution;
|
||||
- }
|
||||
+ if (v->axes[0].resolution != 0 && v->axes[1].resolution != 0)
|
||||
+ resolution_ratio = 1.0 * v->axes[0].resolution/v->axes[1].resolution;
|
||||
|
||||
- if (valuator_mask_isset(mask, 0)) {
|
||||
- x = valuator_mask_get_double(mask, 0);
|
||||
- x = magic * x/xres * screen_res/screenInfo.width * xrange;
|
||||
- valuator_mask_set_double(mask, 0, x);
|
||||
- }
|
||||
-
|
||||
- if (valuator_mask_isset(mask, 1)) {
|
||||
- y = valuator_mask_get_double(mask, 1);
|
||||
- y = magic * y/yres * screen_res/screenInfo.height * yrange;
|
||||
- valuator_mask_set_double(mask, 1, y);
|
||||
- }
|
||||
+ ratio = device_ratio/resolution_ratio/screen_ratio;
|
||||
+ valuator_mask_set_double(mask, 1, y / ratio);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -842,6 +804,15 @@ moveRelative(DeviceIntPtr dev, int flags, ValuatorMask *mask)
|
||||
{
|
||||
int i;
|
||||
Bool clip_xy = IsMaster(dev) || !IsFloating(dev);
|
||||
+ ValuatorClassPtr v = dev->valuator;
|
||||
+
|
||||
+ /* for abs devices in relative mode, we've just scaled wrong, since we
|
||||
+ mapped the device's shape into the screen shape. Undo this. */
|
||||
+ if ((flags & POINTER_ABSOLUTE) == 0 && v && v->numAxes > 1 &&
|
||||
+ v->axes[0].min_value < v->axes[0].max_value &&
|
||||
+ v->axes[1].min_value < v->axes[1].max_value) {
|
||||
+ scale_for_device_resolution(dev, mask);
|
||||
+ }
|
||||
|
||||
/* calc other axes, clip, drop back into valuators */
|
||||
for (i = 0; i < valuator_mask_size(mask); i++) {
|
||||
@@ -1470,21 +1441,10 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
|
||||
set_raw_valuators(raw, &mask, raw->valuators.data);
|
||||
}
|
||||
else {
|
||||
- ValuatorClassPtr v = pDev->valuator;
|
||||
-
|
||||
transformRelative(pDev, &mask);
|
||||
|
||||
- /* for abs devices in relative mode, we've just scaled wrong, since we
|
||||
- mapped the device's shape into the screen shape. Undo this. */
|
||||
- if (v && v->numAxes > 1 &&
|
||||
- v->axes[0].min_value < v->axes[0].max_value &&
|
||||
- v->axes[1].min_value < v->axes[1].max_value) {
|
||||
- scale_for_device_resolution(pDev, &mask);
|
||||
- }
|
||||
-
|
||||
if (flags & POINTER_ACCELERATE)
|
||||
accelPointer(pDev, &mask, ms);
|
||||
-
|
||||
if ((flags & POINTER_NORAW) == 0 && raw)
|
||||
set_raw_valuators(raw, &mask, raw->valuators.data);
|
||||
|
||||
--
|
||||
2.0.0
|
||||
|
@ -1,107 +0,0 @@
|
||||
Return-Path: <robdclark@gmail.com>
|
||||
X-Original-To: dennis@ausil.us
|
||||
Delivered-To: dennis@ausil.us
|
||||
Received: from localhost (unknown [127.0.0.1])
|
||||
by mail.ausil.us (Postfix) with ESMTP id AE53C2E021E
|
||||
for <dennis@ausil.us>; Mon, 16 Jun 2014 18:14:13 +0000 (UTC)
|
||||
X-Virus-Scanned: amavisd-new at ausil.us
|
||||
Authentication-Results: mail02.ausil.us (amavisd-new);
|
||||
dkim=pass (2048-bit key) header.d=gmail.com
|
||||
Received: from mail.ausil.us ([127.0.0.1])
|
||||
by localhost (mail02.ausil.us [127.0.0.1]) (amavisd-new, port 10024)
|
||||
with ESMTP id 2AoZpXtuwNq4 for <dennis@ausil.us>;
|
||||
Mon, 16 Jun 2014 18:13:56 +0000 (GMT)
|
||||
X-Greylist: whitelisted by SQLgrey-1.8.0
|
||||
Received: from mail-qc0-f171.google.com (mail-qc0-f171.google.com [209.85.216.171])
|
||||
(using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits))
|
||||
(No client certificate requested)
|
||||
by mail.ausil.us (Postfix) with ESMTPS id 87F032E0261
|
||||
for <dennis@ausil.us>; Mon, 16 Jun 2014 18:13:40 +0000 (GMT)
|
||||
Received: by mail-qc0-f171.google.com with SMTP id w7so8379019qcr.16
|
||||
for <dennis@ausil.us>; Mon, 16 Jun 2014 11:13:37 -0700 (PDT)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=gmail.com; s=20120113;
|
||||
h=from:to:cc:subject:date:message-id:in-reply-to:references;
|
||||
bh=jsWdJaCBC84y12XEEHC+1YnahY8ti8aoJY04XygDevU=;
|
||||
b=OjrxhPzRTZhaFHrLBWNtwov2CyZrFrBXUAAao9IAvRq28P35R+fASLX17l/DUgxHHO
|
||||
cXhMF6daP4HsYk2565CLVY1CGakRJwhSrYR5BogqOL84+M1M678i0tUbK0O79Ah2ETlx
|
||||
KIT4ANg+EB1RWqkQMGbCPaMRGpyYSerYs3qn1qn0PFj0V8O1vni9hMfqrNVi8EMw0WEF
|
||||
vEp2omX0DMjOq4qnqBRTcixcnQEpxU7oX/JxqlLdtqAzB6fCKwhQvREDrOFHJyfSUV8o
|
||||
CeC1cM3IYiRbgvaUz2jFzCw/cDOl2Kk6I+VXAkiGRraH7QBPzJWUT7oEXjHgSvg/en+t
|
||||
qH7Q==
|
||||
X-Received: by 10.140.107.52 with SMTP id g49mr7021793qgf.100.1402942416014;
|
||||
Mon, 16 Jun 2014 11:13:36 -0700 (PDT)
|
||||
Received: from localhost (pool-108-20-245-130.bstnma.east.verizon.net. [108.20.245.130])
|
||||
by mx.google.com with ESMTPSA id e8sm22833340qaa.12.2014.06.16.11.13.34
|
||||
for <multiple recipients>
|
||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
|
||||
Mon, 16 Jun 2014 11:13:35 -0700 (PDT)
|
||||
From: Rob Clark <robdclark@gmail.com>
|
||||
To: xorg-devel@lists.x.org
|
||||
Cc: Dennis Gilmore <dennis@ausil.us>,
|
||||
Dave Airlie <airlied@gmail.com>,
|
||||
Thierry Reding <thierry.reding@gmail.com>,
|
||||
Rob Clark <robdclark@gmail.com>
|
||||
Subject: [PATCH 2/2] add SERVER_SUPPORTS_NON_PCI_PLATFORM_DEVS
|
||||
Date: Mon, 16 Jun 2014 14:13:17 -0400
|
||||
Message-Id: <1402942397-16427-3-git-send-email-robdclark@gmail.com>
|
||||
X-Mailer: git-send-email 1.9.3
|
||||
In-Reply-To: <1402942397-16427-1-git-send-email-robdclark@gmail.com>
|
||||
References: <1402942397-16427-1-git-send-email-robdclark@gmail.com>
|
||||
|
||||
Give the DDX a way to know whether non-pci platform devices are
|
||||
completely broken or not. For xserver prior to the fix, the
|
||||
DDX should not claim a platform device in platformProbe(), as
|
||||
the server will fallback to old ->Probe(), which will fail if
|
||||
the device is already claimed. Meaning that a user could not
|
||||
make things work even with a .conf file to explicitly specify
|
||||
the driver to use.
|
||||
|
||||
Idea suggested by Hans de Goede.
|
||||
|
||||
Signed-off-by: Rob Clark <robdclark@gmail.com>
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
hw/xfree86/common/xf86Init.c | 10 +++++++++-
|
||||
hw/xfree86/common/xf86str.h | 1 +
|
||||
2 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
|
||||
index 5a45004..9b6a8b5 100644
|
||||
--- a/hw/xfree86/common/xf86Init.c
|
||||
+++ b/hw/xfree86/common/xf86Init.c
|
||||
@@ -546,10 +546,18 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
||||
if (xf86DriverList[i]->Identify != NULL)
|
||||
xf86DriverList[i]->Identify(0);
|
||||
|
||||
- if (xf86DriverList[i]->driverFunc)
|
||||
+ if (xf86DriverList[i]->driverFunc) {
|
||||
xf86DriverList[i]->driverFunc(NULL,
|
||||
GET_REQUIRED_HW_INTERFACES,
|
||||
&flags);
|
||||
+ /* also let the driver know that it is safe to
|
||||
+ * allow platformProbe() to claim the device
|
||||
+ * if it is a non-pci platform device:
|
||||
+ */
|
||||
+ xf86DriverList[i]->driverFunc(NULL,
|
||||
+ SERVER_SUPPORTS_NON_PCI_PLATFORM_DEVS,
|
||||
+ NULL);
|
||||
+ }
|
||||
|
||||
if (NEED_IO_ENABLED(flags))
|
||||
want_hw_access = TRUE;
|
||||
diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
|
||||
index a81e886..6f27f18 100644
|
||||
--- a/hw/xfree86/common/xf86str.h
|
||||
+++ b/hw/xfree86/common/xf86str.h
|
||||
@@ -258,6 +258,7 @@ typedef enum {
|
||||
RR_GET_MODE_MM,
|
||||
GET_REQUIRED_HW_INTERFACES = 10,
|
||||
SUPPORTS_SERVER_FDS = 11,
|
||||
+ SERVER_SUPPORTS_NON_PCI_PLATFORM_DEVS = 12,
|
||||
} xorgDriverFuncOp;
|
||||
|
||||
typedef Bool xorgDriverFuncProc(ScrnInfoPtr, xorgDriverFuncOp, void *);
|
||||
--
|
||||
1.9.3
|
||||
|
@ -1,170 +0,0 @@
|
||||
Return-Path: <robdclark@gmail.com>
|
||||
X-Original-To: dennis@ausil.us
|
||||
Delivered-To: dennis@ausil.us
|
||||
Received: from localhost (unknown [127.0.0.1])
|
||||
by mail.ausil.us (Postfix) with ESMTP id 6B14F2E021E
|
||||
for <dennis@ausil.us>; Mon, 16 Jun 2014 18:13:57 +0000 (UTC)
|
||||
X-Virus-Scanned: amavisd-new at ausil.us
|
||||
Authentication-Results: mail02.ausil.us (amavisd-new);
|
||||
dkim=pass (2048-bit key) header.d=gmail.com
|
||||
Received: from mail.ausil.us ([127.0.0.1])
|
||||
by localhost (mail02.ausil.us [127.0.0.1]) (amavisd-new, port 10024)
|
||||
with ESMTP id Z0kSi2KBV9uu for <dennis@ausil.us>;
|
||||
Mon, 16 Jun 2014 18:13:40 +0000 (GMT)
|
||||
X-Greylist: whitelisted by SQLgrey-1.8.0
|
||||
Received: from mail-qc0-x22e.google.com (mail-qc0-x22e.google.com [IPv6:2607:f8b0:400d:c01::22e])
|
||||
(using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits))
|
||||
(No client certificate requested)
|
||||
by mail.ausil.us (Postfix) with ESMTPS id 8DA682E024F
|
||||
for <dennis@ausil.us>; Mon, 16 Jun 2014 18:13:38 +0000 (GMT)
|
||||
Received: by mail-qc0-f174.google.com with SMTP id x13so8164787qcv.5
|
||||
for <dennis@ausil.us>; Mon, 16 Jun 2014 11:13:36 -0700 (PDT)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=gmail.com; s=20120113;
|
||||
h=from:to:cc:subject:date:message-id:in-reply-to:references;
|
||||
bh=6VVOWdKY9pK2dBxdOSDqYcBMYVy4/+VDTxfgBepvrAI=;
|
||||
b=MAKBIQ9TJrWGjVzYWsHECticUkQa0+TS5frl+oQnrCPULnqXN+rYmsx5HvCzVexJtm
|
||||
fChdHXt/IxeAUjBH56HD3X9mkf6Pn+U2TkjUOmMJBm2q2tYgE2fYHCTDnsDYk3oMRlVP
|
||||
abSXoAiURG2fODA3sPTQaAnn2Ojfvk6jzTQnN7X327u+0rA/aVjNC4u3IIcd5Cj7lo2I
|
||||
dVnzPqxdKQoSDFAfpr2mC8pKoQzSabQw3TdCMrryGjN9enNnS+V5+5Sv6MIbrGotW/k5
|
||||
2O2GkTR08WpNO/Ae1NJQYRW3QfL1UGZE/GCsDW8KYS8C91mWwXcsN+QHnx92hA9K2YVU
|
||||
eerg==
|
||||
X-Received: by 10.140.81.16 with SMTP id e16mr6124036qgd.110.1402942414050;
|
||||
Mon, 16 Jun 2014 11:13:34 -0700 (PDT)
|
||||
Received: from localhost (pool-108-20-245-130.bstnma.east.verizon.net. [108.20.245.130])
|
||||
by mx.google.com with ESMTPSA id d2sm1375720qge.24.2014.06.16.11.13.32
|
||||
for <multiple recipients>
|
||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
|
||||
Mon, 16 Jun 2014 11:13:33 -0700 (PDT)
|
||||
From: Rob Clark <robdclark@gmail.com>
|
||||
To: xorg-devel@lists.x.org
|
||||
Cc: Dennis Gilmore <dennis@ausil.us>,
|
||||
Dave Airlie <airlied@gmail.com>,
|
||||
Thierry Reding <thierry.reding@gmail.com>,
|
||||
Rob Clark <robdclark@gmail.com>
|
||||
Subject: [PATCH 1/2] platform: support non-pci platform devices
|
||||
Date: Mon, 16 Jun 2014 14:13:16 -0400
|
||||
Message-Id: <1402942397-16427-2-git-send-email-robdclark@gmail.com>
|
||||
X-Mailer: git-send-email 1.9.3
|
||||
In-Reply-To: <1402942397-16427-1-git-send-email-robdclark@gmail.com>
|
||||
References: <1402942397-16427-1-git-send-email-robdclark@gmail.com>
|
||||
|
||||
This makes things not completely fail if DDX implements platformProbe()
|
||||
but the device is not actually a PCI device. Also, the platform device
|
||||
name does not always match the DDX name, so deal with that. I'm sure
|
||||
there are more cases that find_non_pci_driver() needs to handle for
|
||||
that, but this is a start.
|
||||
|
||||
Signed-off-by: Rob Clark <robdclark@gmail.com>
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
hw/xfree86/common/xf86platformBus.c | 65 ++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 61 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
||||
index dd118a2..eca0f8c 100644
|
||||
--- a/hw/xfree86/common/xf86platformBus.c
|
||||
+++ b/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -199,6 +199,41 @@ xf86_check_platform_slot(const struct xf86_platform_device *pd)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+static int
|
||||
+find_non_pci_driver(const char *busid, char *returnList[], int returnListMax)
|
||||
+{
|
||||
+ /* Add more entries here if we ever return more than 4 drivers for
|
||||
+ any device */
|
||||
+ const char *driverList[5] = { NULL, NULL, NULL, NULL, NULL };
|
||||
+ int i = 0;
|
||||
+ char *p, *s;
|
||||
+
|
||||
+ s = xstrdup(busid);
|
||||
+ p = strtok(s, ":");
|
||||
+
|
||||
+ if (strcmp(p, "platform"))
|
||||
+ goto out;
|
||||
+
|
||||
+ /* extract device name: */
|
||||
+ p = strtok(NULL, ":");
|
||||
+
|
||||
+ /* check for special cases where DDX driver name does not match busid: */
|
||||
+ if (!strcmp(p, "mdp")) {
|
||||
+ driverList[i++] = "freedreno";
|
||||
+ }
|
||||
+
|
||||
+ /* add name derived from busid last: */
|
||||
+ driverList[i++] = p;
|
||||
+
|
||||
+ for (i = 0; (i < returnListMax) && (driverList[i] != NULL); i++) {
|
||||
+ returnList[i] = xnfstrdup(driverList[i]);
|
||||
+ }
|
||||
+
|
||||
+out:
|
||||
+ free(s);
|
||||
+ return i; /* Number of entries added */
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* @return The numbers of found devices that match with the current system
|
||||
* drivers.
|
||||
@@ -230,6 +265,9 @@ xf86PlatformMatchDriver(char *matches[], int nmatches)
|
||||
|
||||
if ((info != NULL) && (j < nmatches)) {
|
||||
j += xf86VideoPtrToDriverList(info, &(matches[j]), nmatches - j);
|
||||
+ } else if (j < nmatches) {
|
||||
+ char *busid = xf86_get_platform_attrib(i, ODEV_ATTRIB_BUSID);
|
||||
+ j += find_non_pci_driver(busid, &(matches[j]), nmatches - j);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -248,6 +286,9 @@ xf86platformProbe(void)
|
||||
pci = FALSE;
|
||||
}
|
||||
|
||||
+ /* First pass, look for PCI devices. If we find a suitable
|
||||
+ * PCI device that takes priority.
|
||||
+ */
|
||||
for (i = 0; i < xf86_num_platform_devices; i++) {
|
||||
char *busid = xf86_get_platform_attrib(i, ODEV_ATTRIB_BUSID);
|
||||
|
||||
@@ -255,6 +296,24 @@ xf86platformProbe(void)
|
||||
platform_find_pci_info(&xf86_platform_devices[i], busid);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ /* if we found something, we are done: */
|
||||
+ if (primaryBus.type != BUS_NONE)
|
||||
+ return 0;
|
||||
+
|
||||
+ /* Second pass, look for real platform devices (ie. in the linux-
|
||||
+ * kernel sense of platform device.. something that is not pci)
|
||||
+ */
|
||||
+ for (i = 0; i < xf86_num_platform_devices; i++) {
|
||||
+ char *busid = xf86_get_platform_attrib(i, ODEV_ATTRIB_BUSID);
|
||||
+
|
||||
+ if (strncmp(busid, "platform:", 9) == 0) {
|
||||
+ primaryBus.type = BUS_PLATFORM;
|
||||
+ primaryBus.id.plat = &xf86_platform_devices[i];
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -401,10 +460,8 @@ xf86platformProbeDev(DriverPtr drvp)
|
||||
/* for non-seat0 servers assume first device is the master */
|
||||
if (ServerIsNotSeat0())
|
||||
break;
|
||||
- if (xf86_platform_devices[j].pdev) {
|
||||
- if (xf86IsPrimaryPlatform(&xf86_platform_devices[j]))
|
||||
- break;
|
||||
- }
|
||||
+ if (xf86IsPrimaryPlatform(&xf86_platform_devices[j]))
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.9.3
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
f2b746094e708c41bc28cf545624d16b xorg-server-1.15.99.903.tar.bz2
|
||||
6840767d8306921b687d05437a952753 xorg-server-1.15.99.904.tar.bz2
|
||||
|
@ -41,8 +41,8 @@
|
||||
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.15.99.903
|
||||
Release: 5%{?gitdate:.%{gitdate}}%{dist}
|
||||
Version: 1.15.99.904
|
||||
Release: 1%{?gitdate:.%{gitdate}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X
|
||||
@ -75,8 +75,10 @@ Source31: xserver-sdk-abi-requires.git
|
||||
Source40: driver-abi-rebuild.sh
|
||||
|
||||
# Submitted upstream
|
||||
Patch0001: 0001-fb-Fix-xvfb-crash-in-fbCloseScreen-on-client-disconn.patch
|
||||
Patch0002: 0001-headers-Fix-build-errors-with-latest-glibc.patch
|
||||
Patch0001: 0001-headers-Fix-build-errors-with-latest-glibc.patch
|
||||
|
||||
# Revert of a touchpad motion scaling fix with known issues (rhbz#1104789)
|
||||
Patch0002: 0002-Revert-dix-fix-up-coordinate-scaling-when-external-m.patch
|
||||
|
||||
# Trivial things to never merge upstream ever:
|
||||
# This really could be done prettier.
|
||||
@ -100,11 +102,6 @@ Patch9100: exa-only-draw-valid-trapezoids.patch
|
||||
# because the display-managers are not ready yet, do not upstream
|
||||
Patch10000: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch
|
||||
|
||||
# submitted http://lists.x.org/archives/xorg-devel/2014-June/042826.html
|
||||
# needed to allow X to start on arm and other devices without video on pci buses
|
||||
Patch10100: platform-support-non-pci-platform-devices.patch
|
||||
Patch10101: add-SERVER_SUPPORTS_NON_PCI_PLATFORM_DEVS.patch
|
||||
|
||||
# submitted http://lists.x.org/archives/xorg-devel/2014-July/042936.html
|
||||
Patch10200: 0001-xwayland-Snap-damage-reports-to-the-bounding-box.patch
|
||||
|
||||
@ -622,6 +619,9 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Jul 8 2014 Hans de Goede <hdegoede@redhat.com> - 1.15.99.904-1
|
||||
- Update to 1.15.99.904
|
||||
|
||||
* Wed Jul 2 2014 Hans de Goede <hdegoede@redhat.com> - 1.15.99.903-5
|
||||
- Fix code including glamor.h not compiling due to strndup re-definition
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user