mirror of
https://aur.archlinux.org/linux-vfio.git
synced 2024-12-26 18:44:10 +00:00
Initial commit - 3.18.4
This commit is contained in:
commit
ad914fbb31
59
.SRCINFO
Normal file
59
.SRCINFO
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
pkgbase = linux-vfio
|
||||||
|
pkgver = 3.18.4
|
||||||
|
pkgrel = 1
|
||||||
|
url = http://www.kernel.org/
|
||||||
|
arch = i686
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL2
|
||||||
|
makedepends = xmlto
|
||||||
|
makedepends = docbook-xsl
|
||||||
|
makedepends = kmod
|
||||||
|
makedepends = inetutils
|
||||||
|
makedepends = bc
|
||||||
|
options = !strip
|
||||||
|
source = https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.18.tar.xz
|
||||||
|
source = https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.18.tar.sign
|
||||||
|
source = https://www.kernel.org/pub/linux/kernel/v3.x/patch-3.18.4.xz
|
||||||
|
source = https://www.kernel.org/pub/linux/kernel/v3.x/patch-3.18.4.sign
|
||||||
|
source = config
|
||||||
|
source = config.x86_64
|
||||||
|
source = linux.preset
|
||||||
|
source = change-default-console-loglevel.patch
|
||||||
|
source = override_for_missing_acs_capabilities.patch
|
||||||
|
source = i915_317.patch
|
||||||
|
sha256sums = becc413cc9e6d7f5cc52a3ce66d65c3725bc1d1cc1001f4ce6c32b69eb188cbd
|
||||||
|
sha256sums = SKIP
|
||||||
|
sha256sums = 57c74ba5266bb10be335a89d30480739b3de67b5a72b3e0b0d37a27775b1862a
|
||||||
|
sha256sums = SKIP
|
||||||
|
sha256sums = d3794c8b2cd11b71914b41f7a4e861369d4fa3c29fdd9e1d677ff0c2167eeb52
|
||||||
|
sha256sums = df7886f5d57f8f85e89987066dfa5c316e922dc0b22e6e6ad01331333db52377
|
||||||
|
sha256sums = f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c
|
||||||
|
sha256sums = 1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99
|
||||||
|
sha256sums = 7320b4abc2918cfb0cb084330a7470887e9a9cfb6496381460bcf4085eb62e0f
|
||||||
|
sha256sums = f86ce528b63f198b84c4d8d92d35329aa4000d462217dc2db03bac5eb693cf19
|
||||||
|
|
||||||
|
pkgname = linux-vfio
|
||||||
|
pkgdesc = The Linux-vfio kernel and modules
|
||||||
|
install = linux.install
|
||||||
|
depends = coreutils
|
||||||
|
depends = linux-firmware
|
||||||
|
depends = kmod
|
||||||
|
depends = mkinitcpio>=0.7
|
||||||
|
optdepends = crda: to set the correct wireless channels of your country
|
||||||
|
provides = kernel26-vfio=3.18.4
|
||||||
|
conflicts = kernel26-vfio
|
||||||
|
replaces = kernel26-vfio
|
||||||
|
backup = etc/mkinitcpio.d/linux-vfio.preset
|
||||||
|
|
||||||
|
pkgname = linux-vfio-headers
|
||||||
|
pkgdesc = Header files and scripts for building modules for Linux-vfio kernel
|
||||||
|
provides = kernel26-vfio-headers=3.18.4
|
||||||
|
conflicts = kernel26-vfio-headers
|
||||||
|
replaces = kernel26-vfio-headers
|
||||||
|
|
||||||
|
pkgname = linux-vfio-docs
|
||||||
|
pkgdesc = Kernel hackers manual - HTML documentation that comes with the Linux-vfio kernel
|
||||||
|
provides = kernel26-vfio-docs=3.18.4
|
||||||
|
conflicts = kernel26-vfio-docs
|
||||||
|
replaces = kernel26-vfio-docs
|
||||||
|
|
308
PKGBUILD
Normal file
308
PKGBUILD
Normal file
@ -0,0 +1,308 @@
|
|||||||
|
#Maintainer: Dan Ziemba <zman0900@gmail.com>
|
||||||
|
|
||||||
|
pkgbase=linux-vfio
|
||||||
|
_srcname=linux-3.18
|
||||||
|
pkgver=3.18.4
|
||||||
|
pkgrel=1
|
||||||
|
arch=('i686' 'x86_64')
|
||||||
|
url="http://www.kernel.org/"
|
||||||
|
license=('GPL2')
|
||||||
|
makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
|
||||||
|
options=('!strip')
|
||||||
|
source=("https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
|
||||||
|
"https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.sign"
|
||||||
|
"https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
|
||||||
|
"https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.sign"
|
||||||
|
# the main kernel config files
|
||||||
|
'config' 'config.x86_64'
|
||||||
|
# standard config files for mkinitcpio ramdisk
|
||||||
|
'linux.preset'
|
||||||
|
'change-default-console-loglevel.patch'
|
||||||
|
'override_for_missing_acs_capabilities.patch'
|
||||||
|
'i915_317.patch'
|
||||||
|
)
|
||||||
|
sha256sums=('becc413cc9e6d7f5cc52a3ce66d65c3725bc1d1cc1001f4ce6c32b69eb188cbd'
|
||||||
|
'SKIP'
|
||||||
|
'57c74ba5266bb10be335a89d30480739b3de67b5a72b3e0b0d37a27775b1862a'
|
||||||
|
'SKIP'
|
||||||
|
'd3794c8b2cd11b71914b41f7a4e861369d4fa3c29fdd9e1d677ff0c2167eeb52'
|
||||||
|
'df7886f5d57f8f85e89987066dfa5c316e922dc0b22e6e6ad01331333db52377'
|
||||||
|
'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c'
|
||||||
|
'1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
|
||||||
|
'7320b4abc2918cfb0cb084330a7470887e9a9cfb6496381460bcf4085eb62e0f'
|
||||||
|
'f86ce528b63f198b84c4d8d92d35329aa4000d462217dc2db03bac5eb693cf19')
|
||||||
|
validpgpkeys=(
|
||||||
|
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
|
||||||
|
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
|
||||||
|
)
|
||||||
|
|
||||||
|
_kernelname=${pkgbase#linux}
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd "${srcdir}/${_srcname}"
|
||||||
|
|
||||||
|
# add upstream patch
|
||||||
|
patch -p1 -i "${srcdir}/patch-${pkgver}"
|
||||||
|
|
||||||
|
# add latest fixes from stable queue, if needed
|
||||||
|
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
|
||||||
|
|
||||||
|
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
|
||||||
|
# remove this when a Kconfig knob is made available by upstream
|
||||||
|
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
|
||||||
|
patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
|
||||||
|
|
||||||
|
if [ "${CARCH}" = "x86_64" ]; then
|
||||||
|
cat "${srcdir}/config.x86_64" > ./.config
|
||||||
|
else
|
||||||
|
cat "${srcdir}/config" > ./.config
|
||||||
|
fi
|
||||||
|
|
||||||
|
# patches for vga arbiter fix in intel systems
|
||||||
|
patch -Np1 -i "${srcdir}/i915_317.patch"
|
||||||
|
|
||||||
|
# Overrides for missing acs capabilities
|
||||||
|
patch -p1 -i "${srcdir}/override_for_missing_acs_capabilities.patch"
|
||||||
|
|
||||||
|
if [ "${_kernelname}" != "" ]; then
|
||||||
|
sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
|
||||||
|
sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set extraversion to pkgrel
|
||||||
|
sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
|
||||||
|
|
||||||
|
# don't run depmod on 'make install'. We'll do this ourselves in packaging
|
||||||
|
sed -i '2iexit 0' scripts/depmod.sh
|
||||||
|
|
||||||
|
# get kernel version
|
||||||
|
make prepare
|
||||||
|
|
||||||
|
# load configuration
|
||||||
|
# Configure the kernel. Replace the line below with one of your choice.
|
||||||
|
#make menuconfig # CLI menu for configuration
|
||||||
|
#make nconfig # new CLI menu for configuration
|
||||||
|
#make xconfig # X-based configuration
|
||||||
|
#make oldconfig # using old config from previous kernel version
|
||||||
|
# ... or manually edit .config
|
||||||
|
|
||||||
|
# rewrite configuration
|
||||||
|
yes "" | make config >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "${srcdir}/${_srcname}"
|
||||||
|
|
||||||
|
make ${MAKEFLAGS} LOCALVERSION= bzImage modules
|
||||||
|
}
|
||||||
|
|
||||||
|
_package() {
|
||||||
|
pkgdesc="The ${pkgbase/linux/Linux} kernel and modules"
|
||||||
|
[ "${pkgbase}" = "linux" ] && groups=('base')
|
||||||
|
depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
|
||||||
|
optdepends=('crda: to set the correct wireless channels of your country')
|
||||||
|
provides=("kernel26${_kernelname}=${pkgver}")
|
||||||
|
conflicts=("kernel26${_kernelname}")
|
||||||
|
replaces=("kernel26${_kernelname}")
|
||||||
|
backup=("etc/mkinitcpio.d/${pkgbase}.preset")
|
||||||
|
install=linux.install
|
||||||
|
|
||||||
|
cd "${srcdir}/${_srcname}"
|
||||||
|
|
||||||
|
KARCH=x86
|
||||||
|
|
||||||
|
# get kernel version
|
||||||
|
_kernver="$(make LOCALVERSION= kernelrelease)"
|
||||||
|
_basekernel=${_kernver%%-*}
|
||||||
|
_basekernel=${_basekernel%.*}
|
||||||
|
|
||||||
|
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
|
||||||
|
make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
|
||||||
|
cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
|
||||||
|
|
||||||
|
# set correct depmod command for install
|
||||||
|
cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
|
||||||
|
true && install=${install}.pkg
|
||||||
|
sed \
|
||||||
|
-e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \
|
||||||
|
-e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \
|
||||||
|
-i "${startdir}/${install}"
|
||||||
|
|
||||||
|
# install mkinitcpio preset file for kernel
|
||||||
|
install -D -m644 "${srcdir}/linux.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
|
||||||
|
sed \
|
||||||
|
-e "1s|'linux.*'|'${pkgbase}'|" \
|
||||||
|
-e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \
|
||||||
|
-e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \
|
||||||
|
-e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
|
||||||
|
-i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
|
||||||
|
|
||||||
|
# remove build and source links
|
||||||
|
rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
|
||||||
|
# remove the firmware
|
||||||
|
rm -rf "${pkgdir}/lib/firmware"
|
||||||
|
# gzip -9 all modules to save 100MB of space
|
||||||
|
find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
|
||||||
|
# make room for external modules
|
||||||
|
ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
|
||||||
|
# add real version for building modules and running depmod from post_install/upgrade
|
||||||
|
mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
|
||||||
|
echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
|
||||||
|
|
||||||
|
# Now we call depmod...
|
||||||
|
depmod -b "${pkgdir}" -F System.map "${_kernver}"
|
||||||
|
|
||||||
|
# move module tree /lib -> /usr/lib
|
||||||
|
mkdir -p "${pkgdir}/usr"
|
||||||
|
mv "${pkgdir}/lib" "${pkgdir}/usr/"
|
||||||
|
|
||||||
|
# add vmlinux
|
||||||
|
install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
|
||||||
|
}
|
||||||
|
|
||||||
|
_package-headers() {
|
||||||
|
pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
|
||||||
|
provides=("kernel26${_kernelname}-headers=${pkgver}")
|
||||||
|
conflicts=("kernel26${_kernelname}-headers")
|
||||||
|
replaces=("kernel26${_kernelname}-headers")
|
||||||
|
|
||||||
|
install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
|
||||||
|
|
||||||
|
cd "${srcdir}/${_srcname}"
|
||||||
|
install -D -m644 Makefile \
|
||||||
|
"${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
|
||||||
|
install -D -m644 kernel/Makefile \
|
||||||
|
"${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
|
||||||
|
install -D -m644 .config \
|
||||||
|
"${pkgdir}/usr/lib/modules/${_kernver}/build/.config"
|
||||||
|
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
|
||||||
|
|
||||||
|
for i in acpi asm-generic config crypto drm generated keys linux math-emu \
|
||||||
|
media net pcmcia scsi sound trace uapi video xen; do
|
||||||
|
cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
|
||||||
|
done
|
||||||
|
|
||||||
|
# copy arch includes for external modules
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
|
||||||
|
cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"
|
||||||
|
|
||||||
|
# copy files necessary for later builds, like nvidia and vmware
|
||||||
|
cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
|
||||||
|
cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
|
||||||
|
|
||||||
|
# fix permissions on scripts dir
|
||||||
|
chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
|
||||||
|
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
|
||||||
|
|
||||||
|
cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
|
||||||
|
|
||||||
|
if [ "${CARCH}" = "i686" ]; then
|
||||||
|
cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
|
||||||
|
|
||||||
|
# add docbook makefile
|
||||||
|
install -D -m644 Documentation/DocBook/Makefile \
|
||||||
|
"${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
|
||||||
|
|
||||||
|
# add dm headers
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
|
||||||
|
cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
|
||||||
|
|
||||||
|
# add inotify.h
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
|
||||||
|
cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"
|
||||||
|
|
||||||
|
# add wireless headers
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
|
||||||
|
cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
|
||||||
|
|
||||||
|
# add dvb headers for external modules
|
||||||
|
# in reference to:
|
||||||
|
# http://bugs.archlinux.org/task/9912
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
|
||||||
|
cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
|
||||||
|
# and...
|
||||||
|
# http://bugs.archlinux.org/task/11194
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
|
||||||
|
cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
|
||||||
|
|
||||||
|
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
|
||||||
|
# in reference to:
|
||||||
|
# http://bugs.archlinux.org/task/13146
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
|
||||||
|
cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
|
||||||
|
cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
|
||||||
|
|
||||||
|
# add dvb headers
|
||||||
|
# in reference to:
|
||||||
|
# http://bugs.archlinux.org/task/20402
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
|
||||||
|
cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
|
||||||
|
cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
|
||||||
|
cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
|
||||||
|
|
||||||
|
# add xfs and shmem for aufs building
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
|
||||||
|
# removed in 3.17 series
|
||||||
|
# cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
|
||||||
|
|
||||||
|
# copy in Kconfig files
|
||||||
|
for i in $(find . -name "Kconfig*"); do
|
||||||
|
mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
|
||||||
|
cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
|
||||||
|
done
|
||||||
|
|
||||||
|
chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
|
||||||
|
find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
|
||||||
|
|
||||||
|
# strip scripts directory
|
||||||
|
find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
|
||||||
|
case "$(file -bi "${binary}")" in
|
||||||
|
*application/x-sharedlib*) # Libraries (.so)
|
||||||
|
/usr/bin/strip ${STRIP_SHARED} "${binary}";;
|
||||||
|
*application/x-archive*) # Libraries (.a)
|
||||||
|
/usr/bin/strip ${STRIP_STATIC} "${binary}";;
|
||||||
|
*application/x-executable*) # Binaries
|
||||||
|
/usr/bin/strip ${STRIP_BINARIES} "${binary}";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# remove unneeded architectures
|
||||||
|
rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
|
||||||
|
}
|
||||||
|
|
||||||
|
_package-docs() {
|
||||||
|
pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
|
||||||
|
provides=("kernel26${_kernelname}-docs=${pkgver}")
|
||||||
|
conflicts=("kernel26${_kernelname}-docs")
|
||||||
|
replaces=("kernel26${_kernelname}-docs")
|
||||||
|
|
||||||
|
cd "${srcdir}/${_srcname}"
|
||||||
|
|
||||||
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
|
||||||
|
cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
|
||||||
|
find "${pkgdir}" -type f -exec chmod 444 {} \;
|
||||||
|
find "${pkgdir}" -type d -exec chmod 755 {} \;
|
||||||
|
|
||||||
|
# remove a file already in linux package
|
||||||
|
rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
|
||||||
|
for _p in ${pkgname[@]}; do
|
||||||
|
eval "package_${_p}() {
|
||||||
|
$(declare -f "_package${_p#${pkgbase}}")
|
||||||
|
_package${_p#${pkgbase}}
|
||||||
|
}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# vim:set ts=8 sts=2 sw=2 et:
|
5
README
Normal file
5
README
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
This is an Arch Linux PKGBUILD that tracks the repositoriy kernel version but
|
||||||
|
has the necessary patches applied to allow GPU passthrough with KVM using
|
||||||
|
vfio.
|
||||||
|
|
||||||
|
See https://bbs.archlinux.org/viewtopic.php?id=162768 for more info.
|
11
change-default-console-loglevel.patch
Normal file
11
change-default-console-loglevel.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- linux-3.16/include/linux/printk.h.old 2014-08-04 18:48:30.686043266 +0200
|
||||||
|
+++ linux-3.16/include/linux/printk.h 2014-08-04 18:48:47.706218528 +0200
|
||||||
|
@@ -37,7 +37,7 @@
|
||||||
|
#define CONSOLE_LOGLEVEL_SILENT 0 /* Mum's the word */
|
||||||
|
#define CONSOLE_LOGLEVEL_MIN 1 /* Minimum loglevel we let people use */
|
||||||
|
#define CONSOLE_LOGLEVEL_QUIET 4 /* Shhh ..., when booted with "quiet" */
|
||||||
|
-#define CONSOLE_LOGLEVEL_DEFAULT 7 /* anything MORE serious than KERN_DEBUG */
|
||||||
|
+#define CONSOLE_LOGLEVEL_DEFAULT 4 /* anything MORE serious than KERN_DEBUG */
|
||||||
|
#define CONSOLE_LOGLEVEL_DEBUG 10 /* issue debug messages */
|
||||||
|
#define CONSOLE_LOGLEVEL_MOTORMOUTH 15 /* You can't shut this one up */
|
||||||
|
|
6972
config.x86_64
Normal file
6972
config.x86_64
Normal file
File diff suppressed because it is too large
Load Diff
156
i915_317.patch
Normal file
156
i915_317.patch
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
diff -rupN linux-3.17.old/drivers/gpu/drm/i915/i915_dma.c linux-3.17/drivers/gpu/drm/i915/i915_dma.c
|
||||||
|
--- linux-3.17.old/drivers/gpu/drm/i915/i915_dma.c 2014-10-05 17:23:04.000000000 -0200
|
||||||
|
+++ linux-3.17/drivers/gpu/drm/i915/i915_dma.c 2014-10-08 13:25:35.261920170 -0200
|
||||||
|
@@ -1316,10 +1316,20 @@ static int i915_load_modeset_init(struct
|
||||||
|
* If we are a secondary display controller (!PCI_DISPLAY_CLASS_VGA),
|
||||||
|
* then we do not take part in VGA arbitration and the
|
||||||
|
* vga_client_register() fails with -ENODEV.
|
||||||
|
+ *
|
||||||
|
+ * NB. The set_decode callback here actually only works on GMCH
|
||||||
|
+ * devices, on newer HD devices we can only disable VGA MMIO space.
|
||||||
|
+ * Disabling VGA I/O space requires disabling I/O in the PCI command
|
||||||
|
+ * register. Nonetheless, we like to pretend that we participate in
|
||||||
|
+ * VGA arbitration and can dynamically disable VGA I/O space because
|
||||||
|
+ * this makes X happy, even though it's a complete lie.
|
||||||
|
*/
|
||||||
|
- ret = vga_client_register(dev->pdev, dev, NULL, i915_vga_set_decode);
|
||||||
|
- if (ret && ret != -ENODEV)
|
||||||
|
- goto out;
|
||||||
|
+ if (!i915.enable_hd_vgaarb || !HAS_PCH_SPLIT(dev)) {
|
||||||
|
+ ret = vga_client_register(dev->pdev, dev, NULL,
|
||||||
|
+ i915_vga_set_decode);
|
||||||
|
+ if (ret && ret != -ENODEV)
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
intel_register_dsm_handler();
|
||||||
|
|
||||||
|
@@ -1369,6 +1379,12 @@ static int i915_load_modeset_init(struct
|
||||||
|
if (ret)
|
||||||
|
goto cleanup_gem;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * Must do this after fbcon init so that
|
||||||
|
+ * vgacon_save_screen() works during the handover.
|
||||||
|
+ */
|
||||||
|
+ i915_disable_vga_mem(dev);
|
||||||
|
+
|
||||||
|
/* Only enable hotplug handling once the fbdev is fully set up. */
|
||||||
|
intel_hpd_init(dev);
|
||||||
|
|
||||||
|
diff -rupN linux-3.17.old/drivers/gpu/drm/i915/i915_drv.h linux-3.17/drivers/gpu/drm/i915/i915_drv.h
|
||||||
|
--- linux-3.17.old/drivers/gpu/drm/i915/i915_drv.h 2014-10-05 17:23:04.000000000 -0200
|
||||||
|
+++ linux-3.17/drivers/gpu/drm/i915/i915_drv.h 2014-10-08 13:26:45.200867353 -0200
|
||||||
|
@@ -2147,6 +2147,7 @@ struct i915_params {
|
||||||
|
bool reset;
|
||||||
|
bool disable_display;
|
||||||
|
bool disable_vtd_wa;
|
||||||
|
+ bool enable_hd_vgaarb;
|
||||||
|
int use_mmio_flip;
|
||||||
|
bool mmio_debug;
|
||||||
|
};
|
||||||
|
diff -rupN linux-3.17.old/drivers/gpu/drm/i915/i915_params.c linux-3.17/drivers/gpu/drm/i915/i915_params.c
|
||||||
|
--- linux-3.17.old/drivers/gpu/drm/i915/i915_params.c 2014-10-05 17:23:04.000000000 -0200
|
||||||
|
+++ linux-3.17/drivers/gpu/drm/i915/i915_params.c 2014-10-08 13:28:08.960803683 -0200
|
||||||
|
@@ -48,6 +48,7 @@ struct i915_params i915 __read_mostly =
|
||||||
|
.disable_display = 0,
|
||||||
|
.enable_cmd_parser = 1,
|
||||||
|
.disable_vtd_wa = 0,
|
||||||
|
+ .enable_hd_vgaarb = false,
|
||||||
|
.use_mmio_flip = 0,
|
||||||
|
.mmio_debug = 0,
|
||||||
|
};
|
||||||
|
@@ -159,6 +160,10 @@ module_param_named(enable_cmd_parser, i9
|
||||||
|
MODULE_PARM_DESC(enable_cmd_parser,
|
||||||
|
"Enable command parsing (1=enabled [default], 0=disabled)");
|
||||||
|
|
||||||
|
+module_param_named(enable_hd_vgaarb, i915.enable_hd_vgaarb, bool, 0444);
|
||||||
|
+MODULE_PARM_DESC(enable_hd_vgaarb,
|
||||||
|
+ "Enable support for VGA arbitration on Intel HD IGD. (default: false)");
|
||||||
|
+
|
||||||
|
module_param_named(use_mmio_flip, i915.use_mmio_flip, int, 0600);
|
||||||
|
MODULE_PARM_DESC(use_mmio_flip,
|
||||||
|
"use MMIO flips (-1=never, 0=driver discretion [default], 1=always)");
|
||||||
|
diff -rupN linux-3.17.old/drivers/gpu/drm/i915/intel_display.c linux-3.17/drivers/gpu/drm/i915/intel_display.c
|
||||||
|
--- linux-3.17.old/drivers/gpu/drm/i915/intel_display.c 2014-10-05 17:23:04.000000000 -0200
|
||||||
|
+++ linux-3.17/drivers/gpu/drm/i915/intel_display.c 2014-10-08 13:25:35.416920053 -0200
|
||||||
|
@@ -12554,6 +12554,33 @@ static void i915_disable_vga(struct drm_
|
||||||
|
POSTING_READ(vga_reg);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void i915_enable_vga_mem(struct drm_device *dev)
|
||||||
|
+{
|
||||||
|
+ /* Enable VGA memory on Intel HD */
|
||||||
|
+ if (i915.enable_hd_vgaarb && HAS_PCH_SPLIT(dev)) {
|
||||||
|
+ vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO);
|
||||||
|
+ outb(inb(VGA_MSR_READ) | VGA_MSR_MEM_EN, VGA_MSR_WRITE);
|
||||||
|
+ vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO |
|
||||||
|
+ VGA_RSRC_LEGACY_MEM |
|
||||||
|
+ VGA_RSRC_NORMAL_IO |
|
||||||
|
+ VGA_RSRC_NORMAL_MEM);
|
||||||
|
+ vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void i915_disable_vga_mem(struct drm_device *dev)
|
||||||
|
+{
|
||||||
|
+ /* Disable VGA memory on Intel HD */
|
||||||
|
+ if (i915.enable_hd_vgaarb && HAS_PCH_SPLIT(dev)) {
|
||||||
|
+ vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO);
|
||||||
|
+ outb(inb(VGA_MSR_READ) & ~VGA_MSR_MEM_EN, VGA_MSR_WRITE);
|
||||||
|
+ vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO |
|
||||||
|
+ VGA_RSRC_NORMAL_IO |
|
||||||
|
+ VGA_RSRC_NORMAL_MEM);
|
||||||
|
+ vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void intel_modeset_init_hw(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
intel_prepare_ddi(dev);
|
||||||
|
@@ -12891,6 +12918,7 @@ void i915_redisable_vga_power_on(struct
|
||||||
|
if (!(I915_READ(vga_reg) & VGA_DISP_DISABLE)) {
|
||||||
|
DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n");
|
||||||
|
i915_disable_vga(dev);
|
||||||
|
+ i915_disable_vga_mem(dev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -13144,6 +13172,8 @@ void intel_modeset_cleanup(struct drm_de
|
||||||
|
|
||||||
|
intel_disable_fbc(dev);
|
||||||
|
|
||||||
|
+ i915_enable_vga_mem(dev);
|
||||||
|
+
|
||||||
|
intel_disable_gt_powersave(dev);
|
||||||
|
|
||||||
|
ironlake_teardown_rc6(dev);
|
||||||
|
diff -rupN linux-3.17.old/drivers/gpu/drm/i915/intel_drv.h linux-3.17/drivers/gpu/drm/i915/intel_drv.h
|
||||||
|
--- linux-3.17.old/drivers/gpu/drm/i915/intel_drv.h 2014-10-05 17:23:04.000000000 -0200
|
||||||
|
+++ linux-3.17/drivers/gpu/drm/i915/intel_drv.h 2014-10-08 13:25:35.416920053 -0200
|
||||||
|
@@ -1102,4 +1102,6 @@ int intel_sprite_get_colorkey(struct drm
|
||||||
|
/* intel_tv.c */
|
||||||
|
void intel_tv_init(struct drm_device *dev);
|
||||||
|
|
||||||
|
+extern void i915_disable_vga_mem(struct drm_device *dev);
|
||||||
|
+
|
||||||
|
#endif /* __INTEL_DRV_H__ */
|
||||||
|
diff -rupN linux-3.17.old/include/linux/vgaarb.h linux-3.17/include/linux/vgaarb.h
|
||||||
|
--- linux-3.17.old/include/linux/vgaarb.h 2014-10-05 17:23:04.000000000 -0200
|
||||||
|
+++ linux-3.17/include/linux/vgaarb.h 2014-10-08 13:25:35.426920046 -0200
|
||||||
|
@@ -65,8 +65,15 @@ struct pci_dev;
|
||||||
|
* out of the arbitration process (and can be safe to take
|
||||||
|
* interrupts at any time.
|
||||||
|
*/
|
||||||
|
+#if defined(CONFIG_VGA_ARB)
|
||||||
|
extern void vga_set_legacy_decoding(struct pci_dev *pdev,
|
||||||
|
unsigned int decodes);
|
||||||
|
+#else
|
||||||
|
+static inline void vga_set_legacy_decoding(struct pci_dev *pdev,
|
||||||
|
+ unsigned int decodes)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vga_get - acquire & locks VGA resources
|
37
linux.install
Normal file
37
linux.install
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# arg 1: the new package version
|
||||||
|
# arg 2: the old package version
|
||||||
|
|
||||||
|
KERNEL_NAME=
|
||||||
|
KERNEL_VERSION=
|
||||||
|
|
||||||
|
post_install () {
|
||||||
|
# updating module dependencies
|
||||||
|
echo ">>> Updating module dependencies. Please wait ..."
|
||||||
|
depmod ${KERNEL_VERSION}
|
||||||
|
echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
|
||||||
|
mkinitcpio -p linux${KERNEL_NAME}
|
||||||
|
}
|
||||||
|
|
||||||
|
post_upgrade() {
|
||||||
|
if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
|
||||||
|
echo "WARNING: /boot appears to be a separate partition but is not mounted."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# updating module dependencies
|
||||||
|
echo ">>> Updating module dependencies. Please wait ..."
|
||||||
|
depmod ${KERNEL_VERSION}
|
||||||
|
echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
|
||||||
|
mkinitcpio -p linux${KERNEL_NAME}
|
||||||
|
|
||||||
|
if [ $(vercmp $2 3.13) -lt 0 ]; then
|
||||||
|
echo ">>> WARNING: AT keyboard support is no longer built into the kernel."
|
||||||
|
echo ">>> In order to use your keyboard during early init, you MUST"
|
||||||
|
echo ">>> include the 'keyboard' hook in your mkinitcpio.conf."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
post_remove() {
|
||||||
|
# also remove the compat symlinks
|
||||||
|
rm -f boot/initramfs-linux${KERNEL_NAME}.img
|
||||||
|
rm -f boot/initramfs-linux${KERNEL_NAME}-fallback.img
|
||||||
|
}
|
14
linux.preset
Normal file
14
linux.preset
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# mkinitcpio preset file for the 'linux' package
|
||||||
|
|
||||||
|
ALL_config="/etc/mkinitcpio.conf"
|
||||||
|
ALL_kver="/boot/vmlinuz-linux"
|
||||||
|
|
||||||
|
PRESETS=('default' 'fallback')
|
||||||
|
|
||||||
|
#default_config="/etc/mkinitcpio.conf"
|
||||||
|
default_image="/boot/initramfs-linux.img"
|
||||||
|
#default_options=""
|
||||||
|
|
||||||
|
#fallback_config="/etc/mkinitcpio.conf"
|
||||||
|
fallback_image="/boot/initramfs-linux-fallback.img"
|
||||||
|
fallback_options="-S autodetect"
|
147
override_for_missing_acs_capabilities.patch
Normal file
147
override_for_missing_acs_capabilities.patch
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
diff -rupN linux-3.15.old/Documentation/kernel-parameters.txt linux-3.15/Documentation/kernel-parameters.txt
|
||||||
|
--- linux-3.15.old/Documentation/kernel-parameters.txt 2014-06-08 15:19:54.000000000 -0300
|
||||||
|
+++ linux-3.15/Documentation/kernel-parameters.txt 2014-06-09 18:05:31.744055580 -0300
|
||||||
|
@@ -2554,6 +2554,16 @@ bytes respectively. Such letter suffixes
|
||||||
|
nomsi Do not use MSI for native PCIe PME signaling (this makes
|
||||||
|
all PCIe root ports use INTx for all services).
|
||||||
|
|
||||||
|
+ pcie_acs_override =
|
||||||
|
+ [PCIE] Override missing PCIe ACS support for:
|
||||||
|
+ downstream
|
||||||
|
+ All downstream ports - full ACS capabilties
|
||||||
|
+ multifunction
|
||||||
|
+ All multifunction devices - multifunction ACS subset
|
||||||
|
+ id:nnnn:nnnn
|
||||||
|
+ Specfic device - full ACS capabilities
|
||||||
|
+ Specified as vid:did (vendor/device ID) in hex
|
||||||
|
+
|
||||||
|
pcmv= [HW,PCMCIA] BadgePAD 4
|
||||||
|
|
||||||
|
pd_ignore_unused
|
||||||
|
diff -rupN linux-3.15.old/drivers/pci/quirks.c linux-3.15/drivers/pci/quirks.c
|
||||||
|
--- linux-3.15.old/drivers/pci/quirks.c 2014-06-08 15:19:54.000000000 -0300
|
||||||
|
+++ linux-3.15/drivers/pci/quirks.c 2014-06-09 18:06:36.688743183 -0300
|
||||||
|
@@ -3384,6 +3384,107 @@ struct pci_dev *pci_get_dma_source(struc
|
||||||
|
return pci_dev_get(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static bool acs_on_downstream;
|
||||||
|
+static bool acs_on_multifunction;
|
||||||
|
+
|
||||||
|
+#define NUM_ACS_IDS 16
|
||||||
|
+struct acs_on_id {
|
||||||
|
+ unsigned short vendor;
|
||||||
|
+ unsigned short device;
|
||||||
|
+};
|
||||||
|
+static struct acs_on_id acs_on_ids[NUM_ACS_IDS];
|
||||||
|
+static u8 max_acs_id;
|
||||||
|
+
|
||||||
|
+static __init int pcie_acs_override_setup(char *p)
|
||||||
|
+{
|
||||||
|
+ if (!p)
|
||||||
|
+ return -EINVAL;
|
||||||
|
+
|
||||||
|
+ while (*p) {
|
||||||
|
+ if (!strncmp(p, "downstream", 10))
|
||||||
|
+ acs_on_downstream = true;
|
||||||
|
+ if (!strncmp(p, "multifunction", 13))
|
||||||
|
+ acs_on_multifunction = true;
|
||||||
|
+ if (!strncmp(p, "id:", 3)) {
|
||||||
|
+ char opt[5];
|
||||||
|
+ int ret;
|
||||||
|
+ long val;
|
||||||
|
+
|
||||||
|
+ if (max_acs_id >= NUM_ACS_IDS - 1) {
|
||||||
|
+ pr_warn("Out of PCIe ACS override slots (%d)\n",
|
||||||
|
+ NUM_ACS_IDS);
|
||||||
|
+ goto next;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ p += 3;
|
||||||
|
+ snprintf(opt, 5, "%s", p);
|
||||||
|
+ ret = kstrtol(opt, 16, &val);
|
||||||
|
+ if (ret) {
|
||||||
|
+ pr_warn("PCIe ACS ID parse error %d\n", ret);
|
||||||
|
+ goto next;
|
||||||
|
+ }
|
||||||
|
+ acs_on_ids[max_acs_id].vendor = val;
|
||||||
|
+
|
||||||
|
+ p += strcspn(p, ":");
|
||||||
|
+ if (*p != ':') {
|
||||||
|
+ pr_warn("PCIe ACS invalid ID\n");
|
||||||
|
+ goto next;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ p++;
|
||||||
|
+ snprintf(opt, 5, "%s", p);
|
||||||
|
+ ret = kstrtol(opt, 16, &val);
|
||||||
|
+ if (ret) {
|
||||||
|
+ pr_warn("PCIe ACS ID parse error %d\n", ret);
|
||||||
|
+ goto next;
|
||||||
|
+ }
|
||||||
|
+ acs_on_ids[max_acs_id].device = val;
|
||||||
|
+ max_acs_id++;
|
||||||
|
+ }
|
||||||
|
+next:
|
||||||
|
+ p += strcspn(p, ",");
|
||||||
|
+ if (*p == ',')
|
||||||
|
+ p++;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (acs_on_downstream || acs_on_multifunction || max_acs_id)
|
||||||
|
+ pr_warn("Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA\n");
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+early_param("pcie_acs_override", pcie_acs_override_setup);
|
||||||
|
+
|
||||||
|
+static int pcie_acs_overrides(struct pci_dev *dev, u16 acs_flags)
|
||||||
|
+{
|
||||||
|
+ int i;
|
||||||
|
+
|
||||||
|
+ /* Never override ACS for legacy devices or devices with ACS caps */
|
||||||
|
+ if (!pci_is_pcie(dev) ||
|
||||||
|
+ pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS))
|
||||||
|
+ return -ENOTTY;
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < max_acs_id; i++)
|
||||||
|
+ if (acs_on_ids[i].vendor == dev->vendor &&
|
||||||
|
+ acs_on_ids[i].device == dev->device)
|
||||||
|
+ return 1;
|
||||||
|
+
|
||||||
|
+ switch (pci_pcie_type(dev)) {
|
||||||
|
+ case PCI_EXP_TYPE_DOWNSTREAM:
|
||||||
|
+ case PCI_EXP_TYPE_ROOT_PORT:
|
||||||
|
+ if (acs_on_downstream)
|
||||||
|
+ return 1;
|
||||||
|
+ break;
|
||||||
|
+ case PCI_EXP_TYPE_ENDPOINT:
|
||||||
|
+ case PCI_EXP_TYPE_UPSTREAM:
|
||||||
|
+ case PCI_EXP_TYPE_LEG_END:
|
||||||
|
+ case PCI_EXP_TYPE_RC_END:
|
||||||
|
+ if (acs_on_multifunction && dev->multifunction)
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return -ENOTTY;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* AMD has indicated that the devices below do not support peer-to-peer
|
||||||
|
* in any system where they are found in the southbridge with an AMD
|
||||||
|
@@ -3483,6 +3584,7 @@ static int pci_quirk_intel_pch_acs(struc
|
||||||
|
return acs_flags & ~flags ? 0 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+
|
||||||
|
static const struct pci_dev_acs_enabled {
|
||||||
|
u16 vendor;
|
||||||
|
u16 device;
|
||||||
|
@@ -3495,6 +3597,7 @@ static const struct pci_dev_acs_enabled
|
||||||
|
{ PCI_VENDOR_ID_ATI, 0x4384, pci_quirk_amd_sb_acs },
|
||||||
|
{ PCI_VENDOR_ID_ATI, 0x4399, pci_quirk_amd_sb_acs },
|
||||||
|
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_pch_acs },
|
||||||
|
+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides },
|
||||||
|
{ 0 }
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user