1*4882a593SmuzhiyunFrom 5216cb0f14414b5451f58df48a36c1c62c035276 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Otavio Salvador <otavio@ossystems.com.br> 3*4882a593SmuzhiyunDate: Sat, 29 Dec 2012 18:02:11 -0200 4*4882a593SmuzhiyunSubject: [PATCH] Make video API forward and backward compatible 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunThis updates the video API in a forward and backward compatible way 7*4882a593Smuzhiyunusing the "compat-api.h" as used in Xorg maintained drivers. 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunUpstream-Status: Pending 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunSigned-off-by: Otavio Salvador <otavio@ossystems.com.br> 12*4882a593Smuzhiyun--- 13*4882a593Smuzhiyun src/compat-api.h | 106 +++++++++++++++++++++++++++++++++++++++++++++++ 14*4882a593Smuzhiyun src/imx_display.c | 22 +++++----- 15*4882a593Smuzhiyun src/imx_display.h | 8 ++-- 16*4882a593Smuzhiyun src/imx_driver.c | 60 ++++++++++++++------------- 17*4882a593Smuzhiyun src/imx_exa_offscreen.c | 12 +++--- 18*4882a593Smuzhiyun src/imx_exa_z160.c | 53 ++++++++++++------------ 19*4882a593Smuzhiyun src/imx_xv_ipu.c | 4 +- 20*4882a593Smuzhiyun 7 files changed, 188 insertions(+), 77 deletions(-) 21*4882a593Smuzhiyun create mode 100644 src/compat-api.h 22*4882a593Smuzhiyun 23*4882a593Smuzhiyundiff --git a/src/compat-api.h b/src/compat-api.h 24*4882a593Smuzhiyunnew file mode 100644 25*4882a593Smuzhiyunindex 0000000..73ac8a2 26*4882a593Smuzhiyun--- /dev/null 27*4882a593Smuzhiyun+++ b/src/compat-api.h 28*4882a593Smuzhiyun@@ -0,0 +1,106 @@ 29*4882a593Smuzhiyun+/* 30*4882a593Smuzhiyun+ * Copyright 2012 Red Hat, Inc. 31*4882a593Smuzhiyun+ * 32*4882a593Smuzhiyun+ * Permission is hereby granted, free of charge, to any person obtaining a 33*4882a593Smuzhiyun+ * copy of this software and associated documentation files (the "Software"), 34*4882a593Smuzhiyun+ * to deal in the Software without restriction, including without limitation 35*4882a593Smuzhiyun+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, 36*4882a593Smuzhiyun+ * and/or sell copies of the Software, and to permit persons to whom the 37*4882a593Smuzhiyun+ * Software is furnished to do so, subject to the following conditions: 38*4882a593Smuzhiyun+ * 39*4882a593Smuzhiyun+ * The above copyright notice and this permission notice (including the next 40*4882a593Smuzhiyun+ * paragraph) shall be included in all copies or substantial portions of the 41*4882a593Smuzhiyun+ * Software. 42*4882a593Smuzhiyun+ * 43*4882a593Smuzhiyun+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 44*4882a593Smuzhiyun+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 45*4882a593Smuzhiyun+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 46*4882a593Smuzhiyun+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 47*4882a593Smuzhiyun+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 48*4882a593Smuzhiyun+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 49*4882a593Smuzhiyun+ * DEALINGS IN THE SOFTWARE. 50*4882a593Smuzhiyun+ * 51*4882a593Smuzhiyun+ * Author: Dave Airlie <airlied@redhat.com> 52*4882a593Smuzhiyun+ */ 53*4882a593Smuzhiyun+ 54*4882a593Smuzhiyun+/* this file provides API compat between server post 1.13 and pre it, 55*4882a593Smuzhiyun+ it should be reused inside as many drivers as possible */ 56*4882a593Smuzhiyun+#ifndef COMPAT_API_H 57*4882a593Smuzhiyun+#define COMPAT_API_H 58*4882a593Smuzhiyun+ 59*4882a593Smuzhiyun+#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR 60*4882a593Smuzhiyun+#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] 61*4882a593Smuzhiyun+#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p 62*4882a593Smuzhiyun+#endif 63*4882a593Smuzhiyun+ 64*4882a593Smuzhiyun+#ifndef XF86_HAS_SCRN_CONV 65*4882a593Smuzhiyun+#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] 66*4882a593Smuzhiyun+#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] 67*4882a593Smuzhiyun+#endif 68*4882a593Smuzhiyun+ 69*4882a593Smuzhiyun+#ifndef XF86_SCRN_INTERFACE 70*4882a593Smuzhiyun+ 71*4882a593Smuzhiyun+#define SCRN_ARG_TYPE int 72*4882a593Smuzhiyun+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] 73*4882a593Smuzhiyun+ 74*4882a593Smuzhiyun+#define SCREEN_ARG_TYPE int 75*4882a593Smuzhiyun+#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] 76*4882a593Smuzhiyun+ 77*4882a593Smuzhiyun+#define SCREEN_INIT_ARGS_DECL int index, ScreenPtr pScreen, int argc, char **argv 78*4882a593Smuzhiyun+ 79*4882a593Smuzhiyun+#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask 80*4882a593Smuzhiyun+#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask 81*4882a593Smuzhiyun+ 82*4882a593Smuzhiyun+#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen 83*4882a593Smuzhiyun+#define CLOSE_SCREEN_ARGS scrnIndex, pScreen 84*4882a593Smuzhiyun+#define CLOSE_SCREEN_DECL_ScrnInfoPtr ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 85*4882a593Smuzhiyun+ 86*4882a593Smuzhiyun+#define FBDEVHWADJUSTFRAME_ARGS(x, y) scrnIndex, (x), (y), 0 87*4882a593Smuzhiyun+ 88*4882a593Smuzhiyun+#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags 89*4882a593Smuzhiyun+ 90*4882a593Smuzhiyun+#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags 91*4882a593Smuzhiyun+ 92*4882a593Smuzhiyun+#define FREE_SCREEN_ARGS_DECL int arg, int flags 93*4882a593Smuzhiyun+#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0 94*4882a593Smuzhiyun+ 95*4882a593Smuzhiyun+#define VT_FUNC_ARGS_DECL int arg, int flags 96*4882a593Smuzhiyun+#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags) 97*4882a593Smuzhiyun+ 98*4882a593Smuzhiyun+#define ENABLE_DISABLE_FB_ACCESS_ARGS(pScrn, b) pScrn->scrnIndex, b 99*4882a593Smuzhiyun+ 100*4882a593Smuzhiyun+#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex) 101*4882a593Smuzhiyun+#else 102*4882a593Smuzhiyun+#define SCRN_ARG_TYPE ScrnInfoPtr 103*4882a593Smuzhiyun+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1) 104*4882a593Smuzhiyun+ 105*4882a593Smuzhiyun+#define SCREEN_ARG_TYPE ScreenPtr 106*4882a593Smuzhiyun+#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1) 107*4882a593Smuzhiyun+ 108*4882a593Smuzhiyun+#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv 109*4882a593Smuzhiyun+ 110*4882a593Smuzhiyun+#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask 111*4882a593Smuzhiyun+#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask 112*4882a593Smuzhiyun+ 113*4882a593Smuzhiyun+#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen 114*4882a593Smuzhiyun+#define CLOSE_SCREEN_ARGS pScreen 115*4882a593Smuzhiyun+#define CLOSE_SCREEN_DECL_ScrnInfoPtr ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 116*4882a593Smuzhiyun+ 117*4882a593Smuzhiyun+#define FBDEVHWADJUSTFRAME_ARGS(x, y) pScrn, (x), (y) 118*4882a593Smuzhiyun+ 119*4882a593Smuzhiyun+#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y 120*4882a593Smuzhiyun+#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode 121*4882a593Smuzhiyun+ 122*4882a593Smuzhiyun+#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg 123*4882a593Smuzhiyun+#define FREE_SCREEN_ARGS(x) (x) 124*4882a593Smuzhiyun+ 125*4882a593Smuzhiyun+#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg 126*4882a593Smuzhiyun+#define VT_FUNC_ARGS(flags) pScrn 127*4882a593Smuzhiyun+ 128*4882a593Smuzhiyun+#define ENABLE_DISABLE_FB_ACCESS_ARGS(pScrn, b) pScrn, b 129*4882a593Smuzhiyun+ 130*4882a593Smuzhiyun+#define XF86_ENABLEDISABLEFB_ARG(x) (x) 131*4882a593Smuzhiyun+ 132*4882a593Smuzhiyun+#endif 133*4882a593Smuzhiyun+ 134*4882a593Smuzhiyun+#endif 135*4882a593Smuzhiyundiff --git a/src/imx_display.c b/src/imx_display.c 136*4882a593Smuzhiyunindex fcb8195..e2dc36a 100644 137*4882a593Smuzhiyun--- a/src/imx_display.c 138*4882a593Smuzhiyun+++ b/src/imx_display.c 139*4882a593Smuzhiyun@@ -42,6 +42,8 @@ 140*4882a593Smuzhiyun #include "imx.h" 141*4882a593Smuzhiyun #include "imx_display.h" 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun+#include "compat-api.h" 144*4882a593Smuzhiyun+ 145*4882a593Smuzhiyun #include <X11/Xatom.h> 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,7,6,0,0) 148*4882a593Smuzhiyun@@ -1373,19 +1375,19 @@ imxDisplayPreInit(ScrnInfoPtr pScrn) 149*4882a593Smuzhiyun Bool 150*4882a593Smuzhiyun imxDisplayStartScreenInit(int scrnIndex, ScreenPtr pScreen) 151*4882a593Smuzhiyun { 152*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 153*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 154*4882a593Smuzhiyun ImxPtr fPtr = IMXPTR(pScrn); 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun if (!xf86SetDesiredModes(pScrn)) { 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, "mode initialization failed\n"); 159*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mode initialization failed\n"); 160*4882a593Smuzhiyun return FALSE; 161*4882a593Smuzhiyun } 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun #if 0 164*4882a593Smuzhiyun if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) { 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, "mode initialization failed\n"); 167*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mode initialization failed\n"); 168*4882a593Smuzhiyun return FALSE; 169*4882a593Smuzhiyun } 170*4882a593Smuzhiyun pScrn->displayWidth = 171*4882a593Smuzhiyun@@ -1463,29 +1465,29 @@ imxDisplayFinishScreenInit(int scrnIndex, ScreenPtr pScreen) 172*4882a593Smuzhiyun /* -------------------------------------------------------------------- */ 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun Bool 175*4882a593Smuzhiyun-imxDisplaySwitchMode(int scrnIndex, DisplayModePtr mode, int flags) 176*4882a593Smuzhiyun+imxDisplaySwitchMode(SWITCH_MODE_ARGS_DECL) 177*4882a593Smuzhiyun { 178*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 179*4882a593Smuzhiyun+ SCRN_INFO_PTR(arg); 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun return xf86SetSingleMode(pScrn, mode, RR_Rotate_0); 182*4882a593Smuzhiyun } 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun void 185*4882a593Smuzhiyun-imxDisplayAdjustFrame(int scrnIndex, int x, int y, int flags) 186*4882a593Smuzhiyun+imxDisplayAdjustFrame(ADJUST_FRAME_ARGS_DECL) 187*4882a593Smuzhiyun { 188*4882a593Smuzhiyun-// fbdevHWAdjustFrame(scrnIndex, x, y, flags); 189*4882a593Smuzhiyun+// fbdevHWAdjustFrame(pScrn->scrnIndex, x, y, flags); 190*4882a593Smuzhiyun } 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun Bool 193*4882a593Smuzhiyun-imxDisplayEnterVT(int scrnIndex, int flags) 194*4882a593Smuzhiyun+imxDisplayEnterVT(VT_FUNC_ARGS_DECL) 195*4882a593Smuzhiyun { 196*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 197*4882a593Smuzhiyun+ SCRN_INFO_PTR(arg); 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun return xf86SetDesiredModes(pScrn); 200*4882a593Smuzhiyun } 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun void 203*4882a593Smuzhiyun-imxDisplayLeaveVT(int scrnIndex, int flags) 204*4882a593Smuzhiyun+imxDisplayLeaveVT(VT_FUNC_ARGS_DECL) 205*4882a593Smuzhiyun { 206*4882a593Smuzhiyun } 207*4882a593Smuzhiyun 208*4882a593Smuzhiyundiff --git a/src/imx_display.h b/src/imx_display.h 209*4882a593Smuzhiyunindex 4a5d5aa..3a3d43a 100644 210*4882a593Smuzhiyun--- a/src/imx_display.h 211*4882a593Smuzhiyun+++ b/src/imx_display.h 212*4882a593Smuzhiyun@@ -59,16 +59,16 @@ imxDisplayValidMode(int scrnIndex, DisplayModePtr mode, 213*4882a593Smuzhiyun Bool verbose, int flags); 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun extern Bool 216*4882a593Smuzhiyun-imxDisplaySwitchMode(int scrnIndex, DisplayModePtr mode, int flags); 217*4882a593Smuzhiyun+imxDisplaySwitchMode(SWITCH_MODE_ARGS_DECL); 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun extern void 220*4882a593Smuzhiyun-imxDisplayAdjustFrame(int scrnIndex, int x, int y, int flags); 221*4882a593Smuzhiyun+imxDisplayAdjustFrame(ADJUST_FRAME_ARGS_DECL); 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun extern Bool 224*4882a593Smuzhiyun-imxDisplayEnterVT(int scrnIndex, int flags); 225*4882a593Smuzhiyun+imxDisplayEnterVT(VT_FUNC_ARGS_DECL); 226*4882a593Smuzhiyun 227*4882a593Smuzhiyun extern void 228*4882a593Smuzhiyun-imxDisplayLeaveVT(int scrnIndex, int flags); 229*4882a593Smuzhiyun+imxDisplayLeaveVT(VT_FUNC_ARGS_DECL); 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun extern Bool 232*4882a593Smuzhiyun imxDisplayChangeFrameBufferRotateEPDC(int scrnIndex, int fbRotate); 233*4882a593Smuzhiyundiff --git a/src/imx_driver.c b/src/imx_driver.c 234*4882a593Smuzhiyunindex 178e36e..f4b3e38 100644 235*4882a593Smuzhiyun--- a/src/imx_driver.c 236*4882a593Smuzhiyun+++ b/src/imx_driver.c 237*4882a593Smuzhiyun@@ -46,6 +46,8 @@ 238*4882a593Smuzhiyun #include "fb.h" 239*4882a593Smuzhiyun #include "fbdevhw.h" 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun+#include "compat-api.h" 242*4882a593Smuzhiyun+ 243*4882a593Smuzhiyun #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 244*4882a593Smuzhiyun #include "xf86Resources.h" 245*4882a593Smuzhiyun #include "xf86RAC.h" 246*4882a593Smuzhiyun@@ -435,17 +437,17 @@ errorPreInit: 247*4882a593Smuzhiyun } 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun static void 250*4882a593Smuzhiyun-imxFreeScreen(int scrnIndex, int flags) 251*4882a593Smuzhiyun+imxFreeScreen(FREE_SCREEN_ARGS_DECL) 252*4882a593Smuzhiyun { 253*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 254*4882a593Smuzhiyun+ SCRN_INFO_PTR(arg); 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun imxFreeRec(pScrn); 257*4882a593Smuzhiyun } 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun static Bool 260*4882a593Smuzhiyun-imxCloseScreen(int scrnIndex, ScreenPtr pScreen) 261*4882a593Smuzhiyun+imxCloseScreen(CLOSE_SCREEN_ARGS_DECL) 262*4882a593Smuzhiyun { 263*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 264*4882a593Smuzhiyun+ CLOSE_SCREEN_DECL_ScrnInfoPtr; 265*4882a593Smuzhiyun ImxPtr fPtr = IMXPTR(pScrn); 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun fbdevHWRestore(pScrn); 268*4882a593Smuzhiyun@@ -453,7 +455,7 @@ imxCloseScreen(int scrnIndex, ScreenPtr pScreen) 269*4882a593Smuzhiyun pScrn->vtSema = FALSE; 270*4882a593Smuzhiyun 271*4882a593Smuzhiyun pScreen->CloseScreen = fPtr->saveCloseScreen; 272*4882a593Smuzhiyun- return (*pScreen->CloseScreen)(scrnIndex, pScreen); 273*4882a593Smuzhiyun+ return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); 274*4882a593Smuzhiyun } 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun static int 277*4882a593Smuzhiyun@@ -488,9 +490,9 @@ LCM(a, b) 278*4882a593Smuzhiyun } 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun static Bool 281*4882a593Smuzhiyun-imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 282*4882a593Smuzhiyun+imxScreenInit(SCREEN_INIT_ARGS_DECL) 283*4882a593Smuzhiyun { 284*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 285*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 286*4882a593Smuzhiyun ImxPtr fPtr = IMXPTR(pScrn); 287*4882a593Smuzhiyun VisualPtr visual; 288*4882a593Smuzhiyun int init_picture = 0; 289*4882a593Smuzhiyun@@ -514,7 +516,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 290*4882a593Smuzhiyun /* Map frame buffer memory */ 291*4882a593Smuzhiyun fPtr->fbMemoryBase = fbdevHWMapVidmem(pScrn); 292*4882a593Smuzhiyun if (NULL == fPtr->fbMemoryBase) { 293*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex,X_ERROR,"mapping of video memory" 294*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"mapping of video memory" 295*4882a593Smuzhiyun " failed\n"); 296*4882a593Smuzhiyun return FALSE; 297*4882a593Smuzhiyun } 298*4882a593Smuzhiyun@@ -558,7 +560,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 299*4882a593Smuzhiyun const int fbOffsetScreen2 = 300*4882a593Smuzhiyun IMX_ALIGN(fbMaxScreenSize, fbMaxAlignOffset); 301*4882a593Smuzhiyun fPtr->fbMemoryScreenReserve = fbMaxScreenSize; 302*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_INFO, 303*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, 304*4882a593Smuzhiyun "reserve %d bytes of frame buffer for screen\n", 305*4882a593Smuzhiyun fPtr->fbMemoryScreenReserve); 306*4882a593Smuzhiyun fPtr->fbMemoryStart2 = NULL; 307*4882a593Smuzhiyun@@ -568,12 +570,12 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun fPtr->fbMemoryScreenReserve += fbOffsetScreen2; 310*4882a593Smuzhiyun 311*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_INFO, 312*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, 313*4882a593Smuzhiyun "reserve same number of bytes for XRandR rotated screen at offset %d\n", 314*4882a593Smuzhiyun fbOffsetScreen2); 315*4882a593Smuzhiyun } 316*4882a593Smuzhiyun 317*4882a593Smuzhiyun- if (!imxDisplayStartScreenInit(scrnIndex, pScreen)) { 318*4882a593Smuzhiyun+ if (!imxDisplayStartScreenInit(pScrn->scrnIndex, pScreen)) { 319*4882a593Smuzhiyun 320*4882a593Smuzhiyun return FALSE; 321*4882a593Smuzhiyun } 322*4882a593Smuzhiyun@@ -582,7 +584,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 323*4882a593Smuzhiyun miClearVisualTypes(); 324*4882a593Smuzhiyun if (pScrn->bitsPerPixel > 8) { 325*4882a593Smuzhiyun if (!miSetVisualTypes(pScrn->depth, TrueColorMask, pScrn->rgbBits, TrueColor)) { 326*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex,X_ERROR,"visual type setup failed" 327*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"visual type setup failed" 328*4882a593Smuzhiyun " for %d bits per pixel [1]\n", 329*4882a593Smuzhiyun pScrn->bitsPerPixel); 330*4882a593Smuzhiyun return FALSE; 331*4882a593Smuzhiyun@@ -591,14 +593,14 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 332*4882a593Smuzhiyun if (!miSetVisualTypes(pScrn->depth, 333*4882a593Smuzhiyun miGetDefaultVisualMask(pScrn->depth), 334*4882a593Smuzhiyun pScrn->rgbBits, pScrn->defaultVisual)) { 335*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex,X_ERROR,"visual type setup failed" 336*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"visual type setup failed" 337*4882a593Smuzhiyun " for %d bits per pixel [2]\n", 338*4882a593Smuzhiyun pScrn->bitsPerPixel); 339*4882a593Smuzhiyun return FALSE; 340*4882a593Smuzhiyun } 341*4882a593Smuzhiyun } 342*4882a593Smuzhiyun if (!miSetPixmapDepths()) { 343*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex,X_ERROR,"pixmap depth setup failed\n"); 344*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"pixmap depth setup failed\n"); 345*4882a593Smuzhiyun return FALSE; 346*4882a593Smuzhiyun } 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun@@ -607,10 +609,10 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 349*4882a593Smuzhiyun has a padding which is independent from the depth (controlfb) */ 350*4882a593Smuzhiyun pScrn->displayWidth = fbdevHWGetLineLength(pScrn) / 351*4882a593Smuzhiyun (pScrn->bitsPerPixel / 8); 352*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_INFO, "displayWidth = %d\n", pScrn->displayWidth); 353*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "displayWidth = %d\n", pScrn->displayWidth); 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun if (pScrn->displayWidth != pScrn->virtualX) { 356*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_INFO, 357*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, 358*4882a593Smuzhiyun "Pitch updated to %d after ModeInit\n", 359*4882a593Smuzhiyun pScrn->displayWidth); 360*4882a593Smuzhiyun } 361*4882a593Smuzhiyun@@ -633,7 +635,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 362*4882a593Smuzhiyun init_picture = 1; 363*4882a593Smuzhiyun break; 364*4882a593Smuzhiyun default: 365*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 366*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 367*4882a593Smuzhiyun "internal error: invalid number of bits per" 368*4882a593Smuzhiyun " pixel (%d) encountered in" 369*4882a593Smuzhiyun " imxScreenInit()\n", pScrn->bitsPerPixel); 370*4882a593Smuzhiyun@@ -644,7 +646,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 371*4882a593Smuzhiyun case FBDEVHW_INTERLEAVED_PLANES: 372*4882a593Smuzhiyun /* This should never happen ... 373*4882a593Smuzhiyun * we should check for this much much earlier ... */ 374*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 375*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 376*4882a593Smuzhiyun "internal error: interleaved planes are not yet " 377*4882a593Smuzhiyun "supported by the imx driver\n"); 378*4882a593Smuzhiyun ret = FALSE; 379*4882a593Smuzhiyun@@ -652,20 +654,20 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 380*4882a593Smuzhiyun case FBDEVHW_TEXT: 381*4882a593Smuzhiyun /* This should never happen ... 382*4882a593Smuzhiyun * we should check for this much much earlier ... */ 383*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 384*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 385*4882a593Smuzhiyun "internal error: text mode is not supported by the " 386*4882a593Smuzhiyun "imx driver\n"); 387*4882a593Smuzhiyun ret = FALSE; 388*4882a593Smuzhiyun break; 389*4882a593Smuzhiyun case FBDEVHW_VGA_PLANES: 390*4882a593Smuzhiyun /* Not supported yet */ 391*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 392*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 393*4882a593Smuzhiyun "internal error: EGA/VGA Planes are not yet " 394*4882a593Smuzhiyun "supported by the imx driver\n"); 395*4882a593Smuzhiyun ret = FALSE; 396*4882a593Smuzhiyun break; 397*4882a593Smuzhiyun default: 398*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 399*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 400*4882a593Smuzhiyun "internal error: unrecognised hardware type (%d) " 401*4882a593Smuzhiyun "encountered in imxScreenInit()\n", type); 402*4882a593Smuzhiyun ret = FALSE; 403*4882a593Smuzhiyun@@ -699,7 +701,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 404*4882a593Smuzhiyun /* INIT ACCELERATION BEFORE INIT FOR BACKING STORE & SOFTWARE CURSOR */ 405*4882a593Smuzhiyun if (fPtr->useAccel) { 406*4882a593Smuzhiyun 407*4882a593Smuzhiyun- if (!imxExaZ160Setup(scrnIndex, pScreen)) { 408*4882a593Smuzhiyun+ if (!imxExaZ160Setup(pScrn->scrnIndex, pScreen)) { 409*4882a593Smuzhiyun 410*4882a593Smuzhiyun fPtr->useAccel = FALSE; 411*4882a593Smuzhiyun } 412*4882a593Smuzhiyun@@ -731,29 +733,29 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 413*4882a593Smuzhiyun /* XXX It would be simpler to use miCreateDefColormap() in all cases. */ 414*4882a593Smuzhiyun case FBDEVHW_PACKED_PIXELS: 415*4882a593Smuzhiyun if (!miCreateDefColormap(pScreen)) { 416*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 417*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 418*4882a593Smuzhiyun "internal error: miCreateDefColormap failed " 419*4882a593Smuzhiyun "in imxScreenInit()\n"); 420*4882a593Smuzhiyun return FALSE; 421*4882a593Smuzhiyun } 422*4882a593Smuzhiyun break; 423*4882a593Smuzhiyun case FBDEVHW_INTERLEAVED_PLANES: 424*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 425*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 426*4882a593Smuzhiyun "internal error: interleaved planes are not yet " 427*4882a593Smuzhiyun "supported by the imx driver\n"); 428*4882a593Smuzhiyun return FALSE; 429*4882a593Smuzhiyun case FBDEVHW_TEXT: 430*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 431*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 432*4882a593Smuzhiyun "internal error: text mode is not supported by " 433*4882a593Smuzhiyun "the imx driver\n"); 434*4882a593Smuzhiyun return FALSE; 435*4882a593Smuzhiyun case FBDEVHW_VGA_PLANES: 436*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 437*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 438*4882a593Smuzhiyun "internal error: EGA/VGA planes are not yet " 439*4882a593Smuzhiyun "supported by the imx driver\n"); 440*4882a593Smuzhiyun return FALSE; 441*4882a593Smuzhiyun default: 442*4882a593Smuzhiyun- xf86DrvMsg(scrnIndex, X_ERROR, 443*4882a593Smuzhiyun+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 444*4882a593Smuzhiyun "internal error: unrecognised imx hardware type " 445*4882a593Smuzhiyun "(%d) encountered in imxScreenInit()\n", type); 446*4882a593Smuzhiyun return FALSE; 447*4882a593Smuzhiyun@@ -782,7 +784,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) 448*4882a593Smuzhiyun } 449*4882a593Smuzhiyun #endif 450*4882a593Smuzhiyun 451*4882a593Smuzhiyun- if (!imxDisplayFinishScreenInit(scrnIndex, pScreen)) { 452*4882a593Smuzhiyun+ if (!imxDisplayFinishScreenInit(pScrn->scrnIndex, pScreen)) { 453*4882a593Smuzhiyun return FALSE; 454*4882a593Smuzhiyun } 455*4882a593Smuzhiyun 456*4882a593Smuzhiyun@@ -810,7 +812,7 @@ IMXGetPixmapProperties( 457*4882a593Smuzhiyun } 458*4882a593Smuzhiyun 459*4882a593Smuzhiyun /* Access screen associated with this pixmap. */ 460*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; 461*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); 462*4882a593Smuzhiyun 463*4882a593Smuzhiyun /* Check if the screen associated with this pixmap has IMX driver. */ 464*4882a593Smuzhiyun if (0 != strcmp(IMX_DRIVER_NAME, pScrn->driverName)) { 465*4882a593Smuzhiyundiff --git a/src/imx_exa_offscreen.c b/src/imx_exa_offscreen.c 466*4882a593Smuzhiyunindex 3a5c24d..0fbe2fc 100644 467*4882a593Smuzhiyun--- a/src/imx_exa_offscreen.c 468*4882a593Smuzhiyun+++ b/src/imx_exa_offscreen.c 469*4882a593Smuzhiyun@@ -79,7 +79,7 @@ static void 470*4882a593Smuzhiyun imxExaOffscreenValidate (ScreenPtr pScreen) 471*4882a593Smuzhiyun { 472*4882a593Smuzhiyun /* Access the driver specific data. */ 473*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 474*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 475*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 476*4882a593Smuzhiyun ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); 477*4882a593Smuzhiyun ExaOffscreenArea *prev = 0, *area; 478*4882a593Smuzhiyun@@ -135,7 +135,7 @@ imxExaOffscreenMerge (ImxExaPtr imxExaPtr, ExaOffscreenArea *area) 479*4882a593Smuzhiyun ExaOffscreenArea * 480*4882a593Smuzhiyun imxExaOffscreenFree (ScreenPtr pScreen, ExaOffscreenArea *area) 481*4882a593Smuzhiyun { 482*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 483*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 484*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 485*4882a593Smuzhiyun ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); 486*4882a593Smuzhiyun ExaOffscreenArea *next = area->next; 487*4882a593Smuzhiyun@@ -281,7 +281,7 @@ imxExaOffscreenAlloc (ScreenPtr pScreen, int size, int align, 488*4882a593Smuzhiyun pointer privData) 489*4882a593Smuzhiyun { 490*4882a593Smuzhiyun ExaOffscreenArea *area; 491*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 492*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 493*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 494*4882a593Smuzhiyun ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); 495*4882a593Smuzhiyun int real_size = 0, largest_avail = 0; 496*4882a593Smuzhiyun@@ -418,7 +418,7 @@ imxExaOffscreenSwapIn (ScreenPtr pScreen) 497*4882a593Smuzhiyun Bool 498*4882a593Smuzhiyun imxExaOffscreenInit (ScreenPtr pScreen) 499*4882a593Smuzhiyun { 500*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 501*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 502*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 503*4882a593Smuzhiyun ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); 504*4882a593Smuzhiyun ExaOffscreenArea *area; 505*4882a593Smuzhiyun@@ -453,7 +453,7 @@ imxExaOffscreenInit (ScreenPtr pScreen) 506*4882a593Smuzhiyun void 507*4882a593Smuzhiyun imxExaOffscreenFini (ScreenPtr pScreen) 508*4882a593Smuzhiyun { 509*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 510*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 511*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 512*4882a593Smuzhiyun ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); 513*4882a593Smuzhiyun ExaOffscreenArea *area; 514*4882a593Smuzhiyun@@ -472,7 +472,7 @@ imxExaOffscreenFini (ScreenPtr pScreen) 515*4882a593Smuzhiyun void 516*4882a593Smuzhiyun imxExaOffscreenSwapOut (ScreenPtr pScreen) 517*4882a593Smuzhiyun { 518*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 519*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 520*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 521*4882a593Smuzhiyun ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); 522*4882a593Smuzhiyun 523*4882a593Smuzhiyundiff --git a/src/imx_exa_z160.c b/src/imx_exa_z160.c 524*4882a593Smuzhiyunindex fb718e0..3d0bc96 100644 525*4882a593Smuzhiyun--- a/src/imx_exa_z160.c 526*4882a593Smuzhiyun+++ b/src/imx_exa_z160.c 527*4882a593Smuzhiyun@@ -32,6 +32,7 @@ 528*4882a593Smuzhiyun #include <errno.h> 529*4882a593Smuzhiyun #include <fcntl.h> 530*4882a593Smuzhiyun 531*4882a593Smuzhiyun+#include "compat-api.h" 532*4882a593Smuzhiyun 533*4882a593Smuzhiyun /* Set if handles pixmap allocation and migration, i.e, EXA_HANDLES_PIXMAPS */ 534*4882a593Smuzhiyun #define IMX_EXA_ENABLE_HANDLES_PIXMAPS \ 535*4882a593Smuzhiyun@@ -299,7 +300,7 @@ imxExaZ160GetPixmapAddress(PixmapPtr pPixmap) 536*4882a593Smuzhiyun return fPixmapPtr->ptr; 537*4882a593Smuzhiyun #else 538*4882a593Smuzhiyun /* Access screen associated with this pixmap. */ 539*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; 540*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); 541*4882a593Smuzhiyun 542*4882a593Smuzhiyun /* Access driver specific data */ 543*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 544*4882a593Smuzhiyun@@ -344,7 +345,7 @@ imxExaZ160GetPixmapProperties( 545*4882a593Smuzhiyun #else 546*4882a593Smuzhiyun 547*4882a593Smuzhiyun /* Access screen associated with this pixmap. */ 548*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; 549*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); 550*4882a593Smuzhiyun 551*4882a593Smuzhiyun /* Make sure pixmap is in framebuffer */ 552*4882a593Smuzhiyun if (!exaDrawableIsOffscreen(&(pPixmap->drawable))) { 553*4882a593Smuzhiyun@@ -856,7 +857,7 @@ imxExaZ160SyncIfBusyPixmap(PixmapPtr pPixmap) 554*4882a593Smuzhiyun { 555*4882a593Smuzhiyun /* Access screen associated with this pixmap. */ 556*4882a593Smuzhiyun ScreenPtr pScreen = pPixmap->drawable.pScreen; 557*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 558*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 559*4882a593Smuzhiyun 560*4882a593Smuzhiyun /* Access driver specific data for screen. */ 561*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 562*4882a593Smuzhiyun@@ -924,7 +925,7 @@ imxExaZ160CreatePixmap2(ScreenPtr pScreen, int width, int height, 563*4882a593Smuzhiyun } 564*4882a593Smuzhiyun 565*4882a593Smuzhiyun /* Access the driver specific data. */ 566*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 567*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 568*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 569*4882a593Smuzhiyun ImxExaZ160Ptr fPtr = IMXEXAZ160PTR(imxPtr); 570*4882a593Smuzhiyun 571*4882a593Smuzhiyun@@ -1028,7 +1029,7 @@ imxExaZ160DestroyPixmap(ScreenPtr pScreen, void *driverPriv) 572*4882a593Smuzhiyun ImxExaPixmapPtr fPixmapPtr = (ImxExaPixmapPtr)driverPriv; 573*4882a593Smuzhiyun 574*4882a593Smuzhiyun /* Access the driver specific data. */ 575*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 576*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 577*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 578*4882a593Smuzhiyun ImxExaZ160Ptr fPtr = IMXEXAZ160PTR(imxPtr); 579*4882a593Smuzhiyun 580*4882a593Smuzhiyun@@ -1068,7 +1069,7 @@ imxExaZ160ModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, 581*4882a593Smuzhiyun } 582*4882a593Smuzhiyun 583*4882a593Smuzhiyun /* Access screen associated with this pixmap */ 584*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; 585*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); 586*4882a593Smuzhiyun 587*4882a593Smuzhiyun /* Access driver specific data */ 588*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 589*4882a593Smuzhiyun@@ -1194,7 +1195,7 @@ imxExaZ160TrackBusyPixmap(ImxExaZ160Ptr fPtr, PixmapPtr pPixmap) 590*4882a593Smuzhiyun static void 591*4882a593Smuzhiyun imxExaZ160WaitMarker(ScreenPtr pScreen, int marker) 592*4882a593Smuzhiyun { 593*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 594*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 595*4882a593Smuzhiyun 596*4882a593Smuzhiyun /* Access driver specific data associated with the screen. */ 597*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 598*4882a593Smuzhiyun@@ -1249,7 +1250,7 @@ imxExaZ160PrepareSolid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg) 599*4882a593Smuzhiyun } 600*4882a593Smuzhiyun 601*4882a593Smuzhiyun /* Access screen associated with this pixmap */ 602*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; 603*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); 604*4882a593Smuzhiyun 605*4882a593Smuzhiyun /* Access driver specific data */ 606*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 607*4882a593Smuzhiyun@@ -1352,7 +1353,7 @@ static void 608*4882a593Smuzhiyun imxExaZ160Solid(PixmapPtr pPixmap, int x1, int y1, int x2, int y2) 609*4882a593Smuzhiyun { 610*4882a593Smuzhiyun /* Access screen associated with this pixmap */ 611*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; 612*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun /* Access driver specific data */ 615*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 616*4882a593Smuzhiyun@@ -1423,7 +1424,7 @@ static void 617*4882a593Smuzhiyun imxExaZ160DoneSolid(PixmapPtr pPixmap) 618*4882a593Smuzhiyun { 619*4882a593Smuzhiyun /* Access screen associated with this pixmap */ 620*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; 621*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); 622*4882a593Smuzhiyun 623*4882a593Smuzhiyun /* Access driver specific data */ 624*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 625*4882a593Smuzhiyun@@ -1485,7 +1486,7 @@ imxExaZ160PrepareCopy( 626*4882a593Smuzhiyun } 627*4882a593Smuzhiyun 628*4882a593Smuzhiyun /* Access the screen associated with this pixmap. */ 629*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; 630*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); 631*4882a593Smuzhiyun 632*4882a593Smuzhiyun /* Access driver specific data */ 633*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 634*4882a593Smuzhiyun@@ -1599,7 +1600,7 @@ static void 635*4882a593Smuzhiyun imxExaZ160Copy(PixmapPtr pPixmapDst, int srcX, int srcY, int dstX, int dstY, int width, int height) 636*4882a593Smuzhiyun { 637*4882a593Smuzhiyun /* Access screen associated with dst pixmap */ 638*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; 639*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); 640*4882a593Smuzhiyun 641*4882a593Smuzhiyun /* Access driver specific data */ 642*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 643*4882a593Smuzhiyun@@ -1661,7 +1662,7 @@ static void 644*4882a593Smuzhiyun imxExaZ160DoneCopy(PixmapPtr pPixmapDst) 645*4882a593Smuzhiyun { 646*4882a593Smuzhiyun /* Access screen associated with this pixmap */ 647*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; 648*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); 649*4882a593Smuzhiyun 650*4882a593Smuzhiyun /* Access driver specific data */ 651*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 652*4882a593Smuzhiyun@@ -1770,7 +1771,7 @@ imxExaZ160CheckComposite(int op, PicturePtr pPictureSrc, PicturePtr pPictureMask 653*4882a593Smuzhiyun } 654*4882a593Smuzhiyun 655*4882a593Smuzhiyun /* Access screen associated with dst pixmap (same screen as for src pixmap). */ 656*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; 657*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); 658*4882a593Smuzhiyun 659*4882a593Smuzhiyun /* Check the number of entities, and fail if it isn't one. */ 660*4882a593Smuzhiyun if (pScrn->numEntities != 1) { 661*4882a593Smuzhiyun@@ -1987,7 +1988,7 @@ imxExaZ160PrepareComposite( 662*4882a593Smuzhiyun { 663*4882a593Smuzhiyun /* Access screen associated with dst pixmap. */ 664*4882a593Smuzhiyun /* Should be same screen as for src pixmap. */ 665*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; 666*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); 667*4882a593Smuzhiyun 668*4882a593Smuzhiyun /* NOTE - many preconditions already verified in CheckComposite. */ 669*4882a593Smuzhiyun 670*4882a593Smuzhiyun@@ -2196,7 +2197,7 @@ imxExaZ160Composite( 671*4882a593Smuzhiyun int height) 672*4882a593Smuzhiyun { 673*4882a593Smuzhiyun /* Access screen associated with dst pixmap */ 674*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; 675*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); 676*4882a593Smuzhiyun 677*4882a593Smuzhiyun /* Access driver specific data */ 678*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 679*4882a593Smuzhiyun@@ -2275,7 +2276,7 @@ static void 680*4882a593Smuzhiyun imxExaZ160DoneComposite(PixmapPtr pPixmapDst) 681*4882a593Smuzhiyun { 682*4882a593Smuzhiyun /* Access screen associated with this pixmap */ 683*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; 684*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); 685*4882a593Smuzhiyun 686*4882a593Smuzhiyun /* Access driver specific data */ 687*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 688*4882a593Smuzhiyun@@ -2323,7 +2324,7 @@ imxExaZ160UploadToScreen( 689*4882a593Smuzhiyun 690*4882a593Smuzhiyun /* Access screen associated with this pixmap */ 691*4882a593Smuzhiyun ScreenPtr pScreen = pPixmapDst->drawable.pScreen; 692*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 693*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 694*4882a593Smuzhiyun 695*4882a593Smuzhiyun /* Access driver specific data */ 696*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 697*4882a593Smuzhiyun@@ -2381,7 +2382,7 @@ imxExaZ160DownloadFromScreen( 698*4882a593Smuzhiyun 699*4882a593Smuzhiyun /* Access screen associated with this pixmap */ 700*4882a593Smuzhiyun ScreenPtr pScreen = pPixmapSrc->drawable.pScreen; 701*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 702*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 703*4882a593Smuzhiyun 704*4882a593Smuzhiyun /* Access driver specific data */ 705*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 706*4882a593Smuzhiyun@@ -2412,9 +2413,9 @@ imxExaZ160DownloadFromScreen( 707*4882a593Smuzhiyun } 708*4882a593Smuzhiyun 709*4882a593Smuzhiyun Bool 710*4882a593Smuzhiyun-imxExaZ160CloseScreen(int scrnIndex, ScreenPtr pScreen) 711*4882a593Smuzhiyun+imxExaZ160CloseScreen(CLOSE_SCREEN_ARGS_DECL) 712*4882a593Smuzhiyun { 713*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 714*4882a593Smuzhiyun+ CLOSE_SCREEN_DECL_ScrnInfoPtr; 715*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 716*4882a593Smuzhiyun 717*4882a593Smuzhiyun ImxExaZ160Ptr fPtr = IMXEXAZ160PTR(imxPtr); 718*4882a593Smuzhiyun@@ -2504,7 +2505,7 @@ imxExaZ160CloseScreen(int scrnIndex, ScreenPtr pScreen) 719*4882a593Smuzhiyun /* Install our CloseScreen function so that it gets called. */ 720*4882a593Smuzhiyun if (NULL != pScreen->CloseScreen) { 721*4882a593Smuzhiyun 722*4882a593Smuzhiyun- return (*pScreen->CloseScreen)(scrnIndex, pScreen); 723*4882a593Smuzhiyun+ return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); 724*4882a593Smuzhiyun } 725*4882a593Smuzhiyun 726*4882a593Smuzhiyun return TRUE; 727*4882a593Smuzhiyun@@ -2514,7 +2515,7 @@ Bool 728*4882a593Smuzhiyun imxExaZ160Setup(int scrnIndex, ScreenPtr pScreen) 729*4882a593Smuzhiyun { 730*4882a593Smuzhiyun /* Access the screen info and then private data structures. */ 731*4882a593Smuzhiyun- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 732*4882a593Smuzhiyun+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); 733*4882a593Smuzhiyun ImxPtr imxPtr = IMXPTR(pScrn); 734*4882a593Smuzhiyun 735*4882a593Smuzhiyun /* Private data structure must not already be in use. */ 736*4882a593Smuzhiyun@@ -2582,7 +2583,7 @@ imxExaZ160Setup(int scrnIndex, ScreenPtr pScreen) 737*4882a593Smuzhiyun 738*4882a593Smuzhiyun xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 739*4882a593Smuzhiyun "Initialize Z160 interfaces failed.\n"); 740*4882a593Smuzhiyun- imxExaZ160CloseScreen(scrnIndex, pScreen); 741*4882a593Smuzhiyun+ imxExaZ160CloseScreen(CLOSE_SCREEN_ARGS); 742*4882a593Smuzhiyun return FALSE; 743*4882a593Smuzhiyun } 744*4882a593Smuzhiyun 745*4882a593Smuzhiyun@@ -2592,7 +2593,7 @@ imxExaZ160Setup(int scrnIndex, ScreenPtr pScreen) 746*4882a593Smuzhiyun 747*4882a593Smuzhiyun xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 748*4882a593Smuzhiyun "Allocate EXA driver structure.\n"); 749*4882a593Smuzhiyun- imxExaZ160CloseScreen(scrnIndex, pScreen); 750*4882a593Smuzhiyun+ imxExaZ160CloseScreen(CLOSE_SCREEN_ARGS); 751*4882a593Smuzhiyun return FALSE; 752*4882a593Smuzhiyun } 753*4882a593Smuzhiyun 754*4882a593Smuzhiyun@@ -2657,7 +2658,7 @@ imxExaZ160Setup(int scrnIndex, ScreenPtr pScreen) 755*4882a593Smuzhiyun if (!exaDriverInit(pScreen, exaDriverPtr)) { 756*4882a593Smuzhiyun 757*4882a593Smuzhiyun xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "EXA initialization failed.\n"); 758*4882a593Smuzhiyun- imxExaZ160CloseScreen(scrnIndex, pScreen); 759*4882a593Smuzhiyun+ imxExaZ160CloseScreen(CLOSE_SCREEN_ARGS); 760*4882a593Smuzhiyun return FALSE; 761*4882a593Smuzhiyun } 762*4882a593Smuzhiyun fPtr->imxExaRec.exaDriverPtr = exaDriverPtr; 763*4882a593Smuzhiyundiff --git a/src/imx_xv_ipu.c b/src/imx_xv_ipu.c 764*4882a593Smuzhiyunindex a517742..fc8a827 100644 765*4882a593Smuzhiyun--- a/src/imx_xv_ipu.c 766*4882a593Smuzhiyun+++ b/src/imx_xv_ipu.c 767*4882a593Smuzhiyun@@ -398,7 +398,7 @@ xf86XVFillKeyHelper1 (ScreenPtr pScreen, CARD32 key, RegionPtr clipboxes) 768*4882a593Smuzhiyun xRectangle *rects; 769*4882a593Smuzhiyun GCPtr gc; 770*4882a593Smuzhiyun 771*4882a593Smuzhiyun- if(!xf86Screens[pScreen->myNum]->vtSema) return; 772*4882a593Smuzhiyun+ if(!xf86ScreenToScrn(pScreen)->vtSema) return; 773*4882a593Smuzhiyun 774*4882a593Smuzhiyun gc = GetScratchGC(root->depth, pScreen); 775*4882a593Smuzhiyun pval[0] = key; 776*4882a593Smuzhiyun@@ -771,7 +771,7 @@ MXXVInitializeAdaptor 777*4882a593Smuzhiyun XF86VideoAdaptorPtr **pppAdaptor 778*4882a593Smuzhiyun ) 779*4882a593Smuzhiyun { 780*4882a593Smuzhiyun- ScreenPtr pScreen = screenInfo.screens[pScreenInfo->scrnIndex]; 781*4882a593Smuzhiyun+ ScreenPtr pScreen = xf86ScrnToScreen(pScreenInfo); 782*4882a593Smuzhiyun XF86VideoAdaptorPtr *ppAdaptor = NULL; 783*4882a593Smuzhiyun IMXPtr fPtr = IMXPTR(pScreenInfo); 784*4882a593Smuzhiyun int nAdaptor; 785*4882a593Smuzhiyun-- 786*4882a593Smuzhiyun1.7.10.4 787*4882a593Smuzhiyun 788