summaryrefslogtreecommitdiff
path: root/src/mali_fbdev.c
diff options
context:
space:
mode:
authorJohn Fredriksson <john.xj.fredriksson@stericsson.com>2011-08-08 16:56:41 +0000
committerJohn Fredriksson <john.xj.fredriksson@stericsson.com>2011-09-20 14:48:16 +0000
commit53cd7f5e10c66ccd232b8c96d286e456cccca25f (patch)
treec9c48ef69c0d8a8da7463c88f2b70f5cd4115325 /src/mali_fbdev.c
parent4b9f43907be888328f680f6777fcc78ed070c954 (diff)
Add xvideo driver.
Diffstat (limited to 'src/mali_fbdev.c')
-rw-r--r--src/mali_fbdev.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/mali_fbdev.c b/src/mali_fbdev.c
index 9abf2e2..e96d6d0 100644
--- a/src/mali_fbdev.c
+++ b/src/mali_fbdev.c
@@ -1166,10 +1166,27 @@ static Bool MaliScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **ar
{
XF86VideoAdaptorPtr *ptr;
+ XF86VideoAdaptorPtr adaptor;
+ int i = 0;
- int n = xf86XVListGenericAdaptors(pScrn,&ptr);
- if (n) xf86XVScreenInit(pScreen,ptr,n);
- }
+ ptr = realloc(ptr, (i + 1) * sizeof(XF86VideoAdaptorPtr));
+ if (!ptr)
+ return FALSE;
+
+ /* b2r2 overlay video adaptor */
+ if ((adaptor = U8500overlaySetupImageVideo(pScreen))) {
+ ptr[i] = adaptor;
+ i++;
+ }
+
+ if (!xf86XVScreenInit(pScreen, ptr, i)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "XVScreenInit failed\n");
+ return FALSE;
+ }
+
+ //int n = xf86XVListGenericAdaptors(pScrn,&ptr);
+ //if (n) xf86XVScreenInit(pScreen,ptr,n);
+ }
return TRUE;
}
@@ -1182,6 +1199,9 @@ static Bool MaliCloseScreen(int scrnIndex, ScreenPtr pScreen)
MaliHWRestore(pScrn);
MaliHWUnmapVidmem(pScrn);
+
+ U8500overlayFreeAdaptor(fPtr, fPtr->overlay_adaptor);
+
pScrn->vtSema = FALSE;
pScreen->CreateScreenResources = fPtr->CreateScreenResources;