ARM: pxa: add the number of DMA requestor lines
authorRobert Jarzmik <robert.jarzmik@free.fr>
Mon, 15 Feb 2016 20:57:47 +0000 (21:57 +0100)
committerRobert Jarzmik <robert.jarzmik@free.fr>
Fri, 26 Feb 2016 21:57:05 +0000 (22:57 +0100)
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 <robert.jarzmik@free.fr>
arch/arm/boot/dts/pxa27x.dtsi
arch/arm/boot/dts/pxa3xx.dtsi
arch/arm/mach-pxa/devices.c
arch/arm/mach-pxa/pxa25x.c
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-pxa/pxa3xx.c
arch/arm/plat-pxa/include/plat/dma.h

index 7f68a1ee7073cb487eae11bbb7edbb3fc861d61e..210192c38df3cb60b7694d330f707767b377cb53 100644 (file)
@@ -13,6 +13,7 @@
                        interrupts = <25>;
                        #dma-channels = <32>;
                        #dma-cells = <2>;
+                       #dma-requests = <75>;
                        status = "okay";
                };
 
index cf6998a0804d418be89e476de2645fe293845bab..bea454f50ff9ee360b1770810dcb3f04a769e8b4 100644 (file)
@@ -12,6 +12,7 @@
                        interrupts = <25>;
                        #dma-channels = <32>;
                        #dma-cells = <2>;
+                       #dma-requests = <100>;
                        status = "okay";
                };
 
index 37d8d85662f0f2c1db663c33eb8ce3b97ddb6ed4..913a319c7b005b0d1c5832ed57e2a1185b182543 100644 (file)
@@ -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);
index a177bf45feefa0a80be5c96a2b228ae2bfaead37..823504f48f806525d6e42b68e26010c378035470 100644 (file)
@@ -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));
index 49c735962148eb8dab1b871543503f8010e39391..2eaa341dd3f82aa4b61cc7aad67a3051c82e1fc9 100644 (file)
@@ -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));
                }
index 126c265691f524d780a770c0ece72945cd29e9d6..3c9184d1d6b9b7ebee86157db11fe390771b950a 100644 (file)
@@ -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;
index 28848b344e2d945e0d7b7d6bbc128d231b957b6a..ceba3e4184fc407cb8a33cc5a1f60bb5b305b114 100644 (file)
@@ -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 */