161 lines
4.9 KiB
Diff
161 lines
4.9 KiB
Diff
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
|
|
|