mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
core/linux-omap to 3.2.7-1
This commit is contained in:
parent
c63a845dab
commit
25bbd12c00
4 changed files with 12 additions and 118 deletions
|
@ -1,93 +0,0 @@
|
|||
From f392cbf75615e9d8cb90ef5ffb8d4e752b7be3c7 Mon Sep 17 00:00:00 2001
|
||||
From: Ming Lei <ming.lei@canonical.com>
|
||||
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 <linux@arm.linux.org.uk>
|
||||
Signed-off-by: Ming Lei <ming.lei@canonical.com>
|
||||
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
|
||||
---
|
||||
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
|
||||
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue