From 363055c8178e96796bbae1ec25e925ced1db5ec1 Mon Sep 17 00:00:00 2001 From: moonman Date: Tue, 11 Dec 2012 18:28:40 -0700 Subject: [PATCH] PCI-E patch for kirkwoods, updated cryptodev to v1.5 --- core/linux/PKGBUILD | 9 ++++++--- core/linux/config | 4 ++-- core/linux/pciefix.patch | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 core/linux/pciefix.patch diff --git a/core/linux/PKGBUILD b/core/linux/PKGBUILD index b793aa3c2..4895f68d5 100644 --- a/core/linux/PKGBUILD +++ b/core/linux/PKGBUILD @@ -10,17 +10,17 @@ pkgname=('linux' 'linux-headers') _kernelname=${pkgname#linux} _basekernel=3.1 pkgver=${_basekernel}.10 -pkgrel=14 -cryptover=1.4 +pkgrel=15 +cryptover=1.5 arch=('arm') url="http://www.kernel.org/" license=('GPL2') makedepends=('xmlto' 'docbook-xsl' 'uboot-mkimage') options=('!strip') source=("ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-${_basekernel}.tar.bz2" - "ftp://ftp.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.bz2" 'archlinuxarm.patch' + 'pciefix.patch' 'support.patch' 'aufs3-kbuild.patch' 'aufs3-base.patch' @@ -38,6 +38,9 @@ build() { # add upstream patch patch -p1 -i "${srcdir}/patch-${pkgver}" + #Add the pci-e patch backported from 3.6.10 for kirkwoods + patch -Np1 -i "${srcdir}/pciefix.patch" + # Add the USB_QUIRK_RESET_RESUME for several webcams # FS#26528 patch -Np1 -i "${srcdir}/usb-add-reset-resume-quirk-for-several-webcams.patch" diff --git a/core/linux/config b/core/linux/config index c5f439918..de3560d4f 100644 --- a/core/linux/config +++ b/core/linux/config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.1.10-13 Kernel Configuration +# Linux/arm 3.1.10-15 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -1502,7 +1502,7 @@ CONFIG_ATH5K_PCI=y CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m CONFIG_ATH9K=m -# CONFIG_ATH9K_PCI is not set +CONFIG_ATH9K_PCI=y # CONFIG_ATH9K_AHB is not set # CONFIG_ATH9K_DEBUGFS is not set CONFIG_ATH9K_RATE_CONTROL=y diff --git a/core/linux/pciefix.patch b/core/linux/pciefix.patch new file mode 100644 index 000000000..1c91d39b7 --- /dev/null +++ b/core/linux/pciefix.patch @@ -0,0 +1,37 @@ +diff -rupN linux-3.1.old/arch/arm/Kconfig linux-3.1/arch/arm/Kconfig +--- linux-3.1.old/arch/arm/Kconfig 2011-10-24 01:10:05.000000000 -0600 ++++ linux-3.1/arch/arm/Kconfig 2012-12-11 10:53:26.000000000 -0700 +@@ -503,6 +503,7 @@ config ARCH_KIRKWOOD + bool "Marvell Kirkwood" + select CPU_FEROCEON + select PCI ++ select PCI_QUIRKS + select ARCH_REQUIRE_GPIOLIB + select GENERIC_CLOCKEVENTS + select PLAT_ORION +diff -rupN linux-3.1.old/arch/arm/mach-kirkwood/pcie.c linux-3.1/arch/arm/mach-kirkwood/pcie.c +--- linux-3.1.old/arch/arm/mach-kirkwood/pcie.c 2011-10-24 01:10:05.000000000 -0600 ++++ linux-3.1/arch/arm/mach-kirkwood/pcie.c 2012-12-11 10:56:22.000000000 -0700 +@@ -213,14 +213,19 @@ static int __init kirkwood_pcie_setup(in + return 1; + } + ++/* ++ * The root complex has a hardwired class of PCI_CLASS_MEMORY_OTHER, when it ++ * is operating as a root complex this needs to be switched to ++ * PCI_CLASS_BRIDGE_HOST or Linux will errantly try to process the BAR's on ++ * the device. Decoding setup is handled by the orion code. ++ */ + static void __devinit rc_pci_fixup(struct pci_dev *dev) + { +- /* +- * Prevent enumeration of root complex. +- */ + if (dev->bus->parent == NULL && dev->devfn == 0) { + int i; + ++ dev->class &= 0xff; ++ dev->class |= PCI_CLASS_BRIDGE_HOST << 8; + for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { + dev->resource[i].start = 0; + dev->resource[i].end = 0;