forked from AUR/linux-vfio
		
	Initial commit - 3.18.4
This commit is contained in:
		
							
								
								
									
										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 }
 | 
				
			||||||
 | 
					 };
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
		Reference in New Issue
	
	Block a user