|
@@ -0,0 +1,160 @@
|
|
|
+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
|
|
|
+
|