Merge branch 'master' into f18
This commit is contained in:
commit
d46ce120d5
191
0001-autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
Normal file
191
0001-autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
From fc08ad50a2ad81f8741939f8e9eacf86b5af6676 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fedora X Ninjas <x@fedoraproject.org>
|
||||||
|
Date: Wed, 12 Dec 2012 15:15:38 +1000
|
||||||
|
Subject: [PATCH] autoconfig: fixup tell changed so randr clients can tell
|
||||||
|
|
||||||
|
This lets the gnome applet update if a usb device appears/disappears
|
||||||
|
---
|
||||||
|
hw/xfree86/common/xf86platformBus.c | 6 ++++--
|
||||||
|
hw/xfree86/modes/xf86Crtc.c | 4 ++++
|
||||||
|
randr/randr.c | 24 +++++++++++++++++++++++-
|
||||||
|
randr/randrstr.h | 4 ++++
|
||||||
|
randr/rrcrtc.c | 2 +-
|
||||||
|
randr/rrinfo.c | 2 +-
|
||||||
|
randr/rroutput.c | 2 +-
|
||||||
|
randr/rrscreen.c | 2 +-
|
||||||
|
8 files changed, 39 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
||||||
|
index 0b735d1..891142d 100644
|
||||||
|
--- a/hw/xfree86/common/xf86platformBus.c
|
||||||
|
+++ b/hw/xfree86/common/xf86platformBus.c
|
||||||
|
@@ -47,6 +47,7 @@
|
||||||
|
#include "Pci.h"
|
||||||
|
#include "xf86platformBus.h"
|
||||||
|
|
||||||
|
+#include "randrstr.h"
|
||||||
|
int platformSlotClaimed;
|
||||||
|
|
||||||
|
int xf86_num_platform_devices;
|
||||||
|
@@ -454,7 +455,8 @@ xf86platformAddDevice(int index)
|
||||||
|
/* attach unbound to 0 protocol screen */
|
||||||
|
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
|
||||||
|
xf86AutoConfigOutputDevice(xf86GPUScreens[i], xf86Screens[0]);
|
||||||
|
-
|
||||||
|
+
|
||||||
|
+ RRTellChanged(xf86Screens[0]->pScreen);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -497,7 +499,7 @@ xf86platformRemoveDevice(int index)
|
||||||
|
xf86UnclaimPlatformSlot(&xf86_platform_devices[index], NULL);
|
||||||
|
|
||||||
|
xf86_remove_platform_device(index);
|
||||||
|
-
|
||||||
|
+ RRTellChanged(xf86Screens[0]->pScreen);
|
||||||
|
out:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||||
|
index 61119b3..a4fdec9 100644
|
||||||
|
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||||
|
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||||
|
@@ -743,10 +743,12 @@ xf86CrtcCloseScreen(ScreenPtr screen)
|
||||||
|
/* detach any providers */
|
||||||
|
if (config->randr_provider) {
|
||||||
|
if (config->randr_provider->offload_sink) {
|
||||||
|
+ RRSetChanged(screen);
|
||||||
|
DetachOffloadGPU(screen);
|
||||||
|
config->randr_provider->offload_sink = NULL;
|
||||||
|
}
|
||||||
|
else if (config->randr_provider->output_source) {
|
||||||
|
+ RRSetChanged(screen);
|
||||||
|
DetachOutputGPU(screen);
|
||||||
|
config->randr_provider->output_source = NULL;
|
||||||
|
}
|
||||||
|
@@ -3341,11 +3343,13 @@ void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master)
|
||||||
|
DetachUnboundGPU(pScrn->pScreen);
|
||||||
|
AttachOffloadGPU(master->pScreen, pScrn->pScreen);
|
||||||
|
slave_config->randr_provider->offload_sink = master_provider;
|
||||||
|
+ RRSetChanged(master->pScreen);
|
||||||
|
} else if ((master->capabilities & RR_Capability_SourceOutput) &&
|
||||||
|
pScrn->capabilities & RR_Capability_SinkOutput) {
|
||||||
|
/* sink offload */
|
||||||
|
DetachUnboundGPU(pScrn->pScreen);
|
||||||
|
AttachOutputGPU(master->pScreen, pScrn->pScreen);
|
||||||
|
slave_config->randr_provider->output_source = master_provider;
|
||||||
|
+ RRSetChanged(master->pScreen);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/randr/randr.c b/randr/randr.c
|
||||||
|
index da48c3f..5b1957b 100644
|
||||||
|
--- a/randr/randr.c
|
||||||
|
+++ b/randr/randr.c
|
||||||
|
@@ -462,6 +462,28 @@ TellChanged(WindowPtr pWin, pointer value)
|
||||||
|
return WT_WALKCHILDREN;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void
|
||||||
|
+RRSetChanged(ScreenPtr pScreen)
|
||||||
|
+{
|
||||||
|
+ /* set changed bits on the master screen only */
|
||||||
|
+ ScreenPtr master;
|
||||||
|
+ rrScrPriv(pScreen);
|
||||||
|
+ rrScrPrivPtr mastersp;
|
||||||
|
+
|
||||||
|
+ if (pScreen->isGPU) {
|
||||||
|
+ master = pScreen->current_master;
|
||||||
|
+ if (!master)
|
||||||
|
+ return;
|
||||||
|
+ mastersp = rrGetScrPriv(master);
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ master = pScreen;
|
||||||
|
+ mastersp = pScrPriv;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ mastersp->changed = TRUE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Something changed; send events and adjust pointer position
|
||||||
|
*/
|
||||||
|
@@ -482,7 +504,7 @@ RRTellChanged(ScreenPtr pScreen)
|
||||||
|
mastersp = pScrPriv;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (pScrPriv->changed) {
|
||||||
|
+ if (mastersp->changed) {
|
||||||
|
UpdateCurrentTimeIf();
|
||||||
|
if (mastersp->configChanged) {
|
||||||
|
mastersp->lastConfigTime = currentTime;
|
||||||
|
diff --git a/randr/randrstr.h b/randr/randrstr.h
|
||||||
|
index 212b0a9..d61f20e 100644
|
||||||
|
--- a/randr/randrstr.h
|
||||||
|
+++ b/randr/randrstr.h
|
||||||
|
@@ -480,6 +480,10 @@ extern _X_EXPORT void
|
||||||
|
RRDeliverScreenEvent(ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
|
||||||
|
|
||||||
|
/* randr.c */
|
||||||
|
+/* set a screen change on the primary screen */
|
||||||
|
+extern _X_EXPORT void
|
||||||
|
+RRSetChanged(ScreenPtr pScreen);
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Send all pending events
|
||||||
|
*/
|
||||||
|
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
|
||||||
|
index e82d050..d57cc08 100644
|
||||||
|
--- a/randr/rrcrtc.c
|
||||||
|
+++ b/randr/rrcrtc.c
|
||||||
|
@@ -39,7 +39,7 @@ RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged)
|
||||||
|
if (pScreen) {
|
||||||
|
rrScrPriv(pScreen);
|
||||||
|
|
||||||
|
- pScrPriv->changed = TRUE;
|
||||||
|
+ RRSetChanged(pScreen);
|
||||||
|
/*
|
||||||
|
* Send ConfigureNotify on any layout change
|
||||||
|
*/
|
||||||
|
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
|
||||||
|
index 1408d6f..fc57bd4 100644
|
||||||
|
--- a/randr/rrinfo.c
|
||||||
|
+++ b/randr/rrinfo.c
|
||||||
|
@@ -225,7 +225,7 @@ RRScreenSetSizeRange(ScreenPtr pScreen,
|
||||||
|
pScrPriv->minHeight = minHeight;
|
||||||
|
pScrPriv->maxWidth = maxWidth;
|
||||||
|
pScrPriv->maxHeight = maxHeight;
|
||||||
|
- pScrPriv->changed = TRUE;
|
||||||
|
+ RRSetChanged(pScreen);
|
||||||
|
pScrPriv->configChanged = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/randr/rroutput.c b/randr/rroutput.c
|
||||||
|
index 88781ba..922d61f 100644
|
||||||
|
--- a/randr/rroutput.c
|
||||||
|
+++ b/randr/rroutput.c
|
||||||
|
@@ -36,7 +36,7 @@ RROutputChanged(RROutputPtr output, Bool configChanged)
|
||||||
|
output->changed = TRUE;
|
||||||
|
if (pScreen) {
|
||||||
|
rrScrPriv(pScreen);
|
||||||
|
- pScrPriv->changed = TRUE;
|
||||||
|
+ RRSetChanged(pScreen);
|
||||||
|
if (configChanged)
|
||||||
|
pScrPriv->configChanged = TRUE;
|
||||||
|
}
|
||||||
|
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
|
||||||
|
index 39340cc..36179ae 100644
|
||||||
|
--- a/randr/rrscreen.c
|
||||||
|
+++ b/randr/rrscreen.c
|
||||||
|
@@ -143,7 +143,7 @@ RRScreenSizeNotify(ScreenPtr pScreen)
|
||||||
|
pScrPriv->height = pScreen->height;
|
||||||
|
pScrPriv->mmWidth = pScreen->mmWidth;
|
||||||
|
pScrPriv->mmHeight = pScreen->mmHeight;
|
||||||
|
- pScrPriv->changed = TRUE;
|
||||||
|
+ RRSetChanged(pScreen);
|
||||||
|
/* pScrPriv->sizeChanged = TRUE; */
|
||||||
|
|
||||||
|
RRTellChanged(pScreen);
|
||||||
|
--
|
||||||
|
1.8.0.1
|
||||||
|
|
@ -43,7 +43,7 @@
|
|||||||
Summary: X.Org X11 X server
|
Summary: X.Org X11 X server
|
||||||
Name: xorg-x11-server
|
Name: xorg-x11-server
|
||||||
Version: 1.13.0
|
Version: 1.13.0
|
||||||
Release: 13%{?gitdate:.%{gitdate}}%{dist}
|
Release: 14%{?gitdate:.%{gitdate}}%{dist}
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: User Interface/X
|
Group: User Interface/X
|
||||||
@ -143,6 +143,8 @@ Patch7064: 0001-mieq-Bump-default-queue-size-to-512.patch
|
|||||||
# some hotplug fixes/workaround
|
# some hotplug fixes/workaround
|
||||||
Patch7065: 0001-xfree86-hotplug-cleanup-properly-if-the-screen-fails.patch
|
Patch7065: 0001-xfree86-hotplug-cleanup-properly-if-the-screen-fails.patch
|
||||||
Patch7066: 0001-xf86crtc-don-t-use-display-for-vx-vy-for-gpu-screens.patch
|
Patch7066: 0001-xf86crtc-don-t-use-display-for-vx-vy-for-gpu-screens.patch
|
||||||
|
# autoconfig: send events
|
||||||
|
Patch7067: 0001-autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
|
||||||
|
|
||||||
%global moduledir %{_libdir}/xorg/modules
|
%global moduledir %{_libdir}/xorg/modules
|
||||||
%global drimoduledir %{_libdir}/dri
|
%global drimoduledir %{_libdir}/dri
|
||||||
@ -616,6 +618,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{xserver_source_dir}
|
%{xserver_source_dir}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Dec 12 2012 Dave Airlie <airlied@redhat.com> 1.13.0-14
|
||||||
|
- add events for autoconfig of gpus devices, allow usb devices to notify gnome
|
||||||
|
|
||||||
* Wed Dec 12 2012 Dave Airlie <airlied@redhat.com> 1.13.0-13
|
* Wed Dec 12 2012 Dave Airlie <airlied@redhat.com> 1.13.0-13
|
||||||
- fix hotplug issue with usb devices and large screens
|
- fix hotplug issue with usb devices and large screens
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user