diff options
author | rern | 2022-04-25 12:51:41 +0000 |
---|---|---|
committer | rern | 2022-04-25 12:51:41 +0000 |
commit | dfeb39d523c848e6a0db8e9c2d37c8d49e08ea4d (patch) | |
tree | 6e9f7576d6e7a7a0b98d0b1e026daf788b620178 | |
download | aur-dfeb39d523c848e6a0db8e9c2d37c8d49e08ea4d.tar.gz |
Initial
-rw-r--r-- | .SRCINFO | 31 | ||||
-rw-r--r-- | 0001-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch | 156 | ||||
-rw-r--r-- | 0002-GCC-8-fix.patch | 33 | ||||
-rw-r--r-- | 0003-backStorage-fix.patch | 33 | ||||
-rw-r--r-- | PKGBUILD | 60 |
5 files changed, 313 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..e9dc252763b1 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,31 @@ +pkgbase = xf86-video-fbturbo + pkgdesc = X.org MALI video driver + pkgver = 0.4.0 + pkgrel = 1 + url = https://github.com/ssvb/xf86-video-fbturbo + arch = armv7h + arch = aarch64 + license = MIT + makedepends = xorg-server-devel + makedepends = X-ABI-VIDEODRV_VERSION>=24.0 + makedepends = git + provides = xf86-video-fbturbo + conflicts = xorg-server<1.20 + conflicts = X-ABI-VIDEODRV_VERSION<24 + options = !libtool + source = git+https://github.com/ssvb/xf86-video-fbturbo + source = 0001-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch + source = 0002-GCC-8-fix.patch + source = 0003-backStorage-fix.patch + sha256sums = SKIP + sha256sums = 0af499820e3ade74ea6518caa96ec19f39150b1678ad6b33b2a3774b5a9f2c64 + sha256sums = ccbd8f0d3fd9da180b2f5ab3be7284ec76e9dbf06762ec765e09a45c530d93bb + sha256sums = a8ca499527fc0da6177a7cca86badd021259e17b2d416bc7f7a6663821e90c12 + +pkgname = xf86-video-fbturbo + depends = xf86-input-evdev + depends = xf86-video-fbdev + depends = xf86-video-vesa + depends = xinput_calibrator + depends = xorg-server + depends = xorg-xinit diff --git a/0001-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch b/0001-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch new file mode 100644 index 000000000000..445f10d3b3bd --- /dev/null +++ b/0001-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch @@ -0,0 +1,156 @@ +From 5152fea67554f9fe8a6fcd194f88e31a47ec1381 Mon Sep 17 00:00:00 2001 +From: Adam Jackson <ajax@redhat.com> +Date: Wed, 21 May 2014 09:49:56 -0400 +Subject: [PATCH 1/2] 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> +--- + src/fbdev.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 71 insertions(+), 15 deletions(-) + +diff --git a/src/fbdev.c b/src/fbdev.c +index 2bbee6e..23ec855 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.16.2 diff --git a/0002-GCC-8-fix.patch b/0002-GCC-8-fix.patch new file mode 100644 index 000000000000..7d5e5ec0844d --- /dev/null +++ b/0002-GCC-8-fix.patch @@ -0,0 +1,33 @@ +From b0110d28c675dfc68ae8567c0b1712b187c7e61a Mon Sep 17 00:00:00 2001 +From: Kevin Mihelich <kevin@archlinuxarm.org> +Date: Thu, 17 May 2018 12:53:53 -0600 +Subject: [PATCH 2/2] GCC 8 fix + +--- + src/fbdev.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/fbdev.c b/src/fbdev.c +index 23ec855..76ca968 100644 +--- a/src/fbdev.c ++++ b/src/fbdev.c +@@ -1093,7 +1093,7 @@ FBDevScreenInit(SCREEN_INIT_ARGS_DECL) + fPtr->CloseScreen = pScreen->CloseScreen; + pScreen->CloseScreen = FBDevCloseScreen; + +-#if XV ++#ifdef XV + fPtr->SunxiVideo_private = NULL; + if (xf86ReturnOptValBool(fPtr->Options, OPTION_XV_OVERLAY, TRUE) && + fPtr->sunxi_disp_private) { +@@ -1183,7 +1183,7 @@ FBDevCloseScreen(CLOSE_SCREEN_ARGS_DECL) + fPtr->SunxiDispHardwareCursor_private = NULL; + } + +-#if XV ++#ifdef XV + if (fPtr->SunxiVideo_private) { + SunxiVideo_Close(pScreen); + free(fPtr->SunxiVideo_private); +-- +2.16.2 diff --git a/0003-backStorage-fix.patch b/0003-backStorage-fix.patch new file mode 100644 index 000000000000..df174c58b441 --- /dev/null +++ b/0003-backStorage-fix.patch @@ -0,0 +1,33 @@ +diff --git a/src/backing_store_tuner.c b/src/backing_store_tuner.c +index 067c05f..13f7ec3 100644 +--- a/src/backing_store_tuner.c ++++ b/src/backing_store_tuner.c +@@ -109,7 +109,7 @@ xPostValidateTree(WindowPtr pWin, WindowPtr pLayerWin, VTKind kind) + private->PostValidateTreeNestingLevel++; + + /* Disable backing store for the focus window */ +- if (!private->ForceBackingStore && focusWin->backStorage) { ++ if (!private->ForceBackingStore && (focusWin->backingStore != NotUseful)) { + DebugMsg("Disable backing store for the focus window 0x%x\n", + (unsigned int)focusWin->drawable.id); + pScreen->backingStoreSupport = Always; +@@ -125,7 +125,7 @@ xPostValidateTree(WindowPtr pWin, WindowPtr pLayerWin, VTKind kind) + /* And enable backing store for all the other children of root */ + curWin = pScreen->root->firstChild; + while (curWin) { +- if (!curWin->backStorage && (private->ForceBackingStore || ++ if ((curWin->backingStore == NotUseful) && (private->ForceBackingStore || + curWin != focusWin)) { + DebugMsg("Enable backing store for window 0x%x\n", + (unsigned int)curWin->drawable.id); +@@ -158,7 +158,7 @@ xReparentWindow(WindowPtr pWin, WindowPtr pPriorParent) + } + + /* We only want backing store set for direct children of root */ +- if (pPriorParent == pScreen->root && pWin->backStorage) { ++ if (pPriorParent == pScreen->root && (pWin->backingStore != NotUseful)) { + DebugMsg("Reparent window 0x%x from root, disabling backing store\n", + (unsigned int)pWin->drawable.id); + pScreen->backingStoreSupport = Always; +-- +2.16.2 diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..806de8e00b20 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,60 @@ +# based on: https://gitlab.manjaro.org/manjaro-arm/packages/community/xf86-video-fbturbo-git/-/tree/master +# added: fix.patch (from: https://archlinuxarm.org/forum/viewtopic.php?f=15&t=15704#p68372) +# Maintainer: rernrern@gmail.com + +pkgname=xf86-video-fbturbo +pkgver=0.4.0 +pkgrel=1 +pkgdesc='X.org MALI video driver' +arch=('armv7h' 'aarch64') +url="https://github.com/ssvb/xf86-video-fbturbo" +license=('MIT') +makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION>=24.0' 'git') +conflicts=('xorg-server<1.20' 'X-ABI-VIDEODRV_VERSION<24') +options=('!libtool') +provides=('xf86-video-fbturbo') +source=('git+https://github.com/ssvb/xf86-video-fbturbo' + '0001-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch' + '0002-GCC-8-fix.patch' + '0003-backStorage-fix.patch') +sha256sums=('SKIP' + '0af499820e3ade74ea6518caa96ec19f39150b1678ad6b33b2a3774b5a9f2c64' + 'ccbd8f0d3fd9da180b2f5ab3be7284ec76e9dbf06762ec765e09a45c530d93bb' + 'a8ca499527fc0da6177a7cca86badd021259e17b2d416bc7f7a6663821e90c12') + +prepare() { + cd "$srcdir/$pkgname" + patch -p1 -i ../0001-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch + patch -p1 -i ../0002-GCC-8-fix.patch + patch -p1 -i ../0003-backStorage-fix.patch +} + +build() { + cd "$srcdir/$pkgname" + + # Since pacman 5.0.2-2, hardened flags are now enabled in makepkg.conf + # With them, module fail to load with undefined symbol. + # See https://bugs.archlinux.org/task/55102 / https://bugs.archlinux.org/task/54845 + export CFLAGS=${CFLAGS/-fno-plt} + export CXXFLAGS=${CXXFLAGS/-fno-plt} + export LDFLAGS=${LDFLAGS/,-z,now} + + ./autogen.sh + ./configure --prefix=/usr + make +} + +package() { + depends=(xf86-input-evdev + xf86-video-fbdev + xf86-video-vesa + xinput_calibrator + xorg-server + xorg-xinit) + cd "$srcdir/$pkgname" + mkdir -p "$pkgdir/etc/X11/xorg.conf.d/" + cp "xorg.conf" "$pkgdir/etc/X11/xorg.conf.d/99-fbturbo.conf" + make DESTDIR="$pkgdir/" install + install -m755 -d "$pkgdir/usr/share/licenses/$pkgname" + install -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/" +} |