47 lines
1.8 KiB
Diff
47 lines
1.8 KiB
Diff
From 6aa11e40ec75fb31d0c611f9d578427941379c0d Mon Sep 17 00:00:00 2001
|
|
From: Fedora X Ninjas <x@fedoraproject.org>
|
|
Date: Tue, 8 Jan 2013 09:42:44 +1000
|
|
Subject: [PATCH] xserver: call CSR for gpus
|
|
|
|
---
|
|
dix/main.c | 3 +++
|
|
hw/xfree86/common/xf86platformBus.c | 8 ++++++++
|
|
2 files changed, 11 insertions(+)
|
|
|
|
diff --git a/dix/main.c b/dix/main.c
|
|
index fb935c9..e558d70 100644
|
|
--- a/dix/main.c
|
|
+++ b/dix/main.c
|
|
@@ -211,6 +211,9 @@ main(int argc, char *argv[], char *envp[])
|
|
ScreenPtr pScreen = screenInfo.gpuscreens[i];
|
|
if (!CreateScratchPixmapsForScreen(pScreen))
|
|
FatalError("failed to create scratch pixmaps");
|
|
+ if (pScreen->CreateScreenResources &&
|
|
+ !(*pScreen->CreateScreenResources) (pScreen))
|
|
+ FatalError("failed to create screen resources");
|
|
}
|
|
|
|
for (i = 0; i < screenInfo.numScreens; i++) {
|
|
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
|
index 67d03eb..8f73c3a 100644
|
|
--- a/hw/xfree86/common/xf86platformBus.c
|
|
+++ b/hw/xfree86/common/xf86platformBus.c
|
|
@@ -452,6 +452,14 @@ xf86platformAddDevice(int index)
|
|
|
|
CreateScratchPixmapsForScreen(xf86GPUScreens[i]->pScreen);
|
|
|
|
+ if (xf86GPUScreens[i]->pScreen->CreateScreenResources &&
|
|
+ !(*xf86GPUScreens[i]->pScreen->CreateScreenResources) (xf86GPUScreens[i]->pScreen)) {
|
|
+ RemoveGPUScreen(xf86GPUScreens[i]->pScreen);
|
|
+ xf86DeleteScreen(xf86GPUScreens[i]);
|
|
+ xf86UnclaimPlatformSlot(&xf86_platform_devices[index], NULL);
|
|
+ xf86NumGPUScreens = old_screens;
|
|
+ return -1;
|
|
+ }
|
|
/* attach unbound to 0 protocol screen */
|
|
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
|
|
xf86AutoConfigOutputDevice(xf86GPUScreens[i], xf86Screens[0]);
|
|
--
|
|
1.8.1
|
|
|