| From 2186a4e5ed6b8b8f24ebd4d2045df10d1f895999 Mon Sep 17 00:00:00 2001 |
| From: Adam Jackson <ajax@redhat.com> |
| Date: Wed, 21 May 2014 09:49:56 -0400 |
| Subject: [PATCH] Use own thunk functions instead of fbdevHW*Weak |
| |
| I plan to remove the Weak functions from a future server. |
| |
| Signed-off-by: Adam Jackson <ajax@redhat.com> |
| [Upstream https://gitlab.freedesktop.org/xorg/driver/xf86-video-fbdev/-/commit/2673e727063fe28310836f1e6e9eda552930218a |
| ported to xf86-video-fbturbo] |
| Signed-off-by: Peter Seiderer <ps.report@gmx.net> |
| --- |
| src/fbdev.c | 86 +++++++++++++++++++++++++++++++++++++++++++---------- |
| 1 file changed, 71 insertions(+), 15 deletions(-) |
| |
| diff --git a/src/fbdev.c b/src/fbdev.c |
| index 90d9f39..81bd1fb 100644 |
| --- a/src/fbdev.c |
| +++ b/src/fbdev.c |
| @@ -269,6 +269,35 @@ FBDevIdentify(int flags) |
| xf86PrintChipsets(FBDEV_NAME, "driver for framebuffer", FBDevChipsets); |
| } |
| |
| +static Bool |
| +fbdevSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode) |
| +{ |
| + return fbdevHWSwitchMode(pScrn, mode); |
| +} |
| + |
| +static void |
| +fbdevAdjustFrame(ScrnInfoPtr pScrn, int x, int y) |
| +{ |
| + fbdevHWAdjustFrame(pScrn, x, y); |
| +} |
| + |
| +static Bool |
| +fbdevEnterVT(ScrnInfoPtr pScrn) |
| +{ |
| + return fbdevHWEnterVT(pScrn); |
| +} |
| + |
| +static void |
| +fbdevLeaveVT(ScrnInfoPtr pScrn) |
| +{ |
| + fbdevHWLeaveVT(pScrn); |
| +} |
| + |
| +static ModeStatus |
| +fbdevValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode, Bool verbose, int flags) |
| +{ |
| + return fbdevHWValidMode(pScrn, mode, verbose, flags); |
| +} |
| |
| #ifdef XSERVER_LIBPCIACCESS |
| static Bool FBDevPciProbe(DriverPtr drv, int entity_num, |
| @@ -294,11 +323,11 @@ static Bool FBDevPciProbe(DriverPtr drv, int entity_num, |
| pScrn->Probe = FBDevProbe; |
| pScrn->PreInit = FBDevPreInit; |
| pScrn->ScreenInit = FBDevScreenInit; |
| - pScrn->SwitchMode = fbdevHWSwitchModeWeak(); |
| - pScrn->AdjustFrame = fbdevHWAdjustFrameWeak(); |
| - pScrn->EnterVT = fbdevHWEnterVTWeak(); |
| - pScrn->LeaveVT = fbdevHWLeaveVTWeak(); |
| - pScrn->ValidMode = fbdevHWValidModeWeak(); |
| + pScrn->SwitchMode = fbdevSwitchMode; |
| + pScrn->AdjustFrame = fbdevAdjustFrame; |
| + pScrn->EnterVT = fbdevEnterVT; |
| + pScrn->LeaveVT = fbdevLeaveVT; |
| + pScrn->ValidMode = fbdevValidMode; |
| |
| xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, |
| "claimed PCI slot %d@%d:%d:%d\n", |
| @@ -411,11 +440,11 @@ FBDevProbe(DriverPtr drv, int flags) |
| pScrn->Probe = FBDevProbe; |
| pScrn->PreInit = FBDevPreInit; |
| pScrn->ScreenInit = FBDevScreenInit; |
| - pScrn->SwitchMode = fbdevHWSwitchModeWeak(); |
| - pScrn->AdjustFrame = fbdevHWAdjustFrameWeak(); |
| - pScrn->EnterVT = fbdevHWEnterVTWeak(); |
| - pScrn->LeaveVT = fbdevHWLeaveVTWeak(); |
| - pScrn->ValidMode = fbdevHWValidModeWeak(); |
| + pScrn->SwitchMode = fbdevSwitchMode; |
| + pScrn->AdjustFrame = fbdevAdjustFrame; |
| + pScrn->EnterVT = fbdevEnterVT; |
| + pScrn->LeaveVT = fbdevLeaveVT; |
| + pScrn->ValidMode = fbdevValidMode; |
| |
| xf86DrvMsg(pScrn->scrnIndex, X_INFO, |
| "using %s\n", dev ? dev : "default device"); |
| @@ -656,6 +685,17 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags) |
| return TRUE; |
| } |
| |
| +static void |
| +fbdevUpdateRotatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) |
| +{ |
| + shadowUpdateRotatePacked(pScreen, pBuf); |
| +} |
| + |
| +static void |
| +fbdevUpdatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) |
| +{ |
| + shadowUpdatePacked(pScreen, pBuf); |
| +} |
| |
| static Bool |
| FBDevCreateScreenResources(ScreenPtr pScreen) |
| @@ -675,7 +715,7 @@ FBDevCreateScreenResources(ScreenPtr pScreen) |
| pPixmap = pScreen->GetScreenPixmap(pScreen); |
| |
| if (!shadowAdd(pScreen, pPixmap, fPtr->rotate ? |
| - shadowUpdateRotatePackedWeak() : shadowUpdatePackedWeak(), |
| + fbdevUpdateRotatePacked : fbdevUpdatePacked, |
| FBDevWindowLinear, fPtr->rotate, NULL)) { |
| return FALSE; |
| } |
| @@ -699,6 +739,23 @@ FBDevShadowInit(ScreenPtr pScreen) |
| return TRUE; |
| } |
| |
| +static void |
| +fbdevLoadPalette(ScrnInfoPtr pScrn, int num, int *i, LOCO *col, VisualPtr pVis) |
| +{ |
| + fbdevHWLoadPalette(pScrn, num, i, col, pVis); |
| +} |
| + |
| +static void |
| +fbdevDPMSSet(ScrnInfoPtr pScrn, int mode, int flags) |
| +{ |
| + fbdevHWDPMSSet(pScrn, mode, flags); |
| +} |
| + |
| +static Bool |
| +fbdevSaveScreen(ScreenPtr pScreen, int mode) |
| +{ |
| + return fbdevHWSaveScreen(pScreen, mode); |
| +} |
| |
| static Bool |
| FBDevScreenInit(SCREEN_INIT_ARGS_DECL) |
| @@ -1025,13 +1082,12 @@ FBDevScreenInit(SCREEN_INIT_ARGS_DECL) |
| return FALSE; |
| } |
| flags = CMAP_PALETTED_TRUECOLOR; |
| - if(!xf86HandleColormaps(pScreen, 256, 8, fbdevHWLoadPaletteWeak(), |
| - NULL, flags)) |
| + if(!xf86HandleColormaps(pScreen, 256, 8, fbdevLoadPalette, NULL, flags)) |
| return FALSE; |
| |
| - xf86DPMSInit(pScreen, fbdevHWDPMSSetWeak(), 0); |
| + xf86DPMSInit(pScreen, fbdevDPMSSet, 0); |
| |
| - pScreen->SaveScreen = fbdevHWSaveScreenWeak(); |
| + pScreen->SaveScreen = fbdevSaveScreen; |
| |
| /* Wrap the current CloseScreen function */ |
| fPtr->CloseScreen = pScreen->CloseScreen; |
| -- |
| 2.31.1 |
| |