mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-11-07 18:07:08 -08:00
x11-drivers/ati-drivers: Remove package
Bug: https://bugs.gentoo.org/582406
This commit is contained in:
@@ -1,2 +0,0 @@
|
||||
DIST radeon-crimson-15.12-15.302-151217a-297685e.zip 185391473 SHA256 704f2dfc14681f76dae3b4120c87b1ded33cf43d5a1d800b6de5ca292bb61e58 SHA512 1658c3109e9dca2a1f0bd972e9042e7ccf17742e9c6110f04151334f342eb53d5a736b9cb63358a26d97562f1efb9e36c281bca85664e06f0cd11c275972f3af WHIRLPOOL 945ae6aa581430b528ef36b208df7f176233acd9eea69c9f4c61f9b29341ef1c31b182b704c7d0e9285dbb0c553f146ba337eee1d4b67b8cd65488c37e9a8189
|
||||
DIST xvba-sdk-0.74-404001.tar.gz 583847 SHA256 731a2c489f2fb5d7318c1976061b26c1057a696f46d09dcf55fbada97fed17eb SHA512 aa1dd52b59eeeabd026d8b76e3b75eaf02587ef286438ba28884afeef5a5efaf50283b5ee4f5b81b12cf79cb4ec77c9a235a886b29fb7cdf850c9779f4b07b35 WHIRLPOOL 69917b746d353a884512e97b9d9a9b89e6f51add3119e69ddd119d51c0c3f2820b93a449fe42bd76d671dc505f92bf25b7f2c5868b33768fc68a19596e460951
|
||||
@@ -1,640 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
MULTILIB_COMPAT=( abi_x86_{32,64} )
|
||||
inherit eutils multilib-build linux-info linux-mod systemd toolchain-funcs versionator pax-utils
|
||||
|
||||
DESCRIPTION="Ati precompiled drivers for Radeon Evergreen (HD5000 Series) and newer chipsets"
|
||||
HOMEPAGE="http://www.amd.com https://wiki.gentoo.org/wiki/Fglrx"
|
||||
BUILD_VER=15.302
|
||||
RUN="${WORKDIR}/fglrx-${BUILD_VER}/amd-driver-installer-${BUILD_VER}-x86.x86_64.run"
|
||||
SLOT="1"
|
||||
# Uses javascript for download YESSSS
|
||||
#DRIVERS_URI="http://www2.ati.com/drivers/linux/amd-catalyst-13.12-linux-x86.x86_64.zip"
|
||||
#DRV_VER="amd-catalyst-${PV}-linux-installer-15.201.1151-x86.x86_64.zip"
|
||||
DRV_VER="radeon-crimson-${PV}-${BUILD_VER}-151217a-297685e.zip"
|
||||
DRIVERS_URI="mirror://gentoo/${DRV_VER}"
|
||||
SDK_VER="xvba-sdk-0.74-404001.tar.gz"
|
||||
XVBA_SDK_URI="http://developer.amd.com/wordpress/media/2012/10/${SDK_VER}"
|
||||
SRC_URI="${DRIVERS_URI} ${XVBA_SDK_URI}"
|
||||
FOLDER_PREFIX="common/"
|
||||
IUSE="debug +modules qt4 static-libs pax_kernel gdm-hack"
|
||||
|
||||
LICENSE="AMD GPL-2 QPL-1.0"
|
||||
KEYWORDS="-* amd64 x86"
|
||||
|
||||
RESTRICT="bindist test"
|
||||
|
||||
RDEPEND="
|
||||
<=x11-base/xorg-server-1.17.49[-minimal]
|
||||
>=app-eselect/eselect-opengl-1.0.7
|
||||
app-eselect/eselect-opencl
|
||||
sys-power/acpid
|
||||
x11-apps/xauth
|
||||
!x11-libs/xvba-video
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXinerama[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrender[${MULTILIB_USEDEP}]
|
||||
qt4? (
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXxf86vm
|
||||
dev-qt/qtcore:4
|
||||
dev-qt/qtgui:4[accessibility]
|
||||
)
|
||||
gdm-hack? (
|
||||
x11-base/xorg-server:=
|
||||
)
|
||||
"
|
||||
if [[ legacy != ${SLOT} ]]; then
|
||||
RDEPEND="${RDEPEND}
|
||||
!x11-drivers/ati-drivers:legacy"
|
||||
else
|
||||
RDEPEND="${RDEPEND}
|
||||
!x11-drivers/ati-drivers:1"
|
||||
fi
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
x11-proto/inputproto
|
||||
x11-proto/xf86miscproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
x11-proto/xineramaproto
|
||||
x11-libs/libXtst
|
||||
sys-apps/findutils
|
||||
app-misc/pax-utils
|
||||
app-arch/unzip
|
||||
"
|
||||
|
||||
EMULTILIB_PKG="true"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
# QA Silencing
|
||||
QA_TEXTRELS="
|
||||
usr/lib*/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib*/libatiadlxx.so
|
||||
usr/lib*/xorg/modules/glesx.so
|
||||
usr/lib*/libaticaldd.so
|
||||
usr/lib*/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_EXECSTACK="
|
||||
opt/bin/atiode
|
||||
opt/bin/amdcccle
|
||||
usr/lib*/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib*/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_WX_LOAD="
|
||||
usr/lib*/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib*/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_PRESTRIPPED="
|
||||
usr/lib\(32\|64\)\?/libXvBAW.so.1.0
|
||||
usr/lib\(32\|64\)\?/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib\(32\|64\)\?/opengl/ati/extensions/libglx.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/glesx.so
|
||||
usr/lib\(32\|64\)\?/libAMDXvBA.so.1.0
|
||||
usr/lib\(32\|64\)\?/libaticaldd.so
|
||||
usr/lib\(32\|64\)\?/dri/fglrx_dri.so
|
||||
usr/lib\(32\|64\)\?/OpenCL/vendors/amd/libOpenCL.so.1
|
||||
usr/lib\(32\|64\)\?/OpenCL/vendors/amd/libamdocl\(32\|64\).so
|
||||
"
|
||||
|
||||
QA_SONAME="
|
||||
usr/lib\(32\|64\)\?/libatiadlxx.so
|
||||
usr/lib\(32\|64\)\?/libaticalcl.so
|
||||
usr/lib\(32\|64\)\?/libaticaldd.so
|
||||
usr/lib\(32\|64\)\?/libaticalrt.so
|
||||
usr/lib\(32\|64\)\?/libamdocl\(32\|64\)\?.so
|
||||
usr/lib\(32\|64\)\?/libamdhsasc\(32\|64\)\?.so
|
||||
"
|
||||
|
||||
QA_DT_HASH="
|
||||
opt/bin/amdcccle
|
||||
opt/bin/aticonfig
|
||||
opt/bin/atiodcli
|
||||
opt/bin/atiode
|
||||
opt/bin/clinfo
|
||||
opt/bin/fglrxinfo
|
||||
opt/sbin/atieventsd
|
||||
opt/sbin/amdnotifyui
|
||||
usr/lib\(32\|64\)\?/libaticalcl.so
|
||||
usr/lib\(32\|64\)\?/libaticalrt.so
|
||||
usr/lib\(32\|64\)\?/libatiuki.so.1.0
|
||||
usr/lib\(32\|64\)\?/libatiadlxx.so
|
||||
usr/lib\(32\|64\)\?/libfglrx_dm.so.1.0
|
||||
usr/lib\(32\|64\)\?/libXvBAW.so.1.0
|
||||
usr/lib\(32\|64\)\?/libAMDXvBA.so.1.0
|
||||
usr/lib\(32\|64\)\?/xorg/modules/amdxmm.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/glesx.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/linux/libfglrxdrm.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/drivers/fglrx_drv.so
|
||||
usr/lib\(32\|64\)\?/libaticaldd.so
|
||||
usr/lib\(32\|64\)\?/dri/fglrx_dri.so
|
||||
usr/lib\(32\|64\)\?/opengl/ati/extensions/libglx.so
|
||||
usr/lib\(32\|64\)\?/opengl/ati/extensions/fglrx-libglx.so
|
||||
usr/lib\(32\|64\)\?/opengl/ati/lib/fglrx-libGL.so.1.2
|
||||
usr/lib\(32\|64\)\?/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib\(32\|64\)\?/OpenCL/vendors/amd/libamdocl\(32\|64\)\?.so
|
||||
usr/lib\(32\|64\)\?/OpenCL/vendors/amd/libOpenCL.so.1
|
||||
"
|
||||
|
||||
pkg_nofetch() {
|
||||
einfo "The driver packages"
|
||||
einfo ${A}
|
||||
einfo "need to be downloaded manually from"
|
||||
einfo "http://support.amd.com/en-us/download/desktop?os=Linux+x86"
|
||||
einfo "or http://support.amd.com/en-us/download/desktop?os=Linux+x86_64"
|
||||
einfo "and ${XVBA_SDK_URI}"
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
local CONFIG_CHECK="~MTRR ~!DRM ACPI PCI_MSI \
|
||||
!LOCKDEP !PAX_KERNEXEC_PLUGIN_METHOD_OR"
|
||||
use amd64 && CONFIG_CHECK+=" COMPAT"
|
||||
|
||||
local ERROR_MTRR="CONFIG_MTRR required for direct rendering."
|
||||
local ERROR_DRM="CONFIG_DRM must be disabled or compiled as a
|
||||
module and not loaded for direct rendering to work."
|
||||
local ERROR_LOCKDEP="CONFIG_LOCKDEP (lock tracking) exports
|
||||
the symbol lock_acquire as GPL-only. This prevents ${P} from
|
||||
compiling with an error like this:
|
||||
FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'lock_acquire'"
|
||||
local ERROR_PAX_KERNEXEC_PLUGIN_METHOD_OR="This config option will cause
|
||||
kernel to reject loading the fglrx module with
|
||||
\"ERROR: could not insert 'fglrx': Exec format error.\"
|
||||
You may want to try CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS instead."
|
||||
local ERROR_BKL="CONFIG_BKL must be enabled for kernels 2.6.37-2.6.38."
|
||||
|
||||
# workaround until bug 365543 is solved
|
||||
if use modules; then
|
||||
linux-info_pkg_setup
|
||||
require_configured_kernel
|
||||
kernel_is ge 2 6 37 && kernel_is le 2 6 38 && CONFIG_CHECK+=" BKL"
|
||||
check_extra_config
|
||||
if ! linux_chkconfig_present AGP && \
|
||||
! linux_chkconfig_present PCIEPORTBUS; then
|
||||
ewarn "You don't have AGP and/or PCIe support enabled in the kernel"
|
||||
ewarn "Direct rendering will not work."
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! has XT ${PAX_MARKINGS} && use pax_kernel; then
|
||||
ewarn "You have disabled xattr pax markings for portage."
|
||||
ewarn "This will likely cause programs using ati-drivers provided"
|
||||
ewarn "libraries to be killed kernel."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if use modules; then
|
||||
MODULE_PATH="${S}/${FOLDER_PREFIX}/lib/modules/fglrx/build_mod/2.6.x"
|
||||
MODULE_NAMES="fglrx(video:${MODULE_PATH})"
|
||||
BUILD_TARGETS="kmod_build"
|
||||
linux-mod_pkg_setup
|
||||
BUILD_PARAMS="GCC_VER_MAJ=$(gcc-major-version) KVER=${KV_FULL} KDIR=${KV_OUT_DIR}"
|
||||
BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=\"-DMODULE -DATI -DFGL\""
|
||||
if grep -q arch_compat_alloc_user_space ${KV_DIR}/arch/x86/include/asm/compat.h ; then
|
||||
BUILD_PARAMS="${BUILD_PARAMS} \
|
||||
CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space"
|
||||
else
|
||||
BUILD_PARAMS="${BUILD_PARAMS} \
|
||||
CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=compat_alloc_user_space"
|
||||
fi
|
||||
fi
|
||||
# Define module dir.
|
||||
MODULE_DIR="${S}/${FOLDER_PREFIX}/lib/modules/fglrx/build_mod"
|
||||
# get the xorg-server version and set BASE_DIR for that
|
||||
BASE_DIR="${S}/xpic"
|
||||
|
||||
# amd64/x86
|
||||
if use amd64 ; then
|
||||
MY_BASE_DIR="${BASE_DIR}_64a"
|
||||
PKG_LIBDIR=lib64
|
||||
ARCH_DIR="${S}/arch/x86_64"
|
||||
else
|
||||
MY_BASE_DIR="${BASE_DIR}"
|
||||
PKG_LIBDIR=lib
|
||||
ARCH_DIR="${S}/arch/x86"
|
||||
fi
|
||||
|
||||
elog
|
||||
elog "Please note that this driver only supports graphic cards based on"
|
||||
elog "Evergreen chipset and newer."
|
||||
elog "This includes the AMD Radeon HD 5400+ series at this moment."
|
||||
elog
|
||||
elog "If your card is older then use ${CATEGORY}/xf86-video-ati"
|
||||
elog "For migration informations please refer to:"
|
||||
elog "https://wiki.gentoo.org/wiki/Fglrx"
|
||||
einfo
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
local DRIVERS_DISTFILE XVBA_SDK_DISTFILE
|
||||
DRIVERS_DISTFILE=${DRIVERS_URI##*/}
|
||||
XVBA_SDK_DISTFILE=${XVBA_SDK_URI##*/}
|
||||
|
||||
if [[ ${DRIVERS_DISTFILE} =~ .*\.tar\.gz ]]; then
|
||||
unpack ${DRIVERS_DISTFILE}
|
||||
mkdir -p common
|
||||
mv etc lib usr common || die "Assumed to find etc lib and usr for common"
|
||||
else
|
||||
#please note, RUN may be insanely assigned at top near SRC_URI
|
||||
if [[ ${DRIVERS_DISTFILE} =~ .*\.zip ]]; then
|
||||
unpack ${DRIVERS_DISTFILE}
|
||||
[[ -z "$RUN" ]] && RUN="${S}/${DRIVERS_DISTFILE/%.zip/.run}"
|
||||
else
|
||||
RUN="${DISTDIR}/${DRIVERS_DISTFILE}"
|
||||
fi
|
||||
sh "${RUN}" --extract "${S}" 2>&1 > /dev/null || die
|
||||
fi
|
||||
|
||||
mkdir xvba_sdk
|
||||
cd xvba_sdk
|
||||
unpack ${XVBA_SDK_DISTFILE}
|
||||
|
||||
mkdir -p "${WORKDIR}/extra" || die "mkdir extra failed"
|
||||
cd "${WORKDIR}/extra"
|
||||
tar -xf "../${FOLDER_PREFIX}usr/src/ati/fglrx_sample_source.tgz"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
if use modules; then
|
||||
if use debug; then
|
||||
sed -i '/^#define DRM_DEBUG_CODE/s/0/1/' \
|
||||
"${MODULE_DIR}/firegl_public.c" \
|
||||
|| die "Failed to enable debug output."
|
||||
fi
|
||||
fi
|
||||
|
||||
# These are the userspace utilities that we also have source for.
|
||||
# We rebuild these later.
|
||||
rm \
|
||||
"${ARCH_DIR}"/usr/X11R6/bin/fgl_glxgears \
|
||||
|| die "bin rm failed"
|
||||
|
||||
# in this version amdcccle isn't static, thus we depend on qt4
|
||||
use qt4 || rm "${ARCH_DIR}"/usr/X11R6/bin/amdcccle
|
||||
|
||||
# ACPI fixups
|
||||
sed -i \
|
||||
-e "s:/var/lib/xdm/authdir/authfiles/:/var/run/xauth/:" \
|
||||
-e "s:/var/lib/gdm/:/var/gdm/:" \
|
||||
"${S}/${FOLDER_PREFIX}etc/ati/authatieventsd.sh" \
|
||||
|| die "ACPI fixups failed."
|
||||
|
||||
# Since "who" is in coreutils, we're using that one instead of "finger".
|
||||
sed -i -e 's:finger:who:' \
|
||||
"${S}/${FOLDER_PREFIX}usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh" \
|
||||
|| die "Replacing 'finger' with 'who' failed."
|
||||
# Adjust paths in the script from /usr/X11R6/bin/ to /opt/bin/ and
|
||||
# add function to detect default state.
|
||||
epatch "${FILESDIR}"/ati-powermode-opt-path-3.patch
|
||||
|
||||
# see http://ati.cchtml.com/show_bug.cgi?id=495
|
||||
#epatch "${FILESDIR}"/ati-drivers-old_rsp.patch
|
||||
# first hunk applied upstream second (x32 related) was not
|
||||
epatch "${FILESDIR}"/ati-drivers-x32_something_something.patch
|
||||
|
||||
# compile fix for AGP-less kernel, bug #435322
|
||||
epatch "${FILESDIR}"/ati-drivers-12.9-KCL_AGP_FindCapsRegisters-stub.patch
|
||||
|
||||
epatch "${FILESDIR}/ati-drivers-13.8-beta-include-seq_file.patch"
|
||||
|
||||
# Fix #483400
|
||||
epatch "${FILESDIR}/fgl_glxgears-do-not-include-glATI.patch"
|
||||
|
||||
# Compile fix, https://bugs.gentoo.org/show_bug.cgi?id=454870
|
||||
use pax_kernel && epatch "${FILESDIR}/const-notifier-block.patch"
|
||||
|
||||
# Compile fix, #526602
|
||||
# epatch "${FILESDIR}/use-kernel_fpu_begin.patch"
|
||||
|
||||
# Fix #542320
|
||||
epatch "${FILESDIR}/15.9-preempt.patch"
|
||||
|
||||
# Compile fixes, #548118
|
||||
epatch "${FILESDIR}/15.11-remove-gpl-symbols.patch"
|
||||
epatch "${FILESDIR}/15.9-kcl_str.patch"
|
||||
epatch "${FILESDIR}/15.9-sep_printf.patch"
|
||||
epatch "${FILESDIR}/15.9-mtrr.patch"
|
||||
|
||||
epatch "${FILESDIR}/15.12-xstate-fp.patch"
|
||||
epatch_user
|
||||
|
||||
cd "${MODULE_DIR}"
|
||||
|
||||
# bugged fglrx build system, this file should be copied by hand
|
||||
cp ${ARCH_DIR}/lib/modules/fglrx/build_mod/libfglrx_ip.a 2.6.x
|
||||
|
||||
convert_to_m 2.6.x/Makefile || die "convert_to_m failed"
|
||||
|
||||
# When built with ati's make.sh it defines a bunch of macros if
|
||||
# certain .config values are set, falling back to less reliable
|
||||
# detection methods if linux/autoconf.h is not available. We
|
||||
# simply use the linux/autoconf.h settings directly, bypassing the
|
||||
# detection script.
|
||||
sed -i -e 's/__SMP__/CONFIG_SMP/' *.c *h || die "SMP sed failed"
|
||||
sed -i -e 's/ifdef MODVERSIONS/ifdef CONFIG_MODVERSIONS/' *.c *.h \
|
||||
|| die "MODVERSIONS sed failed"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use modules && linux-mod_src_compile
|
||||
|
||||
ebegin "Building fgl_glxgears"
|
||||
cd "${S}"/extra/fgl_glxgears
|
||||
# These extra libs/utils either have an Imakefile that does not
|
||||
# work very well without tweaking or a Makefile ignoring CFLAGS
|
||||
# and the like. We bypass those.
|
||||
# The -DUSE_GLU is needed to compile using nvidia headers
|
||||
# according to a comment in ati-drivers-extra-8.33.6.ebuild.
|
||||
"$(tc-getCC)" -o fgl_glxgears ${CFLAGS} ${LDFLAGS} -DUSE_GLU \
|
||||
-I"${S}"/${FOLDER_PREFIX}usr/include fgl_glxgears.c \
|
||||
-lGL -lGLU -lX11 -lm || die "fgl_glxgears build failed"
|
||||
eend $?
|
||||
}
|
||||
|
||||
src_install() {
|
||||
use modules && linux-mod_src_install
|
||||
|
||||
# We can do two things here, and neither of them is very nice.
|
||||
|
||||
# For direct rendering libGL has to be able to load one or more
|
||||
# dri modules (files ending in _dri.so, like fglrx_dri.so).
|
||||
# Gentoo's mesa looks for these files in the location specified by
|
||||
# LIBGL_DRIVERS_PATH or LIBGL_DRIVERS_DIR, then in the hardcoded
|
||||
# location /usr/$(get_libdir)/dri. Ati's libGL does the same
|
||||
# thing, but the hardcoded location is /usr/X11R6/lib/modules/dri
|
||||
# on x86 and amd64 32bit, /usr/X11R6/lib64/modules/dri on amd64
|
||||
# 64bit. So we can either put the .so files in that (unusual,
|
||||
# compared to "normal" mesa libGL) location or set
|
||||
# LIBGL_DRIVERS_PATH. We currently do the latter. See also bug
|
||||
# 101539.
|
||||
|
||||
# The problem with this approach is that LIBGL_DRIVERS_PATH
|
||||
# *overrides* the default hardcoded location, it does not extend
|
||||
# it. So if ati-drivers is merged but a non-ati libGL is selected
|
||||
# and its hardcoded path does not match our LIBGL_DRIVERS_PATH
|
||||
# (because it changed in a newer mesa or because it was compiled
|
||||
# for a different set of multilib abis than we are) stuff breaks.
|
||||
|
||||
# We create one file per ABI to work with "native" multilib, see
|
||||
# below.
|
||||
|
||||
echo "COLON_SEPARATED=LIBGL_DRIVERS_PATH" > "${T}/03ati-colon-sep"
|
||||
doenvd "${T}/03ati-colon-sep" || die
|
||||
|
||||
# All libraries that we have a 32 bit and 64 bit version of on
|
||||
# amd64 are installed in src_install-libs. Everything else
|
||||
# (including libraries only available in native 64bit on amd64)
|
||||
# goes in here.
|
||||
multilib_foreach_abi src_install-libs
|
||||
|
||||
# This is sorted by the order the files occur in the source tree.
|
||||
|
||||
# X modules.
|
||||
exeinto /usr/$(get_libdir)/xorg/modules/drivers
|
||||
doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/drivers/fglrx_drv.so
|
||||
exeinto /usr/$(get_libdir)/xorg/modules/linux
|
||||
doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/linux/libfglrxdrm.so
|
||||
exeinto /usr/$(get_libdir)/xorg/modules
|
||||
doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/{glesx.so,amdxmm.so}
|
||||
|
||||
#516816
|
||||
if use gdm-hack; then
|
||||
sed -i 's#/proc/%i/fd/0#/etc/ati/xvrn#g' \
|
||||
"${D}/usr/$(get_libdir)/xorg/modules/drivers/fglrx_drv.so" || \
|
||||
die "Applying gdm-hack failed"
|
||||
fi
|
||||
|
||||
# Arch-specific files.
|
||||
# (s)bin.
|
||||
into /opt
|
||||
dosbin "${ARCH_DIR}"/usr/sbin/atieventsd
|
||||
use qt4 && dosbin "${ARCH_DIR}"/usr/sbin/amdnotifyui
|
||||
dobin "${ARCH_DIR}"/usr/bin/clinfo
|
||||
# We cleaned out the compilable stuff in src_unpack
|
||||
dobin "${ARCH_DIR}"/usr/X11R6/bin/*
|
||||
|
||||
# Common files.
|
||||
# etc.
|
||||
insinto /etc/ati
|
||||
exeinto /etc/ati
|
||||
# Everything except for the authatieventsd.sh script.
|
||||
doins ${FOLDER_PREFIX}etc/ati/{logo*,control,signature,amdpcsdb.default}
|
||||
doexe ${FOLDER_PREFIX}etc/ati/authatieventsd.sh
|
||||
|
||||
# include.
|
||||
insinto /usr
|
||||
doins -r ${FOLDER_PREFIX}usr/include
|
||||
insinto /usr/include/X11/extensions
|
||||
|
||||
# Just the atigetsysteminfo.sh script.
|
||||
into /usr
|
||||
dosbin ${FOLDER_PREFIX}usr/sbin/*
|
||||
|
||||
# data files for the control panel.
|
||||
if use qt4 ; then
|
||||
insinto /usr/share
|
||||
doins -r ${FOLDER_PREFIX}usr/share/ati
|
||||
insinto /usr/share/pixmaps
|
||||
doins ${FOLDER_PREFIX}usr/share/icons/ccc_large.xpm
|
||||
make_desktop_entry amdcccle 'AMD Catalyst Control Center' \
|
||||
ccc_large System
|
||||
fi
|
||||
|
||||
# doc.
|
||||
dohtml -r ${FOLDER_PREFIX}usr/share/doc/fglrx
|
||||
|
||||
doman ${FOLDER_PREFIX}usr/share/man/man8/atieventsd.8
|
||||
|
||||
pushd ${FOLDER_PREFIX}usr/share/doc/fglrx/examples/etc/acpi > /dev/null
|
||||
|
||||
exeinto /etc/acpi
|
||||
doexe ati-powermode.sh
|
||||
insinto /etc/acpi/events
|
||||
doins events/*
|
||||
|
||||
popd > /dev/null
|
||||
|
||||
# Done with the "source" tree. Install tools we rebuilt:
|
||||
dobin extra/fgl_glxgears/fgl_glxgears
|
||||
newdoc extra/fgl_glxgears/README README.fgl_glxgears
|
||||
|
||||
# Gentoo-specific stuff:
|
||||
newinitd "${FILESDIR}"/atieventsd.init atieventsd
|
||||
echo 'ATIEVENTSDOPTS=""' > "${T}"/atieventsd.conf
|
||||
newconfd "${T}"/atieventsd.conf atieventsd
|
||||
systemd_dounit "${FILESDIR}/atieventsd.service"
|
||||
|
||||
# PowerXpress stuff
|
||||
exeinto /usr/$(get_libdir)/fglrx
|
||||
doexe "${FILESDIR}"/switchlibGL || die "doexe switchlibGL failed"
|
||||
cp "${FILESDIR}"/switchlibGL "${T}"/switchlibglx
|
||||
doexe "${T}"/switchlibglx || die "doexe switchlibglx failed"
|
||||
|
||||
#516816
|
||||
use gdm-hack && Xorg -version > "${D}/etc/ati/xvrn" 2>&1
|
||||
}
|
||||
|
||||
src_install-libs() {
|
||||
if [[ "${ABI}" == "amd64" ]]; then
|
||||
local EX_BASE_DIR="${BASE_DIR}_64a"
|
||||
local pkglibdir=lib64
|
||||
local MY_ARCH_DIR="${S}/arch/x86_64"
|
||||
local oclsuffix=64
|
||||
else
|
||||
local EX_BASE_DIR="${BASE_DIR}"
|
||||
local pkglibdir=lib
|
||||
local MY_ARCH_DIR="${S}/arch/x86"
|
||||
local oclsuffix=32
|
||||
fi
|
||||
einfo "ati tree '${pkglibdir}' -> '$(get_libdir)' on system"
|
||||
|
||||
local ATI_ROOT=/usr/$(get_libdir)/opengl/ati
|
||||
# To make sure we do not miss a spot when these change.
|
||||
local libmajor=1 libminor=2
|
||||
local libver=${libmajor}.${libminor}
|
||||
|
||||
# The GLX libraries
|
||||
# (yes, this really is "lib" even on amd64/multilib --marienz)
|
||||
exeinto ${ATI_ROOT}/lib
|
||||
newexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/fglrx/fglrx-libGL.so.${libver} \
|
||||
libGL.so.${libver}
|
||||
dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so.${libmajor}
|
||||
dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
exeinto ${ATI_ROOT}/extensions
|
||||
doexe "${EX_BASE_DIR}"/usr/X11R6/${pkglibdir}/modules/extensions/fglrx/fglrx-libglx.so
|
||||
mv "${D}"/${ATI_ROOT}/extensions/{fglrx-,}libglx.so
|
||||
|
||||
#516816
|
||||
if use gdm-hack; then
|
||||
sed -i 's#/proc/%i/fd/0#/etc/ati/xvrn#g' \
|
||||
"${D}/${ATI_ROOT}/extensions/libglx.so" \
|
||||
|| die "Applying gdm-hack failed"
|
||||
fi
|
||||
fi
|
||||
|
||||
# other libs
|
||||
exeinto /usr/$(get_libdir)
|
||||
# Everything except for the libGL.so installed some row above
|
||||
doexe $(find "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir} \
|
||||
-maxdepth 1 -type f -name '*.so*' -not -name '*libGL.so*')
|
||||
insinto /usr/$(get_libdir)
|
||||
doins $(find "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir} \
|
||||
-maxdepth 1 -type f -not -name '*.so*')
|
||||
|
||||
# DRI modules, installed into the path used by recent versions of mesa.
|
||||
exeinto /usr/$(get_libdir)/dri
|
||||
doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so
|
||||
|
||||
# AMD Cal and OpenCL libraries
|
||||
exeinto /usr/$(get_libdir)/OpenCL/vendors/amd
|
||||
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libamdocl*.so*
|
||||
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libOpenCL*.so*
|
||||
dosym libOpenCL.so.${libmajor} /usr/$(get_libdir)/OpenCL/vendors/amd/libOpenCL.so
|
||||
exeinto /usr/$(get_libdir)
|
||||
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libati*.so*
|
||||
|
||||
# OpenCL vendor files
|
||||
insinto /etc/OpenCL/vendors/
|
||||
cat > "${T}"/amdocl${oclsuffix}.icd <<-EOF
|
||||
/usr/$(get_libdir)/OpenCL/vendors/amd/libamdocl${oclsuffix}.so
|
||||
EOF
|
||||
doins "${T}"/amdocl${oclsuffix}.icd
|
||||
|
||||
local envname="${T}"/04ati-dri-path
|
||||
if [[ -n ${ABI} ]]; then
|
||||
envname="${envname}-${ABI}"
|
||||
fi
|
||||
echo "LIBGL_DRIVERS_PATH=/usr/$(get_libdir)/dri" > "${envname}"
|
||||
doenvd "${envname}"
|
||||
|
||||
# Silence the QA notice by creating missing soname symlinks
|
||||
for so in $(find "${D}"/usr/$(get_libdir) -maxdepth 1 -name *.so.[0-9].[0-9])
|
||||
do
|
||||
local soname=${so##*/}
|
||||
local soname_one=${soname%.[0-9]}
|
||||
local soname_zero=${soname_one%.[0-9]}
|
||||
dosym ${soname} /usr/$(get_libdir)/${soname_one}
|
||||
dosym ${soname_one} /usr/$(get_libdir)/${soname_zero}
|
||||
done
|
||||
|
||||
# See https://bugs.gentoo.org/show_bug.cgi?id=443466
|
||||
dodir /etc/revdep-rebuild/
|
||||
echo "SEARCH_DIRS_MASK=\"/opt/bin/clinfo\"" > "${ED}/etc/revdep-rebuild/62-ati-drivers"
|
||||
|
||||
#remove static libs if not wanted
|
||||
use static-libs || rm -rf "${D}"/usr/$(get_libdir)/libfglrx_dm.a
|
||||
|
||||
#install xvba sdk headers
|
||||
doheader xvba_sdk/include/amdxvba.h
|
||||
|
||||
# VA-API internal wrapper
|
||||
dosym /usr/$(get_libdir)/libXvBAW.so.1.0 /usr/$(get_libdir)/va/drivers/fglrx_drv_video.so
|
||||
|
||||
if use pax_kernel; then
|
||||
pax-mark m "${D}"/usr/lib*/opengl/ati/lib/libGL.so.1.2 || die "pax-mark failed"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "To switch to AMD OpenGL, run \"eselect opengl set ati\""
|
||||
elog "To change your xorg.conf you can use the bundled \"aticonfig\""
|
||||
elog
|
||||
elog "If you experience unexplained segmentation faults and kernel crashes"
|
||||
elog "with this driver and multi-threaded applications such as wine,"
|
||||
elog "set UseFastTLS in xorg.conf to either 0 or 1, but not 2."
|
||||
elog
|
||||
elog "Fully rebooting the system after an ${PN} update is recommended"
|
||||
elog "Stopping Xorg, reloading fglrx kernel module and restart Xorg"
|
||||
elog "might not work"
|
||||
elog
|
||||
elog "Some cards need acpid running to handle events"
|
||||
elog "Please add it to boot runlevel with rc-update add acpid boot"
|
||||
elog
|
||||
|
||||
use modules && linux-mod_pkg_postinst
|
||||
"${ROOT}"/usr/bin/eselect opengl set --use-old ati
|
||||
"${ROOT}"/usr/bin/eselect opencl set --use-old amd
|
||||
|
||||
if has_version "x11-drivers/xf86-video-intel[sna]"; then
|
||||
ewarn "It is reported that xf86-video-intel built with USE=\"sna\""
|
||||
ewarn "causes the X server to crash on systems that use hybrid"
|
||||
ewarn "AMD/Intel graphics. If you experience this crash, downgrade"
|
||||
ewarn "to xf86-video-intel-2.20.2 or earlier or try disabling sna"
|
||||
ewarn "for xf86-video-intel."
|
||||
ewarn "For details, see https://bugs.gentoo.org/show_bug.cgi?id=430000"
|
||||
fi
|
||||
|
||||
if use pax_kernel; then
|
||||
ewarn "Please run \"revdep-pax -s libGL.so.1 -me\" after installation and"
|
||||
ewarn "after you have run \"eselect opengl set ati\". Executacle"
|
||||
ewarn "revdep-pax is part of package sys-apps/elfix."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
use modules && linux-mod_pkg_preinst
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use modules && linux-mod_pkg_postrm
|
||||
"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-18 23:57:02.000000000 -0400
|
||||
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-18 23:57:11.000000000 -0400
|
||||
@@ -136,7 +136,6 @@
|
||||
#include <asm/mman.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/processor.h>
|
||||
-#include <asm/tlbflush.h> // for flush_tlb_page
|
||||
#include <asm/cpufeature.h>
|
||||
#ifdef CONFIG_MTRR
|
||||
#include <asm/mtrr.h>
|
||||
@@ -251,6 +250,26 @@
|
||||
#define WRITE_CR4(x) write_cr4(x)
|
||||
#endif
|
||||
|
||||
+#define __flush_tlb_one(addr) asm volatile("invlpg (%0)" ::"r" (addr) : "memory")
|
||||
+#define __flush_tlb() native_write_cr3(native_read_cr3())
|
||||
+
|
||||
+static inline void __flush_tlb_all(void)
|
||||
+{
|
||||
+ if (cpu_has_pge)
|
||||
+ {
|
||||
+ unsigned long flags, cr4;
|
||||
+ raw_local_irq_save(flags);
|
||||
+ cr4 = native_read_cr4();
|
||||
+ native_write_cr4(cr4 & ~X86_CR4_PGE);
|
||||
+ native_write_cr4(cr4);
|
||||
+ raw_local_irq_restore(flags);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ __flush_tlb();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
// ============================================================
|
||||
/* globals */
|
||||
|
||||
--- a/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2015-09-19 00:43:35.000000000 -0400
|
||||
+++ b/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2015-09-19 00:43:48.000000000 -0400
|
||||
@@ -868,7 +868,7 @@ void ATI_API_CALL KCL_ACPI_No_Hotplug(vo
|
||||
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)
|
||||
if(pdev)
|
||||
{
|
||||
-#if (UTS_UBUNTU_RELEASE_ABI < 0 && LINUX_VERSION_CODE < KERNEL_VERSION(4,1,3)) || (UTS_UBUNTU_RELEASE_ABI >= 0 && UTS_UBUNTU_RELEASE_ABI < 26 && LINUX_VERSION_CODE <= KERNEL_VERSION(3,19,8))
|
||||
+#if 0 && (UTS_UBUNTU_RELEASE_ABI < 0 && LINUX_VERSION_CODE < KERNEL_VERSION(4,1,3)) || (UTS_UBUNTU_RELEASE_ABI >= 0 && UTS_UBUNTU_RELEASE_ABI < 26 && LINUX_VERSION_CODE <= KERNEL_VERSION(3,19,8))
|
||||
pci_ignore_hotplug(pdev);
|
||||
#else
|
||||
pdev->ignore_hotplug = 1;
|
||||
@@ -1,26 +0,0 @@
|
||||
From: Krzysztof Kolasa <kkolasa@winsoft.pl>
|
||||
Date: Thu, 26 Nov 2015 14:28:46 +0100
|
||||
Subject: [PATCH] Patch for kernel 4.4.0-rc2
|
||||
|
||||
constant change of name XSTATE_XP to name XFEATURE_MASK_FP
|
||||
---
|
||||
firegl_public.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
index 3626c7b..f071d42 100644
|
||||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
+++ b/common/lib/modules/fglrx/build_mod//firegl_public.c
|
||||
@@ -6463,7 +6463,11 @@ static int KCL_fpu_save_init(struct task_struct *tsk)
|
||||
if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP))
|
||||
#else
|
||||
copy_xregs_to_kernel(&fpu->state.xsave);
|
||||
- if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
|
||||
+ if (!(fpu->state.xsave.header.xfeatures & XFEATURE_MASK_FP))
|
||||
+#else
|
||||
+ if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
|
||||
+#endif
|
||||
#endif
|
||||
return 1;
|
||||
} else if (static_cpu_has(X86_FEATURE_FXSR)) {
|
||||
@@ -1,14 +0,0 @@
|
||||
--- a/common/lib/modules/fglrx/build_mod/kcl_str.c 2015-09-13 13:47:30.000000000 -0400
|
||||
+++ b/common/lib/modules/fglrx/build_mod/kcl_str.c 2015-09-13 13:49:42.000000000 -0400
|
||||
@@ -169,7 +169,11 @@ int ATI_API_CALL KCL_STR_Strnicmp(const
|
||||
const char* s2,
|
||||
KCL_TYPE_SizeSigned count)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
|
||||
return strnicmp(s1, s2, count);
|
||||
+#else
|
||||
+ return strncasecmp(s1, s2, count);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/** \brief Locate character in string
|
||||
@@ -1,27 +0,0 @@
|
||||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-19 23:43:22.000000000 -0400
|
||||
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-19 23:52:07.000000000 -0400
|
||||
@@ -3442,7 +3442,11 @@ int ATI_API_CALL KCL_MEM_MTRR_Support(vo
|
||||
int ATI_API_CALL KCL_MEM_MTRR_AddRegionWc(unsigned long base, unsigned long size)
|
||||
{
|
||||
#ifdef CONFIG_MTRR
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
|
||||
+ return arch_phys_wc_add(base, size);
|
||||
+#else
|
||||
return mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
|
||||
+#endif
|
||||
#else /* !CONFIG_MTRR */
|
||||
return -EPERM;
|
||||
#endif /* !CONFIG_MTRR */
|
||||
@@ -3451,7 +3455,12 @@ int ATI_API_CALL KCL_MEM_MTRR_AddRegionW
|
||||
int ATI_API_CALL KCL_MEM_MTRR_DeleteRegion(int reg, unsigned long base, unsigned long size)
|
||||
{
|
||||
#ifdef CONFIG_MTRR
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
|
||||
+ arch_phys_wc_del(reg);
|
||||
+ return reg;
|
||||
+#else
|
||||
return mtrr_del(reg, base, size);
|
||||
+#endif
|
||||
#else /* !CONFIG_MTRR */
|
||||
return -EPERM;
|
||||
#endif /* !CONFIG_MTRR */
|
||||
@@ -1,103 +0,0 @@
|
||||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-08-30 17:36:02.000000000 -0400
|
||||
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-08-30 17:39:36.000000000 -0400
|
||||
@@ -21,6 +21,8 @@
|
||||
!!! since it requires changes to linux/init/main.c.
|
||||
#endif /* !MODULE */
|
||||
|
||||
+#include <linux/preempt.h>
|
||||
+
|
||||
// ============================================================
|
||||
#include <linux/version.h>
|
||||
|
||||
@@ -4997,7 +4999,9 @@ static unsigned int kas_spin_unlock(kas_
|
||||
unsigned long ATI_API_CALL KAS_GetExecutionLevel(void)
|
||||
{
|
||||
unsigned long ret;
|
||||
+ preempt_disable();
|
||||
ret = kas_GetExecutionLevel();
|
||||
+ preempt_enable();
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -5022,8 +5026,10 @@ unsigned int ATI_API_CALL KAS_Ih_Execute
|
||||
KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X, 0x%08X\n", ih_routine, ih_context);
|
||||
|
||||
//Prevent simultaneous entry on some SMP systems.
|
||||
+ preempt_disable();
|
||||
if (test_and_set_bit(0, (void *)&(kasContext.in_interrupts[smp_processor_id()])))
|
||||
{
|
||||
+ preempt_enable();
|
||||
KCL_DEBUG1(FN_FIREGL_KAS, "The processor is handling the interrupt\n");
|
||||
return IRQ_NONE;
|
||||
}
|
||||
@@ -5036,9 +5042,9 @@ unsigned int ATI_API_CALL KAS_Ih_Execute
|
||||
|
||||
kasSetExecutionLevel(orig_level);
|
||||
spin_unlock(&kasContext.lock_ih);
|
||||
-
|
||||
clear_bit(0, (void *)&(kasContext.in_interrupts[smp_processor_id()]));
|
||||
KCL_DEBUG5(FN_FIREGL_KAS,"%d\n", ret);
|
||||
+ preempt_enable();
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -5256,6 +5262,7 @@ unsigned int ATI_API_CALL KAS_Spinlock_A
|
||||
|
||||
KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X\n", hSpinLock);
|
||||
|
||||
+ preempt_disable();
|
||||
spin_lock_info.routine_type = spinlock_obj->routine_type;
|
||||
spin_lock_info.plock = &(spinlock_obj->lock);
|
||||
|
||||
@@ -5263,6 +5270,7 @@ unsigned int ATI_API_CALL KAS_Spinlock_A
|
||||
|
||||
spinlock_obj->acquire_type = spin_lock_info.acquire_type;
|
||||
spinlock_obj->flags = spin_lock_info.flags;
|
||||
+ preempt_enable();
|
||||
|
||||
KCL_DEBUG5(FN_FIREGL_KAS,"%d\n", ret);
|
||||
return ret;
|
||||
@@ -6034,6 +6042,8 @@ unsigned int ATI_API_CALL KAS_Interlocke
|
||||
|
||||
KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X, 0x%08X, 0x%08X\n", hListHead, hListEntry, phPrevEntry);
|
||||
|
||||
+ preempt_disable();
|
||||
+
|
||||
/* Protect the operation with spinlock */
|
||||
spin_lock_info.routine_type = listhead_obj->routine_type;
|
||||
spin_lock_info.plock = &(listhead_obj->lock);
|
||||
@@ -6041,6 +6051,7 @@ unsigned int ATI_API_CALL KAS_Interlocke
|
||||
if (!kas_spin_lock(&spin_lock_info))
|
||||
{
|
||||
KCL_DEBUG_ERROR("Unable to grab list spinlock\n");
|
||||
+ preempt_enable();
|
||||
return 0; /* No spinlock - no operation */
|
||||
}
|
||||
|
||||
@@ -6065,6 +6076,7 @@ unsigned int ATI_API_CALL KAS_Interlocke
|
||||
spin_unlock_info.flags = spin_lock_info.flags;
|
||||
|
||||
ret = kas_spin_unlock(&spin_unlock_info);
|
||||
+ preempt_enable();
|
||||
KCL_DEBUG5(FN_FIREGL_KAS,"%d", ret);
|
||||
return ret;
|
||||
}
|
||||
@@ -6153,8 +6165,10 @@ unsigned int ATI_API_CALL KAS_Interlocke
|
||||
spin_lock_info.routine_type = listhead_obj->routine_type;
|
||||
spin_lock_info.plock = &(listhead_obj->lock);
|
||||
|
||||
+ preempt_disable();
|
||||
if (!kas_spin_lock(&spin_lock_info))
|
||||
{
|
||||
+ preempt_enable();
|
||||
KCL_DEBUG_ERROR("Unable to grab list spinlock");
|
||||
return 0; /* No spinlock - no operation */
|
||||
}
|
||||
@@ -6178,6 +6192,7 @@ unsigned int ATI_API_CALL KAS_Interlocke
|
||||
spin_unlock_info.flags = spin_lock_info.flags;
|
||||
|
||||
ret = kas_spin_unlock(&spin_unlock_info);
|
||||
+ preempt_enable();
|
||||
KCL_DEBUG5(FN_FIREGL_KAS,"%d", ret);
|
||||
return ret;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-14 15:14:36.000000000 -0400
|
||||
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-14 16:18:58.000000000 -0400
|
||||
@@ -649,6 +649,8 @@ static int firegl_major_proc_read(struct
|
||||
*eof = 1;
|
||||
|
||||
len = snprintf(buf, request, "%d\n", major);
|
||||
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
|
||||
+ seq_printf(m, "%d\n", major);
|
||||
#else
|
||||
len = seq_printf(m, "%d\n", major);
|
||||
#endif
|
||||
@@ -1,27 +0,0 @@
|
||||
From: Vasiliy Yeremeyev <vayerx@gmail.com>
|
||||
Date: Sun, 4 Nov 2012 23:59:36 +0400
|
||||
Subject: [PATCH] KCL_AGP_FindCapsRegisters stub for AGP-less systems
|
||||
|
||||
---
|
||||
common/lib/modules/fglrx/build_mod/kcl_agp.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/common/lib/modules/fglrx/build_mod/kcl_agp.c b/common/lib/modules/fglrx/build_mod/kcl_agp.c
|
||||
index b9c0655..cb1902b 100644
|
||||
--- a/common/lib/modules/fglrx/build_mod/kcl_agp.c
|
||||
+++ b/common/lib/modules/fglrx/build_mod/kcl_agp.c
|
||||
@@ -479,6 +479,11 @@ int ATI_API_CALL KCL_AGP_Enable(unsigned long mode)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
+int ATI_API_CALL KCL_AGP_FindCapsRegisters(KCL_PCI_DevHandle dev)
|
||||
+{
|
||||
+ return -EINVAL;
|
||||
+}
|
||||
+
|
||||
int ATI_API_CALL KCL_AGP_ReadCapsRegisters(KCL_PCI_DevHandle dev, unsigned int *caps)
|
||||
{
|
||||
return -EINVAL;
|
||||
--
|
||||
1.7.12
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
index 22561c5..fdfe65e 100755
|
||||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
@@ -520,6 +520,8 @@ static int func##_wrap(char *buf, char **start, kcl_off_t offset, \
|
||||
}
|
||||
|
||||
#else
|
||||
+#include <linux/seq_file.h>
|
||||
+
|
||||
#define READ_PROC_WRAP(func) \
|
||||
static int func##_wrap(struct seq_file *m, void* data) \
|
||||
{ \
|
||||
@@ -1,13 +0,0 @@
|
||||
--- a/common/lib/modules/fglrx/build_mod/kcl_ioctl.c 2012-05-26 19:11:03.402987821 +0200
|
||||
+++ b/common/lib/modules/fglrx/build_mod/kcl_ioctl.c 2012-05-26 19:13:00.273986422 +0200
|
||||
@@ -217,6 +217,10 @@
|
||||
* \param size [in] Number of bytes to allocate
|
||||
* \return Pointer to allocated memory
|
||||
*/
|
||||
+#ifndef CONFIG_X86_X32
|
||||
+DEFINE_PER_CPU(unsigned long, old_rsp);
|
||||
+#endif
|
||||
+
|
||||
void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
|
||||
{
|
||||
void __user *ret = COMPAT_ALLOC_USER_SPACE(size);
|
||||
@@ -1,40 +0,0 @@
|
||||
--- a/common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh 2012-08-17 22:39:05.077984979 +0800
|
||||
+++ b/common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh 2012-08-17 22:41:15.919976149 +0800
|
||||
@@ -4,6 +4,8 @@
|
||||
# Control script for ACPI lid state and AC adapter state
|
||||
#
|
||||
|
||||
+aticonfig='/opt/bin/aticonfig'
|
||||
+
|
||||
getXuser() {
|
||||
user=`who| grep -m1 ":$displaynum " | awk '{print $1}'`
|
||||
if [ x"$user" = x"" ]; then
|
||||
@@ -47,7 +49,7 @@
|
||||
done
|
||||
|
||||
#If PPLIB is enabled
|
||||
-su $user -c '/usr/bin/aticonfig --pplib-cmd="get version"' | grep PPLIB
|
||||
+su $user -c "$aticonfig --pplib-cmd='get version'" | grep PPLIB
|
||||
if [ $? = 0 ]; then
|
||||
echo "Has PPLIB"
|
||||
has_pplib=1
|
||||
@@ -61,15 +63,15 @@
|
||||
if [ ${lid_closed} -eq 1 -o ${on_dc} -eq 1 ]; then
|
||||
echo "Low power"
|
||||
if [ ${has_pplib} -eq 1 ]; then
|
||||
- su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc dc"'
|
||||
+ su $user -c "$aticonfig --pplib-cmd='notify psrc dc'"
|
||||
else
|
||||
- su $user -c "/usr/bin/aticonfig --set-powerstate=1 --effective=now"
|
||||
+ su $user -c "$aticonfig --set-powerstate=1 --effective=now"
|
||||
fi
|
||||
else
|
||||
echo "high power"
|
||||
if [ ${has_pplib} -eq 1 ]; then
|
||||
- su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc ac"'
|
||||
+ su $user -c "$aticonfig --pplib-cmd='notify psrc ac'"
|
||||
else
|
||||
- su $user -c "/usr/bin/aticonfig --set-powerstate=3 --effective=now"
|
||||
+ su $user -c "$aticonfig --set-powerstate=3 --effective=now"
|
||||
fi
|
||||
fi
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2006 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
depend() {
|
||||
need acpid
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting ${SVCNAME}"
|
||||
start-stop-daemon --start --exec /opt/sbin/atieventsd -- ${ATIEVENTSDOPTS}
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping ${SVCNAME}"
|
||||
start-stop-daemon --stop --quiet --exec /opt/sbin/atieventsd
|
||||
eend $?
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
[Unit]
|
||||
Description=Catalyst event Daemon
|
||||
Requires=acpid.socket
|
||||
|
||||
[Service]
|
||||
ExecStart=/opt/sbin/atieventsd --nodaemon
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,25 +0,0 @@
|
||||
diff -Nur common/lib/modules/fglrx/build_mod/kcl_acpi.c common-r1/lib/modules/fglrx/build_mod/kcl_acpi.c
|
||||
--- common/lib/modules/fglrx/build_mod/kcl_acpi.c 2013-01-29 17:03:51.000000000 +0200
|
||||
+++ common-r1/lib/modules/fglrx/build_mod/kcl_acpi.c 2013-02-15 20:33:10.611838616 +0200
|
||||
@@ -15,6 +15,9 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include <linux/version.h>
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
|
||||
+#include <linux/notifier.h>
|
||||
+#endif
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
|
||||
#include <generated/autoconf.h>
|
||||
#else
|
||||
@@ -145,7 +148,11 @@
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
|
||||
+static notifier_block_no_const firegl_acpi_lid_notifier = {
|
||||
+#else
|
||||
static struct notifier_block firegl_acpi_lid_notifier = {
|
||||
+#endif
|
||||
.notifier_call = firegl_acpi_lid_event,
|
||||
};
|
||||
#endif
|
||||
@@ -1,11 +0,0 @@
|
||||
diff -Nur extra/fgl_glxgears/fgl_glxgears.c extra-r1/fgl_glxgears/fgl_glxgears.c
|
||||
--- extra/fgl_glxgears/fgl_glxgears.c 2012-08-29 09:59:03.000000000 +0300
|
||||
+++ extra-r1/fgl_glxgears/fgl_glxgears.c 2013-09-07 09:26:11.034723135 +0300
|
||||
@@ -78,7 +78,6 @@
|
||||
#endif // _WIN32
|
||||
|
||||
#define INT_PTR ptrdiff_t
|
||||
-#include <GL/glATI.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <GL/wglATI.h>
|
||||
@@ -1,61 +0,0 @@
|
||||
#!/bin/bash
|
||||
# switchlibGL
|
||||
#
|
||||
# Copyright (c) 2011 Advanced Micro Devices, Inc.
|
||||
#
|
||||
# Purpose:
|
||||
# For switch between AMD and Intel graphic driver library.
|
||||
#
|
||||
# Usage:
|
||||
# switchlibGL amd|intel|query
|
||||
# amd: switches to the AMD version of libGL.
|
||||
# intel: switches to the open-source version of libGL .
|
||||
# query: checks, which version is currently active and prints either "amd"
|
||||
# or "intel" or "unknown" on the standard output.
|
||||
# must be root to execute this script
|
||||
|
||||
ARCH=`uname -m`
|
||||
E_ERR=1
|
||||
|
||||
# Check if root
|
||||
if [ "`whoami`" != "root" ]; then
|
||||
echo "Must be root to run this script." 1>&2
|
||||
exit $E_ERR
|
||||
fi
|
||||
|
||||
# One parameter
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Usage: `basename $0` amd|intel|query " 1>&2
|
||||
echo "Please choose one parameter " 1>&2
|
||||
exit $E_ERR
|
||||
fi
|
||||
|
||||
current=$(eselect opengl show)
|
||||
# Switch to right mode
|
||||
case "$1" in
|
||||
"amd" )
|
||||
if [ $current != ati ] ; then
|
||||
eselect opengl set ati || return 1
|
||||
fi
|
||||
;;
|
||||
"intel" )
|
||||
if [ $current != xorg-x11 ] ; then
|
||||
eselect opengl set xorg-x11 || return 1
|
||||
fi
|
||||
;;
|
||||
"query" )
|
||||
case "$current" in
|
||||
"ati" )
|
||||
echo "amd"
|
||||
;;
|
||||
"xorg-x11" )
|
||||
echo "intel"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
* ) echo "Usage: `basename $0` amd|intel|query" 1>&2; exit $E_ERR;;
|
||||
# other than amd|intel|query parameter report an error
|
||||
esac
|
||||
|
||||
# A zero return value from the script upon exit indicates success.
|
||||
exit 0
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2014-10-27 23:30:58.630304842 +0200
|
||||
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2014-10-27 23:32:57.300306011 +0200
|
||||
@@ -6389,7 +6389,7 @@
|
||||
*/
|
||||
void ATI_API_CALL KCL_fpu_begin(void)
|
||||
{
|
||||
-#ifdef CONFIG_X86_64
|
||||
+#if defined(CONFIG_X86_64) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)
|
||||
kernel_fpu_begin();
|
||||
#else
|
||||
#ifdef TS_USEDFPU
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>x11@gentoo.org</email>
|
||||
<description>Assign to herd.</description>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="qt4">
|
||||
Install qt4 dependent optional tools (e.g Catalyst Control Panel)
|
||||
</flag>
|
||||
<flag name="modules">Build the kernel modules</flag>
|
||||
<flag name="gdm-hack">Do a potentially dangerous binary search and replace to fix gdm compatibility</flag>
|
||||
<flag name="pax_kernel">Enable pax kernel specific patches</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user