diff --git a/0003-dmaengine-add-dma_get_slave_sg_limits.patch b/0003-dmaengine-add-dma_get_slave_sg_limits.patch index 61bcdb36e..080a170e1 100644 --- a/0003-dmaengine-add-dma_get_slave_sg_limits.patch +++ b/0003-dmaengine-add-dma_get_slave_sg_limits.patch @@ -1,7 +1,7 @@ -From c8ff7a795bf883c61b7d7f506b0bb7796db6cb01 Mon Sep 17 00:00:00 2001 +From e780535fb34402b6a99fe753f2aaaa531dd40e21 Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Wed, 6 Mar 2013 19:56:05 +0000 -Subject: [PATCH 03/13] dmaengine: add dma_get_slave_sg_limits() +Subject: [PATCH] dmaengine: add dma_get_slave_sg_limits() Add a dmaengine API to retrieve slave SG transfer limits. @@ -15,14 +15,14 @@ that the given channel can handle. Signed-off-by: Matt Porter Signed-off-by: Joel A Fernandes --- - include/linux/dmaengine.h | 39 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 39 insertions(+) + include/linux/dmaengine.h | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h -index cb286b1..d71fe5d 100644 +index 0c72b89..4132aa2 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h -@@ -370,6 +370,18 @@ struct dma_slave_config { +@@ -373,6 +373,18 @@ struct dma_slave_config { unsigned int slave_id; }; @@ -41,7 +41,7 @@ index cb286b1..d71fe5d 100644 static inline const char *dma_chan_name(struct dma_chan *chan) { return dev_name(&chan->dev->device); -@@ -532,6 +544,7 @@ struct dma_tx_state { +@@ -535,6 +547,7 @@ struct dma_tx_state { * struct with auxiliary transfer status information, otherwise the call * will just return a simple status code * @device_issue_pending: push pending transactions to hardware @@ -49,7 +49,7 @@ index cb286b1..d71fe5d 100644 */ struct dma_device { -@@ -597,6 +610,9 @@ struct dma_device { +@@ -600,6 +613,9 @@ struct dma_device { dma_cookie_t cookie, struct dma_tx_state *txstate); void (*device_issue_pending)(struct dma_chan *chan); @@ -59,7 +59,7 @@ index cb286b1..d71fe5d 100644 }; static inline int dmaengine_device_control(struct dma_chan *chan, -@@ -958,6 +974,29 @@ dma_set_tx_state(struct dma_tx_state *st, dma_cookie_t last, dma_cookie_t used, +@@ -961,6 +977,30 @@ dma_set_tx_state(struct dma_tx_state *st, dma_cookie_t last, dma_cookie_t used, } } @@ -86,9 +86,10 @@ index cb286b1..d71fe5d 100644 + return NULL; +} + - enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie); ++ #ifdef CONFIG_DMA_ENGINE - enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx); + struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type); + enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie); -- -1.8.2.1 +1.8.3.1 diff --git a/arm-highbank-for-3.12.patch b/arm-highbank-for-3.12.patch deleted file mode 100644 index 8c1fb41c6..000000000 --- a/arm-highbank-for-3.12.patch +++ /dev/null @@ -1,200 +0,0 @@ -diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h -index 441efc4..d91b168 100644 ---- a/arch/arm/include/asm/mach/arch.h -+++ b/arch/arm/include/asm/mach/arch.h -@@ -35,7 +35,7 @@ struct machine_desc { - unsigned int nr_irqs; /* number of IRQs */ - - #ifdef CONFIG_ZONE_DMA -- unsigned long dma_zone_size; /* size of DMA-able area */ -+ phys_addr_t dma_zone_size; /* size of DMA-able area */ - #endif - - unsigned int video_start; /* start of video RAM */ -diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h -index 12f71a1..f94784f 100644 ---- a/arch/arm/include/asm/outercache.h -+++ b/arch/arm/include/asm/outercache.h -@@ -37,10 +37,10 @@ struct outer_cache_fns { - void (*resume)(void); - }; - --#ifdef CONFIG_OUTER_CACHE -- - extern struct outer_cache_fns outer_cache; - -+#ifdef CONFIG_OUTER_CACHE -+ - static inline void outer_inv_range(phys_addr_t start, phys_addr_t end) - { - if (outer_cache.inv_range) -diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig -index cd9fcb1..b9dd13a 100644 ---- a/arch/arm/mach-highbank/Kconfig -+++ b/arch/arm/mach-highbank/Kconfig -@@ -1,9 +1,14 @@ - config ARCH_HIGHBANK - bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7 -+ select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE - select ARCH_HAS_CPUFREQ -+ select ARCH_HAS_HOLES_MEMORYMODEL - select ARCH_HAS_OPP - select ARCH_WANT_OPTIONAL_GPIOLIB - select ARM_AMBA -+ select ARM_ERRATA_764369 -+ select ARM_ERRATA_775420 -+ select ARM_ERRATA_798181 - select ARM_GIC - select ARM_TIMER_SP804 - select CACHE_L2X0 -@@ -18,3 +23,4 @@ config ARCH_HIGHBANK - select PL320_MBOX - select SPARSE_IRQ - select USE_OF -+ select ZONE_DMA if ARM_LPAE -diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c -index 8881579..8e63ccd 100644 ---- a/arch/arm/mach-highbank/highbank.c -+++ b/arch/arm/mach-highbank/highbank.c -@@ -18,14 +18,11 @@ - #include - #include - #include --#include - #include --#include - #include - #include - #include - #include --#include - #include - #include - -@@ -35,7 +32,6 @@ - #include - #include - #include --#include - - #include "core.h" - #include "sysregs.h" -@@ -65,13 +61,11 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr) - HB_JUMP_TABLE_PHYS(cpu) + 15); - } - --#ifdef CONFIG_CACHE_L2X0 - static void highbank_l2x0_disable(void) - { - /* Disable PL310 L2 Cache controller */ - highbank_smc1(0x102, 0x0); - } --#endif - - static void __init highbank_init_irq(void) - { -@@ -80,12 +74,13 @@ static void __init highbank_init_irq(void) - if (of_find_compatible_node(NULL, NULL, "arm,cortex-a9")) - highbank_scu_map_io(); - --#ifdef CONFIG_CACHE_L2X0 - /* Enable PL310 L2 Cache controller */ -- highbank_smc1(0x102, 0x1); -- l2x0_of_init(0, ~0UL); -- outer_cache.disable = highbank_l2x0_disable; --#endif -+ if (IS_ENABLED(CONFIG_CACHE_L2X0) && -+ of_find_compatible_node(NULL, NULL, "arm,pl310-cache")) { -+ highbank_smc1(0x102, 0x1); -+ l2x0_of_init(0, ~0UL); -+ outer_cache.disable = highbank_l2x0_disable; -+ } - } - - static void __init highbank_timer_init(void) -@@ -176,6 +171,9 @@ static const char *highbank_match[] __initconst = { - }; - - DT_MACHINE_START(HIGHBANK, "Highbank") -+#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) -+ .dma_zone_size = (4ULL * SZ_1G), -+#endif - .smp = smp_ops(highbank_smp_ops), - .init_irq = highbank_init_irq, - .init_time = highbank_timer_init, -diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c -index 15225d8..c0bb66e 100644 ---- a/arch/arm/mm/init.c -+++ b/arch/arm/mm/init.c -@@ -207,7 +207,7 @@ static void __init arm_bootmem_init(unsigned long start_pfn, - - #ifdef CONFIG_ZONE_DMA - --unsigned long arm_dma_zone_size __read_mostly; -+phys_addr_t arm_dma_zone_size __read_mostly; - EXPORT_SYMBOL(arm_dma_zone_size); - - /* -diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c -index 06fe45c..bff41d4 100644 ---- a/drivers/dma/amba-pl08x.c -+++ b/drivers/dma/amba-pl08x.c -@@ -133,6 +133,8 @@ struct pl08x_bus_data { - u8 buswidth; - }; - -+#define IS_BUS_ALIGNED(bus) IS_ALIGNED((bus)->addr, (bus)->buswidth) -+ - /** - * struct pl08x_phy_chan - holder for the physical channels - * @id: physical index to this channel -@@ -845,10 +847,13 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x, - - pl08x_choose_master_bus(&bd, &mbus, &sbus, cctl); - -- dev_vdbg(&pl08x->adev->dev, "src=0x%08x%s/%u dst=0x%08x%s/%u len=%zu\n", -- bd.srcbus.addr, cctl & PL080_CONTROL_SRC_INCR ? "+" : "", -+ dev_vdbg(&pl08x->adev->dev, -+ "src=0x%08llx%s/%u dst=0x%08llx%s/%u len=%zu\n", -+ (u64)bd.srcbus.addr, -+ cctl & PL080_CONTROL_SRC_INCR ? "+" : "", - bd.srcbus.buswidth, -- bd.dstbus.addr, cctl & PL080_CONTROL_DST_INCR ? "+" : "", -+ (u64)bd.dstbus.addr, -+ cctl & PL080_CONTROL_DST_INCR ? "+" : "", - bd.dstbus.buswidth, - bd.remainder); - dev_vdbg(&pl08x->adev->dev, "mbus=%s sbus=%s\n", -@@ -886,8 +891,8 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x, - return 0; - } - -- if ((bd.srcbus.addr % bd.srcbus.buswidth) || -- (bd.dstbus.addr % bd.dstbus.buswidth)) { -+ if (!IS_BUS_ALIGNED(&bd.srcbus) || -+ !IS_BUS_ALIGNED(&bd.dstbus)) { - dev_err(&pl08x->adev->dev, - "%s src & dst address must be aligned to src" - " & dst width if peripheral is flow controller", -@@ -908,9 +913,9 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x, - */ - if (bd.remainder < mbus->buswidth) - early_bytes = bd.remainder; -- else if ((mbus->addr) % (mbus->buswidth)) { -- early_bytes = mbus->buswidth - (mbus->addr) % -- (mbus->buswidth); -+ else if (!IS_BUS_ALIGNED(mbus)) { -+ early_bytes = mbus->buswidth - -+ (mbus->addr & (mbus->buswidth - 1)); - if ((bd.remainder - early_bytes) < mbus->buswidth) - early_bytes = bd.remainder; - } -@@ -928,7 +933,7 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x, - * Master now aligned - * - if slave is not then we must set its width down - */ -- if (sbus->addr % sbus->buswidth) { -+ if (!IS_BUS_ALIGNED(sbus)) { - dev_dbg(&pl08x->adev->dev, - "%s set down bus width to one byte\n", - __func__); diff --git a/config-armv7-lpae b/config-armv7-lpae index 7110c3f7c..f3f060de3 100644 --- a/config-armv7-lpae +++ b/config-armv7-lpae @@ -140,3 +140,4 @@ CONFIG_S3C_LOWLEVEL_UART_PORT=1 # CONFIG_TEGRA_HOST1X is not set # CONFIG_SPI_DAVINCI is not set # CONFIG_I2C_DAVINCI is not set +# CONFIG_TI_SOC_THERMAL is not set diff --git a/kernel.spec b/kernel.spec index 350085568..5842ecefd 100644 --- a/kernel.spec +++ b/kernel.spec @@ -95,7 +95,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 0 # The git snapshot level -%define gitrev 17 +%define gitrev 18 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -705,7 +705,6 @@ Patch21001: arm-lpae-ax88796.patch Patch21003: arm-dma-amba_pl08x-avoid-64bit-division.patch Patch21004: arm-sound-soc-samsung-dma-avoid-another-64bit-division.patch Patch21005: arm-exynos-mp.patch -Patch21006: arm-highbank-for-3.12.patch # ARM omap Patch21010: arm-omap-load-tfp410.patch @@ -1326,8 +1325,7 @@ ApplyPatch debug-bad-pte-modules.patch ApplyPatch arm-lpae-ax88796.patch #ApplyPatch arm-dma-amba_pl08x-avoid-64bit-division.patch ApplyPatch arm-sound-soc-samsung-dma-avoid-another-64bit-division.patch -ApplyPatch arm-exynos-mp.patch -ApplyPatch arm-highbank-for-3.12.patch +#pplyPatch arm-exynos-mp.patch #pplyPatch arm-omap-load-tfp410.patch ApplyPatch arm-tegra-usb-no-reset-linux33.patch @@ -2297,6 +2295,9 @@ fi # ||----w | # || || %changelog +* Tue Sep 10 2013 Josh Boyer - 3.12.0-0.rc0.git18.1 +- Linux v3.11-8716-g26b0332 + * Mon Sep 9 2013 Peter Robinson - Enable OF option to allocate CMA memory using device tree on ARM diff --git a/sources b/sources index c3f07f02b..4617c6828 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ fea363551ff45fbe4cb88497b863b261 linux-3.11.tar.xz -4bc90554111344275ed0e640f9ac47fc patch-3.11-git17.xz +9b787f7ae90023e7db07e7395484b931 patch-3.11-git18.xz