kumquat-buildroot/package/x11r7/xdriver_xf86-video-fbturbo/0002-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch
Peter Seiderer 9dc2b4a4ee package/x11r7/xdriver_xf86-video-fbturbo: fix driver loading
Port two xf86-video-fbdev upstream patches to xf86-video-fbturbo fixing
incompatibility with latest xorg release and add mandatory module loading
section to installed xorg.conf:

- patch 0002-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch, fixes:
  [    12.638] (II) LoadModule: "fbturbo"
  [    12.639] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so
  [    12.642] (EE) Failed to load /usr/lib/xorg/modules/drivers/fbturbo_drv.so: /usr/lib/xorg/modules/drivers/fbturbo_drv.so: undefined symbol: shadowUpdatePackedWeak
  [    12.642] (EE) Failed to load module "fbturbo" (loader failed, 0)

- patch 0003-Update-for-1.20-ABI.patch, fixes:
  [    12.551] (II) LoadModule: "fbturbo"
  [    12.553] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so
  [    12.556] (EE) Failed to load /usr/lib/xorg/modules/drivers/fbturbo_drv.so: /usr/lib/xorg/modules/drivers/fbturbo_drv.so: undefined symbol: xf86DisableRandR
  [    12.556] (EE) Failed to load module "fbturbo" (loader failed, 0)

- patch 0004-xorg.conf-add-mandatory-modules-fb-shadow-fbdevhw.patch, fixes:

  module fbdevhw:
  [   303.906] (II) LoadModule: "fbturbo"
  [   303.906] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so
  [   303.907] (EE) Failed to load /usr/lib/xorg/modules/drivers/fbturbo_drv.so: /usr/lib/xorg/modules/drivers/fbturbo_drv.so: undefined symbol: fbdevHWSave
  [   303.907] (EE) Failed to load module "fbturbo" (loader failed, 0)
  [   303.907] (EE) No drivers available.

  module shadow:
  [   426.403] (II) LoadModule: "fbturbo"
  [   426.404] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so
  [   426.404] (EE) Failed to load /usr/lib/xorg/modules/drivers/fbturbo_drv.so: /usr/lib/xorg/modules/drivers/fbturbo_drv.so: undefined symbol: shadowRemove
  [   426.404] (EE) Failed to load module "fbturbo" (loader failed, 0)
  [   426.404] (EE) No drivers available.

  module fb:
  [   471.912] (II) LoadModule: "shadow"
  [   471.913] (II) Loading /usr/lib/xorg/modules/libshadow.so
  [   471.913] (EE) Failed to load /usr/lib/xorg/modules/libshadow.so: /usr/lib/xorg/modules/libshadow.so: undefined symbol: fbGetScreenPrivateKey
  [   471.913] (EE) Failed to load module "shadow" (loader failed, 0)

Fixes:
  - https://bugs.busybox.net/show_bug.cgi?id=13816
  - http://lists.busybox.net/pipermail/buildroot/2021-June/311763.html

Reported-by: Jürgen Wack <juergen.wack@gmx.de>
Reported-by: Derek T <derek.tata1@gmail.com>
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
[yann.morin.1998@free.fr: fix check-package errors]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-06-06 10:07:56 +02:00

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