1From 2186a4e5ed6b8b8f24ebd4d2045df10d1f895999 Mon Sep 17 00:00:00 2001 2From: Adam Jackson <ajax@redhat.com> 3Date: Wed, 21 May 2014 09:49:56 -0400 4Subject: [PATCH] Use own thunk functions instead of fbdevHW*Weak 5 6I plan to remove the Weak functions from a future server. 7 8Signed-off-by: Adam Jackson <ajax@redhat.com> 9[Upstream https://gitlab.freedesktop.org/xorg/driver/xf86-video-fbdev/-/commit/2673e727063fe28310836f1e6e9eda552930218a 10 ported to xf86-video-fbturbo] 11Signed-off-by: Peter Seiderer <ps.report@gmx.net> 12--- 13 src/fbdev.c | 86 +++++++++++++++++++++++++++++++++++++++++++---------- 14 1 file changed, 71 insertions(+), 15 deletions(-) 15 16diff --git a/src/fbdev.c b/src/fbdev.c 17index 90d9f39..81bd1fb 100644 18--- a/src/fbdev.c 19+++ b/src/fbdev.c 20@@ -269,6 +269,35 @@ FBDevIdentify(int flags) 21 xf86PrintChipsets(FBDEV_NAME, "driver for framebuffer", FBDevChipsets); 22 } 23 24+static Bool 25+fbdevSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode) 26+{ 27+ return fbdevHWSwitchMode(pScrn, mode); 28+} 29+ 30+static void 31+fbdevAdjustFrame(ScrnInfoPtr pScrn, int x, int y) 32+{ 33+ fbdevHWAdjustFrame(pScrn, x, y); 34+} 35+ 36+static Bool 37+fbdevEnterVT(ScrnInfoPtr pScrn) 38+{ 39+ return fbdevHWEnterVT(pScrn); 40+} 41+ 42+static void 43+fbdevLeaveVT(ScrnInfoPtr pScrn) 44+{ 45+ fbdevHWLeaveVT(pScrn); 46+} 47+ 48+static ModeStatus 49+fbdevValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode, Bool verbose, int flags) 50+{ 51+ return fbdevHWValidMode(pScrn, mode, verbose, flags); 52+} 53 54 #ifdef XSERVER_LIBPCIACCESS 55 static Bool FBDevPciProbe(DriverPtr drv, int entity_num, 56@@ -294,11 +323,11 @@ static Bool FBDevPciProbe(DriverPtr drv, int entity_num, 57 pScrn->Probe = FBDevProbe; 58 pScrn->PreInit = FBDevPreInit; 59 pScrn->ScreenInit = FBDevScreenInit; 60- pScrn->SwitchMode = fbdevHWSwitchModeWeak(); 61- pScrn->AdjustFrame = fbdevHWAdjustFrameWeak(); 62- pScrn->EnterVT = fbdevHWEnterVTWeak(); 63- pScrn->LeaveVT = fbdevHWLeaveVTWeak(); 64- pScrn->ValidMode = fbdevHWValidModeWeak(); 65+ pScrn->SwitchMode = fbdevSwitchMode; 66+ pScrn->AdjustFrame = fbdevAdjustFrame; 67+ pScrn->EnterVT = fbdevEnterVT; 68+ pScrn->LeaveVT = fbdevLeaveVT; 69+ pScrn->ValidMode = fbdevValidMode; 70 71 xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, 72 "claimed PCI slot %d@%d:%d:%d\n", 73@@ -411,11 +440,11 @@ FBDevProbe(DriverPtr drv, int flags) 74 pScrn->Probe = FBDevProbe; 75 pScrn->PreInit = FBDevPreInit; 76 pScrn->ScreenInit = FBDevScreenInit; 77- pScrn->SwitchMode = fbdevHWSwitchModeWeak(); 78- pScrn->AdjustFrame = fbdevHWAdjustFrameWeak(); 79- pScrn->EnterVT = fbdevHWEnterVTWeak(); 80- pScrn->LeaveVT = fbdevHWLeaveVTWeak(); 81- pScrn->ValidMode = fbdevHWValidModeWeak(); 82+ pScrn->SwitchMode = fbdevSwitchMode; 83+ pScrn->AdjustFrame = fbdevAdjustFrame; 84+ pScrn->EnterVT = fbdevEnterVT; 85+ pScrn->LeaveVT = fbdevLeaveVT; 86+ pScrn->ValidMode = fbdevValidMode; 87 88 xf86DrvMsg(pScrn->scrnIndex, X_INFO, 89 "using %s\n", dev ? dev : "default device"); 90@@ -656,6 +685,17 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags) 91 return TRUE; 92 } 93 94+static void 95+fbdevUpdateRotatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) 96+{ 97+ shadowUpdateRotatePacked(pScreen, pBuf); 98+} 99+ 100+static void 101+fbdevUpdatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) 102+{ 103+ shadowUpdatePacked(pScreen, pBuf); 104+} 105 106 static Bool 107 FBDevCreateScreenResources(ScreenPtr pScreen) 108@@ -675,7 +715,7 @@ FBDevCreateScreenResources(ScreenPtr pScreen) 109 pPixmap = pScreen->GetScreenPixmap(pScreen); 110 111 if (!shadowAdd(pScreen, pPixmap, fPtr->rotate ? 112- shadowUpdateRotatePackedWeak() : shadowUpdatePackedWeak(), 113+ fbdevUpdateRotatePacked : fbdevUpdatePacked, 114 FBDevWindowLinear, fPtr->rotate, NULL)) { 115 return FALSE; 116 } 117@@ -699,6 +739,23 @@ FBDevShadowInit(ScreenPtr pScreen) 118 return TRUE; 119 } 120 121+static void 122+fbdevLoadPalette(ScrnInfoPtr pScrn, int num, int *i, LOCO *col, VisualPtr pVis) 123+{ 124+ fbdevHWLoadPalette(pScrn, num, i, col, pVis); 125+} 126+ 127+static void 128+fbdevDPMSSet(ScrnInfoPtr pScrn, int mode, int flags) 129+{ 130+ fbdevHWDPMSSet(pScrn, mode, flags); 131+} 132+ 133+static Bool 134+fbdevSaveScreen(ScreenPtr pScreen, int mode) 135+{ 136+ return fbdevHWSaveScreen(pScreen, mode); 137+} 138 139 static Bool 140 FBDevScreenInit(SCREEN_INIT_ARGS_DECL) 141@@ -1025,13 +1082,12 @@ FBDevScreenInit(SCREEN_INIT_ARGS_DECL) 142 return FALSE; 143 } 144 flags = CMAP_PALETTED_TRUECOLOR; 145- if(!xf86HandleColormaps(pScreen, 256, 8, fbdevHWLoadPaletteWeak(), 146- NULL, flags)) 147+ if(!xf86HandleColormaps(pScreen, 256, 8, fbdevLoadPalette, NULL, flags)) 148 return FALSE; 149 150- xf86DPMSInit(pScreen, fbdevHWDPMSSetWeak(), 0); 151+ xf86DPMSInit(pScreen, fbdevDPMSSet, 0); 152 153- pScreen->SaveScreen = fbdevHWSaveScreenWeak(); 154+ pScreen->SaveScreen = fbdevSaveScreen; 155 156 /* Wrap the current CloseScreen function */ 157 fPtr->CloseScreen = pScreen->CloseScreen; 158-- 1592.31.1 160 161