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