diff options
author | Dave Airlie <airlied@redhat.com> | 2012-05-24 15:39:05 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-07-07 10:37:10 +0100 |
commit | 382dd45bb88fa92764bf0ecd655cb9890eb84960 (patch) | |
tree | 85b930bba263dd8f4fd174ec09df3612be978965 /dix/dispatch.c | |
parent | 05d2472cd242293a5fa205efff5734a3380072b4 (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.c | 17 |
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; +} |