diff --git a/core/linux-raspberrypi/PKGBUILD b/core/linux-raspberrypi/PKGBUILD index 77e5df415..001b7c10c 100644 --- a/core/linux-raspberrypi/PKGBUILD +++ b/core/linux-raspberrypi/PKGBUILD @@ -4,11 +4,11 @@ buildarch=18 pkgbase=linux-raspberrypi -_commit=ff9f6d87957877265086ab8368bdabf27d35f491 +_commit=75d03120bc36b1cc3166973b8edc11f033ab7c0d _srcname=linux-${_commit} _kernelname=${pkgbase#linux} _desc="Raspberry Pi" -pkgver=3.10.24 +pkgver=3.10.25 pkgrel=1 arch=('arm armv6h') url="http://www.kernel.org/" @@ -24,7 +24,7 @@ source=("https://github.com/raspberrypi/linux/archive/${_commit}.tar.gz" "git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs${pkgver%.*}" 'rasclockPCF2127.patch::http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/patch/?id=18cb6368f0b0fc6a28bd49ee547b4f655db97fc3') -md5sums=('fbd323c3be0f399f4eac7ef48fe96d99' +md5sums=('6bd627da809c3a6f080a9d578fd471d7' '32fd2a88136c75e11ef0d593acd8aeaa' '9d3c56a4b999c8bfbd4018089a62f662' '9335d1263fd426215db69841a380ea26' diff --git a/core/linux-raspberrypi/armdma.patch b/core/linux-raspberrypi/armdma.patch deleted file mode 100644 index e13eaedfd..000000000 --- a/core/linux-raspberrypi/armdma.patch +++ /dev/null @@ -1,122 +0,0 @@ -diff -urN linux-3.1-rc4-a/arch/arm/include/asm/dma-mapping.h linux-3.1-rc4-b/arch/arm/include/asm/dma-mapping.h ---- linux-3.1-rc4-a/arch/arm/include/asm/dma-mapping.h 2011-08-29 05:16:01.000000000 +0100 -+++ linux-3.1-rc4-b/arch/arm/include/asm/dma-mapping.h 2011-09-02 12:09:00.000000000 +0100 -@@ -205,6 +205,15 @@ - int dma_mmap_writecombine(struct device *, struct vm_area_struct *, - void *, dma_addr_t, size_t); - -+#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE -+#define ARCH_HAS_DMA_COHERENT_WRITE_SYNC -+ -+static inline void dma_coherent_write_sync(void) -+{ -+ dsb(); -+ outer_sync(); -+} -+#endif - - #ifdef CONFIG_DMABOUNCE - /* -diff -urN linux-3.1-rc4-a/Documentation/DMA-API-HOWTO.txt linux-3.1-rc4-b/Documentation/DMA-API-HOWTO.txt ---- linux-3.1-rc4-a/Documentation/DMA-API-HOWTO.txt 2011-08-29 05:16:01.000000000 +0100 -+++ linux-3.1-rc4-b/Documentation/DMA-API-HOWTO.txt 2011-09-02 12:01:09.000000000 +0100 -@@ -400,6 +400,22 @@ - from a pool before you destroy the pool. This function may not - be called in interrupt context. - -+Some architectures which supporting DMA coherent memory may still have write -+buffering between the CPU and DMA memory. This buffering may delay CPU writes -+from reaching coherent memory in a timely manner. These delays in turn can -+lead lead to dramatic performance issues in certain cases. An architecture -+may mitigate this problem to a large degree by having a write buffer flush -+implicit in the MMIO functions used to write to device registers. This works -+for the most common cases where a driver needs to write to a register to tell -+a device that something was written to the shared coherent memory. There are -+other cases where the device polls the dma-coherent memory for data written -+by the driver. In such cases, the driver needs to explicity force write buffer -+data to memory by calling: -+ -+ dma_coherent_write_sync(); -+ -+ -+ - DMA Direction - - The interfaces described in subsequent portions of this document -diff -urN linux-3.1-rc4-a/Documentation/DMA-API.txt linux-3.1-rc4-b/Documentation/DMA-API.txt ---- linux-3.1-rc4-a/Documentation/DMA-API.txt 2011-08-29 05:16:01.000000000 +0100 -+++ linux-3.1-rc4-b/Documentation/DMA-API.txt 2011-09-02 12:03:06.000000000 +0100 -@@ -418,6 +418,18 @@ - .... - - -+Part Ie - Write buffering to dma-coherent memory -+------------------------------------------------ -+ -+Some architectures supporting DMA coherent memory may have write -+buffering between the CPU and DMA memory. This buffering may delay -+CPU writes from reaching coherent memory in a timely manner. -+ -+ void -+ dma_coherent_write_sync() -+ -+Force any outstanding coherent writes to memory. -+ - Part II - Advanced dma_ usage - ----------------------------- - -diff -urN linux-3.1-rc4-a/drivers/usb/host/ehci-q.c linux-3.1-rc4-b/drivers/usb/host/ehci-q.c ---- linux-3.1-rc4-a/drivers/usb/host/ehci-q.c 2011-08-29 05:16:01.000000000 +0100 -+++ linux-3.1-rc4-b/drivers/usb/host/ehci-q.c 2011-09-02 12:17:20.000000000 +0100 -@@ -114,6 +114,7 @@ - /* HC must see latest qtd and qh data before we clear ACTIVE+HALT */ - wmb (); - hw->hw_token &= cpu_to_hc32(ehci, QTD_TOGGLE | QTD_STS_PING); -+ dma_coherent_write_sync(); - } - - /* if it weren't for a common silicon quirk (writing the dummy into the qh -@@ -404,6 +405,7 @@ - wmb(); - hw->hw_token = cpu_to_hc32(ehci, - token); -+ dma_coherent_write_sync(); - goto retry_xacterr; - } - stopped = 1; -@@ -753,8 +755,10 @@ - } - - /* by default, enable interrupt on urb completion */ -- if (likely (!(urb->transfer_flags & URB_NO_INTERRUPT))) -+ if (likely(!(urb->transfer_flags & URB_NO_INTERRUPT))) { - qtd->hw_token |= cpu_to_hc32(ehci, QTD_IOC); -+ dma_coherent_write_sync(); -+ } - return head; - - cleanup: -@@ -1081,6 +1085,7 @@ - /* let the hc process these next qtds */ - wmb (); - dummy->hw_token = token; -+ dma_coherent_write_sync(); - - urb->hcpriv = qh_get (qh); - } -diff -urN linux-3.1-rc4-a/include/linux/dma-mapping.h linux-3.1-rc4-b/include/linux/dma-mapping.h ---- linux-3.1-rc4-a/include/linux/dma-mapping.h 2011-08-29 05:16:01.000000000 +0100 -+++ linux-3.1-rc4-b/include/linux/dma-mapping.h 2011-09-02 12:06:06.000000000 +0100 -@@ -154,6 +154,12 @@ - } - #endif - -+#ifndef ARCH_HAS_DMA_COHERENT_WRITE_SYNC -+static inline void dma_coherent_write_sync(void) -+{ -+} -+#endif -+ - /* - * Managed DMA API - */