summaryrefslogtreecommitdiff
path: root/dix/dispatch.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2012-05-24 15:39:05 +0100
committerDave Airlie <airlied@redhat.com>2012-07-07 10:37:10 +0100
commit382dd45bb88fa92764bf0ecd655cb9890eb84960 (patch)
tree85b930bba263dd8f4fd174ec09df3612be978965 /dix/dispatch.c
parent05d2472cd242293a5fa205efff5734a3380072b4 (diff)
dix: add ability to link output slave gpus to the current gpu (v1.1)
Just add the interfaces to attach/detach output slaves, and a linked list to keep track of them. Hook up the randr providers list to include these slaves. v1.1: add another assert to the add path. Reviewed-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'dix/dispatch.c')
-rw-r--r--dix/dispatch.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 9e8462124..29ac5a45a 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -3743,6 +3743,7 @@ static int init_screen(ScreenPtr pScreen, int i, Bool gpu)
pScreen->CreateScreenResources = 0;
xorg_list_init(&pScreen->unattached_list);
+ xorg_list_init(&pScreen->output_slave_list);
/*
* This loop gets run once for every Screen that gets added,
@@ -3909,3 +3910,19 @@ DetachUnboundGPU(ScreenPtr slave)
slave->current_master = NULL;
}
+void
+AttachOutputGPU(ScreenPtr pScreen, ScreenPtr new)
+{
+ assert(new->isGPU);
+ assert(!new->current_master);
+ xorg_list_add(&new->output_head, &pScreen->output_slave_list);
+ new->current_master = pScreen;
+}
+
+void
+DetachOutputGPU(ScreenPtr slave)
+{
+ assert(slave->isGPU);
+ xorg_list_del(&slave->output_head);
+ slave->current_master = NULL;
+}