Use xf86ScreenToScrn and xf86ScrnToScreen

Part of the new compat-api.h are ScreenPtr <-> ScrnInfoPtr APIs.
Let's use them.

Cherry-picked from:
https://chromium.googlesource.com/chromiumos%2Fthird_party%2Fxf86-video-armsoc
ec81d1ef9d774af1189a05e5ce5a091d729d994a

Change-Id: I347f5973eae02066b9a6fc27e07599e519b95abf
diff --git a/src/armsoc_dri2.c b/src/armsoc_dri2.c
index 1290b92..e5746d6 100644
--- a/src/armsoc_dri2.c
+++ b/src/armsoc_dri2.c
@@ -116,7 +116,7 @@
 canflip(DrawablePtr pDraw)
 {
 	ScreenPtr pScreen = pDraw->pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 
 	if (pARMSOC->NoFlip) {
@@ -163,7 +163,7 @@
 		unsigned int format)
 {
 	ScreenPtr pScreen = pDraw->pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCDRI2BufferRec *buf = calloc(1, sizeof(*buf));
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	PixmapPtr pPixmap = NULL;
@@ -272,7 +272,7 @@
 	 * instead (since it is at least refcntd)
 	 */
 	ScreenPtr pScreen = buf->pPixmaps[0]->drawable.pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	int numBuffers, i;
 
@@ -311,7 +311,7 @@
 		DRI2BufferPtr pDstBuffer, DRI2BufferPtr pSrcBuffer)
 {
 	ScreenPtr pScreen = pDraw->pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	DrawablePtr pSrcDraw = dri2draw(pDraw, pSrcBuffer);
 	DrawablePtr pDstDraw = dri2draw(pDraw, pDstBuffer);
 	RegionPtr pCopyClip;
@@ -351,7 +351,7 @@
 ARMSOCDRI2GetMSC(DrawablePtr pDraw, CARD64 *ust, CARD64 *msc)
 {
 	ScreenPtr pScreen = pDraw->pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	drmVBlank vbl = { .request = {
 		.type = DRM_VBLANK_RELATIVE,
@@ -406,7 +406,7 @@
 static Bool allocNextBuffer(DrawablePtr pDraw, PixmapPtr *ppPixmap,
 		uint32_t *name) {
 	ScreenPtr pScreen = pDraw->pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct armsoc_bo *bo;
 	PixmapPtr pPixmap;
 	int ret;
@@ -465,7 +465,7 @@
 static void nextBuffer(DrawablePtr pDraw, struct ARMSOCDRI2BufferRec *backBuf)
 {
 	ScreenPtr pScreen = pDraw->pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 
 	if (pARMSOC->driNumBufs <= 2) {
@@ -521,7 +521,7 @@
 ARMSOCDRI2SwapComplete(struct ARMSOCDRISwapCmd *cmd)
 {
 	ScreenPtr pScreen = cmd->pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	DrawablePtr pDraw = NULL;
 	int status;
@@ -597,7 +597,7 @@
 		DRI2SwapEventPtr func, void *data)
 {
 	ScreenPtr pScreen = pDraw->pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	struct ARMSOCDRI2BufferRec *src = ARMSOCBUF(pSrcBuffer);
 	struct ARMSOCDRI2BufferRec *dst = ARMSOCBUF(pDstBuffer);
@@ -745,7 +745,7 @@
 	CARD64 target_msc, CARD64 divisor, CARD64 remainder)
 {
 	ScreenPtr pScreen = pDraw->pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 
 	ERROR_MSG("not implemented");
 	return FALSE;
@@ -757,7 +757,7 @@
 Bool
 ARMSOCDRI2ScreenInit(ScreenPtr pScreen)
 {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	DRI2InfoRec info = {
 		.version         = 5,
@@ -791,7 +791,7 @@
 void
 ARMSOCDRI2CloseScreen(ScreenPtr pScreen)
 {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	while (pARMSOC->pending_flips > 0) {
 		DEBUG_MSG("waiting..");
diff --git a/src/armsoc_driver.c b/src/armsoc_driver.c
index 7b99863..c7a1624 100644
--- a/src/armsoc_driver.c
+++ b/src/armsoc_driver.c
@@ -793,7 +793,7 @@
 static void
 ARMSOCAccelInit(ScreenPtr pScreen)
 {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 
 	if (!pARMSOC->pARMSOCEXA)
@@ -814,7 +814,7 @@
 static Bool
 ARMSOCScreenInit(SCREEN_INIT_ARGS_DECL)
 {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 #ifndef XF86_SCRN_INTERFACE
 	int scrnIndex = pScrn->scrnIndex;
 #endif
@@ -1103,7 +1103,7 @@
 static Bool
 ARMSOCCreateScreenResources(ScreenPtr pScreen)
 {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 
 	swap(pARMSOC, pScreen, CreateScreenResources);
diff --git a/src/armsoc_driver.h b/src/armsoc_driver.h
index 8835e66..c4c1fd5 100644
--- a/src/armsoc_driver.h
+++ b/src/armsoc_driver.h
@@ -160,7 +160,7 @@
 /** Return a pointer to the driver's private structure. */
 #define ARMSOCPTR(p) ((struct ARMSOCRec *)((p)->driverPrivate))
 #define ARMSOCPTR_FROM_SCREEN(pScreen) \
-	((struct ARMSOCRec *)(xf86Screens[(pScreen)->myNum])->driverPrivate)
+	((struct ARMSOCRec *)(xf86ScreenToScrn(pScreen))->driverPrivate)
 
 #define wrap(priv, real, mem, func) {\
 		priv->Saved##mem = real->mem; \
diff --git a/src/armsoc_exa.c b/src/armsoc_exa.c
index 879c605..57e2a6d 100644
--- a/src/armsoc_exa.c
+++ b/src/armsoc_exa.c
@@ -80,7 +80,7 @@
 {
 	struct ARMSOCPixmapPrivRec *priv =
 				calloc(sizeof(struct ARMSOCPixmapPrivRec), 1);
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	enum armsoc_buf_type buf_type = ARMSOC_BO_NON_SCANOUT;
 
diff --git a/src/armsoc_exa.h b/src/armsoc_exa.h
index ec22108..002b351 100644
--- a/src/armsoc_exa.h
+++ b/src/armsoc_exa.h
@@ -73,7 +73,8 @@
 static inline ScrnInfoPtr
 pix2scrn(PixmapPtr pPixmap)
 {
-	return xf86Screens[(pPixmap)->drawable.pScreen->myNum];
+	ScreenPtr pScreen = (pPixmap)->drawable.pScreen;
+	return xf86ScreenToScrn(pScreen);
 }
 
 static inline PixmapPtr
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 5ef8a2e..a6edfa8 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -501,7 +501,7 @@
 Bool
 drmmode_cursor_init(ScreenPtr pScreen)
 {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	struct drmmode_rec *drmmode = drmmode_from_scrn(pScrn);
 	struct drmmode_cursor_rec *cursor;
@@ -617,7 +617,7 @@
 
 void drmmode_cursor_fini(ScreenPtr pScreen)
 {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct drmmode_rec *drmmode = drmmode_from_scrn(pScrn);
 	struct drmmode_cursor_rec *cursor = drmmode->cursor;
 
@@ -1425,7 +1425,8 @@
 int
 drmmode_page_flip(DrawablePtr draw, uint32_t fb_id, void *priv)
 {
-	ScrnInfoPtr pScrn = xf86Screens[draw->pScreen->myNum];
+	ScreenPtr pScreen = draw->pScreen;
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	struct ARMSOCRec *pARMSOC = ARMSOCPTR(pScrn);
 	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
 	struct drmmode_crtc_private_rec *crtc = config->crtc[0]->driver_private;
@@ -1499,7 +1500,7 @@
 
 	if (memcmp(&s.st_rdev, &udev_devnum, sizeof(dev_t)) == 0 &&
 			hotplug && atoi(hotplug) == 1) {
-		RRGetInfo(screenInfo.screens[pScrn->scrnIndex], TRUE);
+		RRGetInfo(xf86ScrnToScreen(pScrn), TRUE);
 	}
 	udev_device_unref(dev);
 }