Patchwork [meta-fsl-arm,6/7] xf86-video-imxfb-vivante: Revert patch to update to newer Xorg Video API

login
register
mail settings
Submitter Otavio Salvador
Date April 1, 2013, 7:39 p.m.
Message ID <1364845165-18038-7-git-send-email-otavio@ossystems.com.br>
Download mbox | patch
Permalink /patch/47231/
State Accepted
Delegated to: Otavio Salvador
Headers show

Comments

Otavio Salvador - April 1, 2013, 7:39 p.m.
As we're adding a Xorg backport we don't need to patch the driver code
to support newer Xorg Video API.

Change-Id: I268613a4123525db4d13964431bab41bc2b042f8
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 .../fix-vivante-compile.patch                      | 373 ---------------------
 .../xf86-video-imxfb-vivante/remove-mibstore.patch |  36 --
 .../xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb  |  15 +-
 3 files changed, 11 insertions(+), 413 deletions(-)
 delete mode 100644 recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/fix-vivante-compile.patch
 delete mode 100644 recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/remove-mibstore.patch

Patch

diff --git a/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/fix-vivante-compile.patch b/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/fix-vivante-compile.patch
deleted file mode 100644
index bdbd2eb..0000000
--- a/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/fix-vivante-compile.patch
+++ /dev/null
@@ -1,373 +0,0 @@ 
-This patch handles changes in the X server API which appeared in version 1.13
-The changes should be backwards compatible so this driver still works in earlier
-versions of the X server.
-
-Upstream-Status: Pending
-
-Index: xserver-xorg-video-imx-viv-1.1.0/src/vivante_fbdev/vivante_dri.h
-===================================================================
---- xserver-xorg-video-imx-viv-1.1.0.orig/src/vivante_fbdev/vivante_dri.h
-+++ xserver-xorg-video-imx-viv-1.1.0/src/vivante_fbdev/vivante_dri.h
-@@ -67,7 +67,7 @@ typedef struct _vvtDeviceInfoRec {
- } vvtDeviceInfo;
- 
- Bool VivDRIScreenInit(ScreenPtr pScreen);
--void VivDRICloseScreen(ScreenPtr pScreen);
-+void VivDRICloseScreen(CLOSE_SCREEN_ARGS_DECL);
- Bool VivDRIFinishScreenInit(ScreenPtr pScreen);
- 
- #endif /* _VIVANTE_DRI_H_ */
-Index: xserver-xorg-video-imx-viv-1.1.0/src/vivante_fbdev/vivante_fbdev_driver.c
-===================================================================
---- xserver-xorg-video-imx-viv-1.1.0.orig/src/vivante_fbdev/vivante_fbdev_driver.c
-+++ xserver-xorg-video-imx-viv-1.1.0/src/vivante_fbdev/vivante_fbdev_driver.c
-@@ -53,9 +53,8 @@ static const OptionInfoRec *VivAvailable
- static void VivIdentify(int flags);
- static Bool VivProbe(DriverPtr drv, int flags);
- static Bool VivPreInit(ScrnInfoPtr pScrn, int flags);
--static Bool VivScreenInit(int Index, ScreenPtr pScreen, int argc,
--        char **argv);
--static Bool VivCloseScreen(int scrnIndex, ScreenPtr pScreen);
-+static Bool VivScreenInit(SCREEN_INIT_ARGS_DECL);
-+static Bool VivCloseScreen(CLOSE_SCREEN_ARGS_DECL);
- static Bool VivDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op,
-         pointer ptr);
- 
-@@ -175,7 +174,7 @@ VivSetup(pointer module, pointer opts, i
- 
- static Bool InitExaLayer(ScreenPtr pScreen) {
-     ExaDriverPtr pExa;
--    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-     VivPtr pViv = GET_VIV_PTR(pScrn);
- 
-     TRACE_ENTER();
-@@ -258,7 +257,7 @@ static Bool InitExaLayer(ScreenPtr pScre
- }
- 
- static Bool DestroyExaLayer(ScreenPtr pScreen) {
--    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-     VivPtr pViv = GET_VIV_PTR(pScrn);
-     TRACE_ENTER();
-     xf86DrvMsg(pScreen->myNum, X_INFO, "Shutdown EXA\n");
-@@ -570,7 +569,7 @@ VivPreInit(ScrnInfoPtr pScrn, int flags)
- static Bool
- VivCreateScreenResources(ScreenPtr pScreen) {
-     PixmapPtr pPixmap;
--    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-     VivPtr fPtr = GET_VIV_PTR(pScrn);
-     Bool ret;
- 
-@@ -592,8 +591,8 @@ VivCreateScreenResources(ScreenPtr pScre
- }
- 
- static Bool
--VivScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
--    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-+VivScreenInit(SCREEN_INIT_ARGS_DECL) {
-+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-     VivPtr fPtr = GET_VIV_PTR(pScrn);
-     VisualPtr visual;
-     int init_picture = 0;
-@@ -611,7 +610,7 @@ VivScreenInit(int scrnIndex, ScreenPtr p
- 
-     /*Mapping the Video memory*/
-     if (NULL == (fPtr->mFB.mFBMemory = fbdevHWMapVidmem(pScrn))) {
--        xf86DrvMsg(scrnIndex, X_ERROR, "mapping of video memory"
-+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mapping of video memory"
-                 " failed\n");
-         TRACE_EXIT(FALSE);
-     }
-@@ -626,17 +625,17 @@ VivScreenInit(int scrnIndex, ScreenPtr p
- 
-     /*Init the hardware in current mode*/
-     if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) {
--        xf86DrvMsg(scrnIndex, X_ERROR, "mode initialization failed\n");
-+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mode initialization failed\n");
-         TRACE_EXIT(FALSE);
-     }
-     fbdevHWSaveScreen(pScreen, SCREEN_SAVER_ON);
--    fbdevHWAdjustFrame(scrnIndex, 0, 0, 0);
-+    fbdevHWAdjustFrame(FBDEVHWADJUSTFRAME_ARGS(0, 0));
- 
-     /* mi layer */
-     miClearVisualTypes();
-     if (pScrn->bitsPerPixel > 8) {
-         if (!miSetVisualTypes(pScrn->depth, TrueColorMask, pScrn->rgbBits, TrueColor)) {
--            xf86DrvMsg(scrnIndex, X_ERROR, "visual type setup failed"
-+            xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "visual type setup failed"
-                     " for %d bits per pixel [1]\n",
-                     pScrn->bitsPerPixel);
-             TRACE_EXIT(FALSE);
-@@ -645,14 +644,14 @@ VivScreenInit(int scrnIndex, ScreenPtr p
-         if (!miSetVisualTypes(pScrn->depth,
-                 miGetDefaultVisualMask(pScrn->depth),
-                 pScrn->rgbBits, pScrn->defaultVisual)) {
--            xf86DrvMsg(scrnIndex, X_ERROR, "visual type setup failed"
-+            xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "visual type setup failed"
-                     " for %d bits per pixel [2]\n",
-                     pScrn->bitsPerPixel);
-             TRACE_EXIT(FALSE);
-         }
-     }
-     if (!miSetPixmapDepths()) {
--        xf86DrvMsg(scrnIndex, X_ERROR, "pixmap depth setup failed\n");
-+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "pixmap depth setup failed\n");
-         return FALSE;
-     }
- 
-@@ -660,14 +659,14 @@ VivScreenInit(int scrnIndex, ScreenPtr p
-     pScrn->displayWidth = fbdevHWGetLineLength(pScrn) /
-             (pScrn->bitsPerPixel / 8);
-     if (pScrn->displayWidth != pScrn->virtualX) {
--        xf86DrvMsg(scrnIndex, X_INFO,
-+        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                 "Pitch updated to %d after ModeInit\n",
-                 pScrn->displayWidth);
-     }
-     /*Logical start address*/
-     fPtr->mFB.mFBStart = fPtr->mFB.mFBMemory + fPtr->mFB.mFBOffset;
- 
--    xf86DrvMsg(scrnIndex, X_INFO,
-+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-             "FB Start = %p  FB Base = %p  FB Offset = %p\n",
-             fPtr->mFB.mFBStart, fPtr->mFB.mFBMemory, fPtr->mFB.mFBOffset);
- 
-@@ -684,7 +683,7 @@ VivScreenInit(int scrnIndex, ScreenPtr p
-             init_picture = 1;
-             break;
-         default:
--            xf86DrvMsg(scrnIndex, X_ERROR,
-+            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                     "internal error: invalid number of bits per"
-                     " pixel (%d) encountered in"
-                     " VivScreenInit()\n", pScrn->bitsPerPixel);
-@@ -716,7 +715,7 @@ VivScreenInit(int scrnIndex, ScreenPtr p
-     if (fPtr->mFakeExa.mUseExaFlag) {
-         TRACE_INFO("Loading EXA");
-         if (!InitExaLayer(pScreen)) {
--            xf86DrvMsg(scrnIndex, X_ERROR,
-+            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                     "internal error: initExaLayer failed "
-                     "in VivScreenInit()\n");
-         }
-@@ -733,7 +732,7 @@ VivScreenInit(int scrnIndex, ScreenPtr p
- 
-     /* colormap */
-     if (!miCreateDefColormap(pScreen)) {
--        xf86DrvMsg(scrnIndex, X_ERROR,
-+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                 "internal error: miCreateDefColormap failed "
-                 "in VivScreenInit()\n");
-         TRACE_EXIT(FALSE);
-@@ -775,20 +774,20 @@ VivScreenInit(int scrnIndex, ScreenPtr p
- }
- 
- static Bool
--VivCloseScreen(int scrnIndex, ScreenPtr pScreen) {
--    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
-+VivCloseScreen(CLOSE_SCREEN_ARGS_DECL) {
-+    CLOSE_SCREEN_DECL_ScrnInfoPtr;
-     VivPtr fPtr = GET_VIV_PTR(pScrn);
-     Bool ret = FALSE;
-     TRACE_ENTER();
- 
- #ifndef DISABLE_VIVANTE_DRI
--    VivDRICloseScreen(pScreen);
-+    VivDRICloseScreen(CLOSE_SCREEN_ARGS);
- #endif
- 
-     if (fPtr->mFakeExa.mUseExaFlag) {
-         DEBUGP("UnLoading EXA");
-         if (fPtr->mFakeExa.mIsInited && !DestroyExaLayer(pScreen)) {
--            xf86DrvMsg(scrnIndex, X_ERROR,
-+            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                     "internal error: DestroyExaLayer failed "
-                     "in VivCloseScreen()\n");
-         }
-@@ -801,7 +800,7 @@ VivCloseScreen(int scrnIndex, ScreenPtr
- 
-     pScreen->CreateScreenResources = fPtr->CreateScreenResources;
-     pScreen->CloseScreen = fPtr->CloseScreen;
--    ret = (*pScreen->CloseScreen)(scrnIndex, pScreen);
-+    ret = (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);
-     TRACE_EXIT(ret);
- }
- 
-Index: xserver-xorg-video-imx-viv-1.1.0/src/vivante_util/compat-api.h
-===================================================================
---- /dev/null
-+++ xserver-xorg-video-imx-viv-1.1.0/src/vivante_util/compat-api.h
-@@ -0,0 +1,106 @@
-+/*
-+ * Copyright 2012 Red Hat, Inc.
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a
-+ * copy of this software and associated documentation files (the "Software"),
-+ * to deal in the Software without restriction, including without limitation
-+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+ * and/or sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice (including the next
-+ * paragraph) shall be included in all copies or substantial portions of the
-+ * Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-+ * DEALINGS IN THE SOFTWARE.
-+ *
-+ * Author: Dave Airlie <airlied@redhat.com>
-+ */
-+
-+/* this file provides API compat between server post 1.13 and pre it,
-+   it should be reused inside as many drivers as possible */
-+#ifndef COMPAT_API_H
-+#define COMPAT_API_H
-+
-+#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR
-+#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum]
-+#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p
-+#endif
-+
-+#ifndef XF86_HAS_SCRN_CONV
-+#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum]
-+#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex]
-+#endif
-+
-+#ifndef XF86_SCRN_INTERFACE
-+
-+#define SCRN_ARG_TYPE int
-+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)]
-+
-+#define SCREEN_ARG_TYPE int
-+#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)]
-+
-+#define SCREEN_INIT_ARGS_DECL int index, ScreenPtr pScreen, int argc, char **argv
-+
-+#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask
-+#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask
-+
-+#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen
-+#define CLOSE_SCREEN_ARGS scrnIndex, pScreen
-+#define CLOSE_SCREEN_DECL_ScrnInfoPtr ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
-+
-+#define FBDEVHWADJUSTFRAME_ARGS(x, y) scrnIndex, (x), (y), 0
-+
-+#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags
-+
-+#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags
-+
-+#define FREE_SCREEN_ARGS_DECL int arg, int flags
-+#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0
-+
-+#define VT_FUNC_ARGS_DECL int arg, int flags
-+#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags)
-+
-+#define ENABLE_DISABLE_FB_ACCESS_ARGS(pScrn, b) pScrn->scrnIndex, b
-+
-+#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex)
-+#else
-+#define SCRN_ARG_TYPE ScrnInfoPtr
-+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1)
-+
-+#define SCREEN_ARG_TYPE ScreenPtr
-+#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1)
-+
-+#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
-+
-+#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
-+#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
-+
-+#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
-+#define CLOSE_SCREEN_ARGS pScreen
-+#define CLOSE_SCREEN_DECL_ScrnInfoPtr ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-+
-+#define FBDEVHWADJUSTFRAME_ARGS(x, y) pScrn, (x), (y)
-+
-+#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y
-+#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode
-+
-+#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg
-+#define FREE_SCREEN_ARGS(x) (x)
-+
-+#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg
-+#define VT_FUNC_ARGS(flags) pScrn
-+
-+#define ENABLE_DISABLE_FB_ACCESS_ARGS(pScrn, b) pScrn, b
-+
-+#define XF86_ENABLEDISABLEFB_ARG(x) (x)
-+
-+#endif
-+
-+#endif
-Index: xserver-xorg-video-imx-viv-1.1.0/src/vivante_util/vivante_common.h
-===================================================================
---- xserver-xorg-video-imx-viv-1.1.0.orig/src/vivante_util/vivante_common.h
-+++ xserver-xorg-video-imx-viv-1.1.0/src/vivante_util/vivante_common.h
-@@ -69,6 +69,9 @@ extern "C" {
- #include "xf86Crtc.h"
- #include "cursorstr.h"
- 
-+    /* System API compatability */
-+#include "compat-api.h"
-+
-     /*Debug*/
- #include "vivante_debug.h"
- 
-Index: xserver-xorg-video-imx-viv-1.1.0/src/vivante_fbdev/vivante.h
-===================================================================
---- xserver-xorg-video-imx-viv-1.1.0.orig/src/vivante_fbdev/vivante.h
-+++ xserver-xorg-video-imx-viv-1.1.0/src/vivante_fbdev/vivante.h
-@@ -92,11 +92,11 @@ extern "C" {
- #define GET_VIV_PTR(p) ((VivPtr)((p)->driverPrivate))
- 
- #define VIVPTR_FROM_PIXMAP(x)		\
--		GET_VIV_PTR(xf86Screens[(x)->drawable.pScreen->myNum])
-+		GET_VIV_PTR(xf86ScreenToScrn((x)->drawable.pScreen))
- #define VIVPTR_FROM_SCREEN(x)		\
--		GET_VIV_PTR(xf86Screens[(x)->myNum])
-+		GET_VIV_PTR(xf86ScreenToScrn((x)))
- #define VIVPTR_FROM_PICTURE(x)	\
--		GET_VIV_PTR(xf86Screens[(x)->pDrawable->pScreen->myNum])
-+		GET_VIV_PTR(xf86ScreenToScrn((x)->pDrawable->pScreen))
- 
-     /********************************************************************************
-      *
-Index: xserver-xorg-video-imx-viv-1.1.0/src/vivante_fbdev/vivante_dri.c
-===================================================================
---- xserver-xorg-video-imx-viv-1.1.0.orig/src/vivante_fbdev/vivante_dri.c
-+++ xserver-xorg-video-imx-viv-1.1.0/src/vivante_fbdev/vivante_dri.c
-@@ -51,7 +51,7 @@ VivDestroyContext(ScreenPtr pScreen, drm
- 
- Bool
- VivDRIFinishScreenInit(ScreenPtr pScreen) {
--    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-     VivPtr pViv = GET_VIV_PTR(pScrn);
-     DRIInfoPtr pDRIInfo = (DRIInfoPtr) pViv->pDRIInfo;
- 
-@@ -81,7 +81,7 @@ VivDRIMoveBuffers(WindowPtr pParent, DDX
- }
- 
- Bool VivDRIScreenInit(ScreenPtr pScreen) {
--    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-     DRIInfoPtr pDRIInfo;
-     VivPtr pViv = GET_VIV_PTR(pScrn);
- 
-@@ -187,7 +187,7 @@ Bool VivDRIScreenInit(ScreenPtr pScreen)
- }
- 
- void VivDRICloseScreen(ScreenPtr pScreen) {
--    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-     VivPtr pViv = GET_VIV_PTR(pScrn);
- 
-     if (pViv->pDRIInfo) {
diff --git a/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/remove-mibstore.patch b/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/remove-mibstore.patch
deleted file mode 100644
index 1bdfaf9..0000000
--- a/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/remove-mibstore.patch
+++ /dev/null
@@ -1,36 +0,0 @@ 
-mibstore functions are no longer supported in the X server.  
-This patch removes them from this driver, following the pattern in
-   http://patches.openembedded.org/patch/46133/
-
-This checkin shows when/where the changes to the X server were made
-that deleted the header mibstore.h and mentions the reasons.
-   http://lists.x.org/archives/xorg-devel/2012-September/033575.html
-
-Upstream-Status: Pending
-Signed-off-by: Gary Thomas <gary@mlbassoc.com> 
---
-
-Index: xserver-xorg-video-imx-viv-12.09.01/src/vivante_util/vivante_common.h
-===================================================================
---- xserver-xorg-video-imx-viv-12.09.01.orig/src/vivante_util/vivante_common.h
-+++ xserver-xorg-video-imx-viv-12.09.01/src/vivante_util/vivante_common.h
-@@ -48,7 +48,6 @@ extern "C" {
- 
- 
- #include "mipointer.h"
--#include "mibstore.h"
- #include "micmap.h"
- #include "mipointrst.h"
- #include "inputstr.h"
-Index: xserver-xorg-video-imx-viv-12.09.01/src/vivante_fbdev/vivante_fbdev_driver.c
-===================================================================
---- xserver-xorg-video-imx-viv-12.09.01.orig/src/vivante_fbdev/vivante_fbdev_driver.c
-+++ xserver-xorg-video-imx-viv-12.09.01/src/vivante_fbdev/vivante_fbdev_driver.c
-@@ -746,7 +746,6 @@ VivScreenInit(SCREEN_INIT_ARGS_DECL) {
- 
- 
-     xf86SetBlackWhitePixels(pScreen);
--    miInitializeBackingStore(pScreen);
-     xf86SetBackingStore(pScreen);
- 
-     pScrn->vtSema = TRUE;
diff --git a/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb b/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb
index 1ebe333..28491c9 100644
--- a/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb
+++ b/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb
@@ -5,15 +5,13 @@ 
 require recipes-graphics/xorg-driver/xorg-driver-video.inc
 
 PE = "3"
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.2"
 
 DEPENDS += "virtual/libx11 virtual/libgal-x11 gpu-viv-bin-mx6q"
 
 LIC_FILES_CHKSUM = "file://src/vivante_fbdev/vivante.h;endline=19;md5=93a322f91ec495569dcbcfbb2a95454a"
 
 SRC_URI = "${FSL_MIRROR}/xserver-xorg-video-imx-viv-${PV}.tar.gz \
-           file://fix-vivante-compile.patch \
-           file://remove-mibstore.patch \
            file://Makefile.am-remove-prefixed-include-path.patch"
 SRC_URI[md5sum] = "d872365c046738628a7016343ffdb79a"
 SRC_URI[sha256sum] = "d53216d5f9e3f7803983ac1577d83985dfda33145e4711300f4ad5cbbe28e32d"
@@ -38,7 +36,16 @@  do_install_append () {
 	find ${D}${includedir} -type f -exec chmod 660 {} \;
 }
 
-RDEPENDS_${PN} += "xserver-xorg-module-exa"
+RDEPENDS_${PN} += "xserver-xorg-module-exa xf86-dri-vivante"
+
+# Add the ABI dependency at package generation time, as otherwise bitbake will
+# attempt to find a provider for it (and fail) when it does the parse.
+#
+# This version *must* be kept correct.
+python populate_packages_prepend() {
+    pn = d.getVar("PN", True)
+    d.appendVar("RDEPENDS_" + pn, " xorg-abi-video-11")
+}
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 COMPATIBLE_MACHINE = "(mx6)"