diff options
author | Dave Airlie <airlied@redhat.com> | 2011-08-17 11:41:14 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-08-17 11:41:14 +0100 |
commit | 2f20475edcf089e680c298ef83fbe8879790be0c (patch) | |
tree | c03762cbbf1128f7020dd505f66cdbed843146fe | |
parent | 754b15567feb9e31c3340913b8415d5d072f60e8 (diff) |
imped: fixup remove support
-rw-r--r-- | drv/drv_imped.h | 1 | ||||
-rw-r--r-- | drv/impedplug.c | 12 |
2 files changed, 12 insertions, 1 deletions
diff --git a/drv/drv_imped.h b/drv/drv_imped.h index 86d15f7c8..ec05e9b80 100644 --- a/drv/drv_imped.h +++ b/drv/drv_imped.h @@ -109,6 +109,7 @@ extern _X_EXPORT void impedScreenSetPixmapSize(ScreenPtr pScreen); extern _X_EXPORT void impedAttachDrvScreen(ScreenPtr pScreen, DrvScreenPtr pDrvScreen); +extern _X_EXPORT Bool impedRemoveDrvScreen(ScreenPtr pScreen, DrvScreenPtr pDrvScreen); extern _X_EXPORT Bool impedSetupScreen(int index, ScreenPtr pScreen); diff --git a/drv/impedplug.c b/drv/impedplug.c index 0cba69bbc..875371a42 100644 --- a/drv/impedplug.c +++ b/drv/impedplug.c @@ -76,10 +76,20 @@ impedAddDrvScreen(ScreenPtr pScreen, DrvScreenPtr new) } } -int impedRemoveDrvScreen(ScreenPtr pScreen, int remove_index) +Bool impedRemoveDrvScreen(ScreenPtr pScreen, DrvScreenPtr pDrvScreen) { impedScreenPrivPtr imped_screen = impedGetScreen(pScreen); int i; + int remove_index = -1; + + for (i = 0; i < imped_screen->num_gpu; i++) { + if (imped_screen->gpu[i] == pDrvScreen) { + remove_index = i; + break; + } + } + if (remove_index == -1) + return FALSE; ErrorF("hot removing GPU %d\n", remove_index); { |