Note: patchset 4.4.9 introduced a pxa breakage: instead of reverting
"94d75e190f1 dmaengine: pxa_dma: fix the maximum requestor line"
we backport from 4.6 the missing patches.

Signed-off-by: Andrea Adami <[email protected]>
---
 ...pxa-add-the-number-of-DMA-requestor-lines.patch | 122 +++++++++++++++++++++
 ...pxa-fix-the-number-of-DMA-requestor-lines.patch |  28 +++++
 recipes-kernel/linux/linux-handheld_4.4.bb         |   9 +-
 3 files changed, 156 insertions(+), 3 deletions(-)
 create mode 100644 
recipes-kernel/linux/linux-handheld-4.4/ARM-pxa-add-the-number-of-DMA-requestor-lines.patch
 create mode 100644 
recipes-kernel/linux/linux-handheld-4.4/ARM-pxa-fix-the-number-of-DMA-requestor-lines.patch

diff --git 
a/recipes-kernel/linux/linux-handheld-4.4/ARM-pxa-add-the-number-of-DMA-requestor-lines.patch
 
b/recipes-kernel/linux/linux-handheld-4.4/ARM-pxa-add-the-number-of-DMA-requestor-lines.patch
new file mode 100644
index 0000000..f6a7a70
--- /dev/null
+++ 
b/recipes-kernel/linux/linux-handheld-4.4/ARM-pxa-add-the-number-of-DMA-requestor-lines.patch
@@ -0,0 +1,122 @@
+From 72b195cb716284217e8b270af420bc7e5cf04b3c Mon Sep 17 00:00:00 2001
+From: Robert Jarzmik <[email protected]>
+Date: Mon, 15 Feb 2016 21:57:47 +0100
+Subject: ARM: pxa: add the number of DMA requestor lines
+
+Declare the number of DMA requestor lines per platform :
+ - for pxa25x: 40 requestor lines
+ - for pxa27x: 75 requestor lines
+ - for pxa3xx: 100 requestor lines
+
+This information will be used to activate the DMA flow control or not.
+
+Signed-off-by: Robert Jarzmik <[email protected]>
+---
+ arch/arm/boot/dts/pxa27x.dtsi        | 1 +
+ arch/arm/boot/dts/pxa3xx.dtsi        | 1 +
+ arch/arm/mach-pxa/devices.c          | 3 ++-
+ arch/arm/mach-pxa/pxa25x.c           | 2 +-
+ arch/arm/mach-pxa/pxa27x.c           | 2 +-
+ arch/arm/mach-pxa/pxa3xx.c           | 2 +-
+ arch/arm/plat-pxa/include/plat/dma.h | 2 +-
+ 7 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi
+index 7f68a1e..210192c 100644
+--- a/arch/arm/boot/dts/pxa27x.dtsi
++++ b/arch/arm/boot/dts/pxa27x.dtsi
+@@ -13,6 +13,7 @@
+                       interrupts = <25>;
+                       #dma-channels = <32>;
+                       #dma-cells = <2>;
++                      #dma-requests = <75>;
+                       status = "okay";
+               };
+ 
+diff --git a/arch/arm/boot/dts/pxa3xx.dtsi b/arch/arm/boot/dts/pxa3xx.dtsi
+index cf6998a..bea454f 100644
+--- a/arch/arm/boot/dts/pxa3xx.dtsi
++++ b/arch/arm/boot/dts/pxa3xx.dtsi
+@@ -12,6 +12,7 @@
+                       interrupts = <25>;
+                       #dma-channels = <32>;
+                       #dma-cells = <2>;
++                      #dma-requests = <100>;
+                       status = "okay";
+               };
+ 
+diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
+index 37d8d85..913a319 100644
+--- a/arch/arm/mach-pxa/devices.c
++++ b/arch/arm/mach-pxa/devices.c
+@@ -1203,6 +1203,7 @@ void __init pxa2xx_set_spi_info(unsigned id, struct 
pxa2xx_spi_master *info)
+ 
+ static struct mmp_dma_platdata pxa_dma_pdata = {
+       .dma_channels   = 0,
++      .nb_requestors  = 0,
+ };
+ 
+ static struct resource pxa_dma_resource[] = {
+@@ -1231,7 +1232,7 @@ static struct platform_device pxa2xx_pxa_dma = {
+       .resource       = pxa_dma_resource,
+ };
+ 
+-void __init pxa2xx_set_dmac_info(int nb_channels)
++void __init pxa2xx_set_dmac_info(int nb_channels, int nb_requestors)
+ {
+       pxa_dma_pdata.dma_channels = nb_channels;
+       pxa_register_device(&pxa2xx_pxa_dma, &pxa_dma_pdata);
+diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
+index a177bf4..823504f 100644
+--- a/arch/arm/mach-pxa/pxa25x.c
++++ b/arch/arm/mach-pxa/pxa25x.c
+@@ -206,7 +206,7 @@ static int __init pxa25x_init(void)
+               register_syscore_ops(&pxa_irq_syscore_ops);
+               register_syscore_ops(&pxa2xx_mfp_syscore_ops);
+ 
+-              pxa2xx_set_dmac_info(16);
++              pxa2xx_set_dmac_info(16, 40);
+               pxa_register_device(&pxa25x_device_gpio, &pxa25x_gpio_info);
+               ret = platform_add_devices(pxa25x_devices,
+                                          ARRAY_SIZE(pxa25x_devices));
+diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
+index 49c7359..2eaa341 100644
+--- a/arch/arm/mach-pxa/pxa27x.c
++++ b/arch/arm/mach-pxa/pxa27x.c
+@@ -311,7 +311,7 @@ static int __init pxa27x_init(void)
+               if (!of_have_populated_dt()) {
+                       pxa_register_device(&pxa27x_device_gpio,
+                                           &pxa27x_gpio_info);
+-                      pxa2xx_set_dmac_info(32);
++                      pxa2xx_set_dmac_info(32, 75);
+                       ret = platform_add_devices(devices,
+                                                  ARRAY_SIZE(devices));
+               }
+diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
+index 126c265..3c9184d 100644
+--- a/arch/arm/mach-pxa/pxa3xx.c
++++ b/arch/arm/mach-pxa/pxa3xx.c
+@@ -449,7 +449,7 @@ static int __init pxa3xx_init(void)
+               if (of_have_populated_dt())
+                       return 0;
+ 
+-              pxa2xx_set_dmac_info(32);
++              pxa2xx_set_dmac_info(32, 100);
+               ret = platform_add_devices(devices, ARRAY_SIZE(devices));
+               if (ret)
+                       return ret;
+diff --git a/arch/arm/plat-pxa/include/plat/dma.h 
b/arch/arm/plat-pxa/include/plat/dma.h
+index 28848b3..ceba3e4 100644
+--- a/arch/arm/plat-pxa/include/plat/dma.h
++++ b/arch/arm/plat-pxa/include/plat/dma.h
+@@ -95,6 +95,6 @@ static inline int pxad_toggle_reserved_channel(int 
legacy_channel)
+ }
+ #endif
+ 
+-extern void __init pxa2xx_set_dmac_info(int nb_channels);
++extern void __init pxa2xx_set_dmac_info(int nb_channels, int nb_requestors);
+ 
+ #endif /* __PLAT_DMA_H */
+-- 
+cgit v1.1
+
diff --git 
a/recipes-kernel/linux/linux-handheld-4.4/ARM-pxa-fix-the-number-of-DMA-requestor-lines.patch
 
b/recipes-kernel/linux/linux-handheld-4.4/ARM-pxa-fix-the-number-of-DMA-requestor-lines.patch
new file mode 100644
index 0000000..78b1707
--- /dev/null
+++ 
b/recipes-kernel/linux/linux-handheld-4.4/ARM-pxa-fix-the-number-of-DMA-requestor-lines.patch
@@ -0,0 +1,28 @@
+From 4c35430ad18f5a034302cb90e559ede5a27f93b9 Mon Sep 17 00:00:00 2001
+From: Robert Jarzmik <[email protected]>
+Date: Wed, 9 Mar 2016 00:46:11 +0100
+Subject: ARM: pxa: fix the number of DMA requestor lines
+
+The number of requestor lines was clamped to 0 for all pxa architectures
+in the requestor declaration. Fix this by using the value.
+
+Fixes: 72b195cb7162 ("ARM: pxa: add the number of DMA requestor lines")
+Signed-off-by: Robert Jarzmik <[email protected]>
+---
+ arch/arm/mach-pxa/devices.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
+index 913a319..fffb697 100644
+--- a/arch/arm/mach-pxa/devices.c
++++ b/arch/arm/mach-pxa/devices.c
+@@ -1235,5 +1235,6 @@ static struct platform_device pxa2xx_pxa_dma = {
+ void __init pxa2xx_set_dmac_info(int nb_channels, int nb_requestors)
+ {
+       pxa_dma_pdata.dma_channels = nb_channels;
++      pxa_dma_pdata.nb_requestors = nb_requestors;
+       pxa_register_device(&pxa2xx_pxa_dma, &pxa_dma_pdata);
+ }
+-- 
+cgit v1.1
+
diff --git a/recipes-kernel/linux/linux-handheld_4.4.bb 
b/recipes-kernel/linux/linux-handheld_4.4.bb
index a7c158e..2d05a8d 100644
--- a/recipes-kernel/linux/linux-handheld_4.4.bb
+++ b/recipes-kernel/linux/linux-handheld_4.4.bb
@@ -6,16 +6,19 @@ LIC_FILES_CHKSUM = 
"file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
 COMPATIBLE_MACHINE = "akita|c7x0|collie|h3600|hx4700|poodle|spitz|tosa"
 
 SRC_URI = 
"${KERNELORG_MIRROR}/linux/kernel/v4.x/linux-${PV}.tar.xz;name=kernel \
-           
${KERNELORG_MIRROR}/linux/kernel/v4.x/patch-${PV}.72.xz;apply=yes;name=stablepatch
 \
+           
${KERNELORG_MIRROR}/linux/kernel/v4.x/patch-${PV}.88.xz;apply=yes;name=stablepatch
 \
            "
 SRC_URI[kernel.md5sum] = "9a78fa2eb6c68ca5a40ed5af08142599"
 SRC_URI[kernel.sha256sum] = 
"401d7c8fef594999a460d10c72c5a94e9c2e1022f16795ec51746b0d165418b2"
-SRC_URI[stablepatch.md5sum] = "706589ba15cc3b1635c8bb1bc8938b14"
-SRC_URI[stablepatch.sha256sum] = 
"9343e9452502827dd92b9fc466861f48753e131167c92a008cc28e8b40a27e2b"
+SRC_URI[stablepatch.md5sum] = "75ccbff8259c935ca8c7dd54b2effb15"
+SRC_URI[stablepatch.sha256sum] = 
"76587e18bba591e4e6e95dec85a892072f143ae3757a471fd64d149bacbe06ad"
 
 SRC_URI += "\
            file://ASoC-pxa-fix-module-autoload-for-platform-drivers.patch \
            file://dmaengine-mmp-pdma-add-number-of-requestors.patch \
+           file://ARM-pxa-add-the-number-of-DMA-requestor-lines.patch \
+           file://ARM-pxa-fix-the-number-of-DMA-requestor-lines.patch \
+           \
            
file://sharpslpart/0001-mtd-sharpsl-add-sharpslpart-MTD-partition-parser.patch \
            
file://sharpslpart/0002-mtd-nand-sharpsl.c-prefer-sharpslpart-MTD-partition-.patch
 \
            
file://sharpslpart/0003-mtd-nand-tmio_nand.c-prefer-sharpslpart-MTD-partitio.patch
 \
-- 
2.7.4

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to