From 25bbd12c001f8b597ee7864c4ea4201759c5aba2 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Sun, 26 Feb 2012 12:23:19 -0500 Subject: [PATCH] core/linux-omap to 3.2.7-1 --- .../0006-omap4-usb-improvement.patch | 93 ------------------- core/linux-omap/PKGBUILD | 15 ++- core/linux-omap/config | 20 +--- core/linux-omap/linux-omap.install | 2 +- 4 files changed, 12 insertions(+), 118 deletions(-) delete mode 100644 core/linux-omap/0006-omap4-usb-improvement.patch diff --git a/core/linux-omap/0006-omap4-usb-improvement.patch b/core/linux-omap/0006-omap4-usb-improvement.patch deleted file mode 100644 index 007486e81..000000000 --- a/core/linux-omap/0006-omap4-usb-improvement.patch +++ /dev/null @@ -1,93 +0,0 @@ -From f392cbf75615e9d8cb90ef5ffb8d4e752b7be3c7 Mon Sep 17 00:00:00 2001 -From: Ming Lei -Date: Wed, 31 Aug 2011 00:03:13 +0800 -Subject: [PATCH] usb: ehci: make HC see up-to-date qh/qtd descriptor ASAP - -This patch introduces the helper of ehci_sync_mem to flush -qtd/qh into memory immediately on some ARM, so that HC can -see the up-to-date qtd/qh descriptor asap. - -This patch fixs one performance bug on ARM Cortex A9 dual core -platform, which has been reported on quite a few ARM machines -(OMAP4, Tegra 2, snowball...), see details from link of -https://bugs.launchpad.net/bugs/709245. - -The patch has been tested ok on OMAP4 panda A1 board, and the -performance of 'dd' over usb mass storage can be increased from -4~5MB/sec to 14~16MB/sec after applying this patch. - -Cc: Russell King -Signed-off-by: Ming Lei -Signed-off-by: Alan Stern ---- - drivers/usb/host/ehci-q.c | 18 ++++++++++++++++++ - drivers/usb/host/ehci.h | 17 +++++++++++++++++ - 2 files changed, 35 insertions(+), 0 deletions(-) - -diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c -index 0917e3a..b7f9496 100644 ---- a/drivers/usb/host/ehci-q.c -+++ b/drivers/usb/host/ehci-q.c -@@ -995,6 +995,12 @@ static void qh_link_async (struct ehci_hcd *ehci, struct ehci_qh *qh) - head->qh_next.qh = qh; - head->hw->hw_next = dma; - -+ /* -+ * flush qh descriptor into memory immediately, -+ * see comments in qh_append_tds. -+ */ -+ ehci_sync_mem(); -+ - qh_get(qh); - qh->xacterrs = 0; - qh->qh_state = QH_STATE_LINKED; -@@ -1082,6 +1088,18 @@ static struct ehci_qh *qh_append_tds ( - wmb (); - dummy->hw_token = token; - -+ /* -+ * Writing to dma coherent buffer on ARM may -+ * be delayed to reach memory, so HC may not see -+ * hw_token of dummy qtd in time, which can cause -+ * the qtd transaction to be executed very late, -+ * and degrade performance a lot. ehci_sync_mem -+ * is added to flush 'token' immediatelly into -+ * memory, so that ehci can execute the transaction -+ * ASAP. -+ */ -+ ehci_sync_mem(); -+ - urb->hcpriv = qh_get (qh); - } - } -diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h -index 989e0a8..6fb0de8 100644 ---- a/drivers/usb/host/ehci.h -+++ b/drivers/usb/host/ehci.h -@@ -736,6 +736,23 @@ static inline u32 hc32_to_cpup (const struct ehci_hcd *ehci, const __hc32 *x) - - #endif - -+/* -+ * Writing to dma coherent memory on ARM may be delayed via L2 -+ * writing buffer, so introduce the helper which can flush L2 writing -+ * buffer into memory immediately, especially used to flush ehci -+ * descriptor to memory. -+ */ -+#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE -+static inline void ehci_sync_mem() -+{ -+ mb(); -+} -+#else -+static inline void ehci_sync_mem() -+{ -+} -+#endif -+ - /*-------------------------------------------------------------------------*/ - - #ifndef DEBUG --- -1.7.0.4 - diff --git a/core/linux-omap/PKGBUILD b/core/linux-omap/PKGBUILD index 6be56b569..4f96b8f91 100644 --- a/core/linux-omap/PKGBUILD +++ b/core/linux-omap/PKGBUILD @@ -12,8 +12,8 @@ pkgname=('linux-omap' 'linux-headers-omap') # pkgname=linux-custom # Build kernel with a different name _kernelname=${pkgname#linux} _basekernel=3.2 -pkgver=${_basekernel}.6 -pkgrel=2 +pkgver=${_basekernel}.7 +pkgrel=1 arch=('arm') url="http://www.kernel.org/" license=('GPL2') @@ -21,17 +21,15 @@ makedepends=('xmlto' 'docbook-xsl' 'uboot-mkimage') options=('!strip') source=("ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-${_basekernel}.tar.xz" "ftp://ftp.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.bz2" - "rcn-ee.diff.gz::http://rcn-ee.net/deb/sid-armhf/v3.2.6-x4/patch-3.2.6-x4.diff.gz" + "rcn-ee.diff.gz::http://rcn-ee.net/deb/sid-armhf/v3.2.7-x4/patch-3.2.7-x4.diff.gz" 'config' 'change-default-console-loglevel.patch' - '0006-omap4-usb-improvement.patch' 'aufs3-3.2.patch.gz') md5sums=('364066fa18767ec0ae5f4e4abcf9dc51' - '2bd4679899df503177a3b61ae2068749' - '9a38f8bff01e024ea9c82a81bf2b81c3' - '7a43a1c577431757284639bb059af6f2' + '899624bffed6a19578613b672cc9483f' + 'c282967958460a088778e39f8f9b19bd' + '83044e2c228068a070c5a84c2f6acd54' '9d3c56a4b999c8bfbd4018089a62f662' - 'd4c22c6f6c8c53d595552b6285aeab79' '6ea7b005a74be27abb072c934ef15a2c') build() { @@ -49,7 +47,6 @@ build() { # ALARM patches patch -Np1 -i "${srcdir}/rcn-ee.diff" - patch -Np1 -i "${srcdir}/0006-omap4-usb-improvement.patch" patch -Np1 -i "${srcdir}/aufs3-3.2.patch" cat "${srcdir}/config" > ./.config diff --git a/core/linux-omap/config b/core/linux-omap/config index 86d808396..bc7e157f2 100644 --- a/core/linux-omap/config +++ b/core/linux-omap/config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.2.6 Kernel Configuration +# Linux/arm 3.2.7 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -418,7 +418,7 @@ CONFIG_PL310_ERRATA_727915=y # CONFIG_ARM_ERRATA_754322 is not set # CONFIG_ARM_ERRATA_754327 is not set # CONFIG_ARM_ERRATA_764369 is not set -# CONFIG_PL310_ERRATA_769419 is not set +CONFIG_PL310_ERRATA_769419=y CONFIG_ARM_GIC=y # @@ -3537,23 +3537,14 @@ CONFIG_OMAP_IOVMM=y # # File systems # -CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y -CONFIG_EXT3_DEFAULTS_TO_ORDERED=y -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y @@ -3711,7 +3702,6 @@ CONFIG_AUFS_BRANCH_MAX_127=y # CONFIG_AUFS_BRANCH_MAX_32767 is not set CONFIG_AUFS_SBILIST=y # CONFIG_AUFS_HNOTIFY is not set -# CONFIG_AUFS_HFSNOTIFY is not set # CONFIG_AUFS_EXPORT is not set CONFIG_AUFS_RDU=y CONFIG_AUFS_PROC_MAP=y diff --git a/core/linux-omap/linux-omap.install b/core/linux-omap/linux-omap.install index 43955167d..56143ea7c 100644 --- a/core/linux-omap/linux-omap.install +++ b/core/linux-omap/linux-omap.install @@ -2,7 +2,7 @@ # arg 2: the old package version KERNEL_NAME=-omap -KERNEL_VERSION=3.2.6-2-ARCH +KERNEL_VERSION=3.2.7-1-ARCH post_install () { # updating module dependencies