diff mbox

ARC: [axs10x] enable DW DMA controller

Message ID 1449256926-16786-1-git-send-email-abrodkin@synopsys.com
State Rejected, archived
Delegated to: Vineet Gupta
Headers show

Commit Message

Alexey Brodkin Dec. 4, 2015, 7:22 p.m. UTC
From: Nelson Pereira <npereira@synopsys.com>

ARC SDP baseboard among other peripherals sports
DesignWare DMA controller.

This enables support of that device.
Note typically DW DMA controller is used with external devices
connected to ARC SDP board via HAPS Extension bus.

Signed-off-by: Nelson Pereira <npereira@synopsys.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
 arch/arc/boot/dts/axs10x_mb.dtsi      | 16 ++++++++++++++++
 arch/arc/configs/axs101_defconfig     |  5 +++++
 arch/arc/configs/axs103_defconfig     |  5 +++++
 arch/arc/configs/axs103_smp_defconfig |  5 +++++
 4 files changed, 31 insertions(+)

Comments

Vineet Gupta Dec. 5, 2015, 10:14 a.m. UTC | #1
On Saturday 05 December 2015 12:52 AM, Alexey Brodkin wrote:
> From: Nelson Pereira <npereira@synopsys.com>
>
> ARC SDP baseboard among other peripherals sports
> DesignWare DMA controller.
>
> This enables support of that device.
> Note typically DW DMA controller is used with external devices
> connected to ARC SDP board via HAPS Extension bus.

Such a board config needs to have it's own defconfig / DT (if needed). There's no
point in enabling this for rest of the world who don't have a use case for this IP.

So nack !

-Vineet
>
> Signed-off-by: Nelson Pereira <npereira@synopsys.com>
> Cc: Vineet Gupta <vgupta@synopsys.com>
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> ---
>  arch/arc/boot/dts/axs10x_mb.dtsi      | 16 ++++++++++++++++
>  arch/arc/configs/axs101_defconfig     |  5 +++++
>  arch/arc/configs/axs103_defconfig     |  5 +++++
>  arch/arc/configs/axs103_smp_defconfig |  5 +++++
>  4 files changed, 31 insertions(+)
>
> diff --git a/arch/arc/boot/dts/axs10x_mb.dtsi b/arch/arc/boot/dts/axs10x_mb.dtsi
> index f3db321..1e57580 100644
> --- a/arch/arc/boot/dts/axs10x_mb.dtsi
> +++ b/arch/arc/boot/dts/axs10x_mb.dtsi
> @@ -220,5 +220,21 @@
>  				reg = <2>;
>  			};
>  		};
> +
> +		dmac: dmac@0x80000 {
> +			compatible = "snps,dma-spear1340";
> +			reg = <0x80000 0x1000>;
> +			interrupts = <9>;
> +			dma-channels = <4>;
> +			dma-requests = <16>;
> +			dma-masters = <2>;
> +			#dma-cells = <3>;
> +			chan_allocation_order = <1>;
> +			chan_priority = <1>;
> +			block_size = <0xfff>;
> +			data_width = <3 3>;
> +			clocks = <&apbclk>;
> +			clock-names = "hclk";
> +		};
>  	};
>  };
> diff --git a/arch/arc/configs/axs101_defconfig b/arch/arc/configs/axs101_defconfig
> index 562dac6..405474f 100644
> --- a/arch/arc/configs/axs101_defconfig
> +++ b/arch/arc/configs/axs101_defconfig
> @@ -90,6 +90,11 @@ CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_PLTFM=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_DW_IDMAC=y
> +CONFIG_DMADEVICES=y
> +CONFIG_DW_DMAC_CORE=y
> +CONFIG_DW_DMAC=y
> +CONFIG_DMA_ENGINE=y
> +CONFIG_DMA_OF=y
>  # CONFIG_IOMMU_SUPPORT is not set
>  CONFIG_EXT3_FS=y
>  CONFIG_EXT4_FS=y
> diff --git a/arch/arc/configs/axs103_defconfig b/arch/arc/configs/axs103_defconfig
> index 83a6d8d..570f06f 100644
> --- a/arch/arc/configs/axs103_defconfig
> +++ b/arch/arc/configs/axs103_defconfig
> @@ -96,6 +96,11 @@ CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_PLTFM=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_DW_IDMAC=y
> +CONFIG_DMADEVICES=y
> +CONFIG_DW_DMAC_CORE=y
> +CONFIG_DW_DMAC=y
> +CONFIG_DMA_ENGINE=y
> +CONFIG_DMA_OF=y
>  # CONFIG_IOMMU_SUPPORT is not set
>  CONFIG_EXT3_FS=y
>  CONFIG_EXT4_FS=y
> diff --git a/arch/arc/configs/axs103_smp_defconfig b/arch/arc/configs/axs103_smp_defconfig
> index f1e1c84..16cfce8 100644
> --- a/arch/arc/configs/axs103_smp_defconfig
> +++ b/arch/arc/configs/axs103_smp_defconfig
> @@ -97,6 +97,11 @@ CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_PLTFM=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_DW_IDMAC=y
> +CONFIG_DMADEVICES=y
> +CONFIG_DW_DMAC_CORE=y
> +CONFIG_DW_DMAC=y
> +CONFIG_DMA_ENGINE=y
> +CONFIG_DMA_OF=y
>  # CONFIG_IOMMU_SUPPORT is not set
>  CONFIG_EXT3_FS=y
>  CONFIG_EXT4_FS=y
Alexey Brodkin Dec. 7, 2015, 9:12 a.m. UTC | #2
Hi Vineet,

On Sat, 2015-12-05 at 10:14 +0000, Vineet Gupta wrote:
> On Saturday 05 December 2015 12:52 AM, Alexey Brodkin wrote:
> > From: Nelson Pereira <npereira@synopsys.com>
> > 
> > ARC SDP baseboard among other peripherals sports
> > DesignWare DMA controller.
> > 
> > This enables support of that device.
> > Note typically DW DMA controller is used with external devices
> > connected to ARC SDP board via HAPS Extension bus.
> 
> Such a board config needs to have it's own defconfig / DT (if needed). There's no
> point in enabling this for rest of the world who don't have a use case for this IP.
> 
> So nack !

I see rationale behind this decision but:
1) How enabled DMA controller hurts other users of the same SDP board
2) That DMA controller exists in SDP anyway - that's not a special flavor of ARC SDP
3) Another defconfig and .dts adds another item for verification while
   enabling DW DMA in our current defconfigs allows usage of the same one binaries for
   all purposes on ARC SDP.

-Alexey
diff mbox

Patch

diff --git a/arch/arc/boot/dts/axs10x_mb.dtsi b/arch/arc/boot/dts/axs10x_mb.dtsi
index f3db321..1e57580 100644
--- a/arch/arc/boot/dts/axs10x_mb.dtsi
+++ b/arch/arc/boot/dts/axs10x_mb.dtsi
@@ -220,5 +220,21 @@ 
 				reg = <2>;
 			};
 		};
+
+		dmac: dmac@0x80000 {
+			compatible = "snps,dma-spear1340";
+			reg = <0x80000 0x1000>;
+			interrupts = <9>;
+			dma-channels = <4>;
+			dma-requests = <16>;
+			dma-masters = <2>;
+			#dma-cells = <3>;
+			chan_allocation_order = <1>;
+			chan_priority = <1>;
+			block_size = <0xfff>;
+			data_width = <3 3>;
+			clocks = <&apbclk>;
+			clock-names = "hclk";
+		};
 	};
 };
diff --git a/arch/arc/configs/axs101_defconfig b/arch/arc/configs/axs101_defconfig
index 562dac6..405474f 100644
--- a/arch/arc/configs/axs101_defconfig
+++ b/arch/arc/configs/axs101_defconfig
@@ -90,6 +90,11 @@  CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_PLTFM=y
 CONFIG_MMC_DW=y
 CONFIG_MMC_DW_IDMAC=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CORE=y
+CONFIG_DW_DMAC=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
 # CONFIG_IOMMU_SUPPORT is not set
 CONFIG_EXT3_FS=y
 CONFIG_EXT4_FS=y
diff --git a/arch/arc/configs/axs103_defconfig b/arch/arc/configs/axs103_defconfig
index 83a6d8d..570f06f 100644
--- a/arch/arc/configs/axs103_defconfig
+++ b/arch/arc/configs/axs103_defconfig
@@ -96,6 +96,11 @@  CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_PLTFM=y
 CONFIG_MMC_DW=y
 CONFIG_MMC_DW_IDMAC=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CORE=y
+CONFIG_DW_DMAC=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
 # CONFIG_IOMMU_SUPPORT is not set
 CONFIG_EXT3_FS=y
 CONFIG_EXT4_FS=y
diff --git a/arch/arc/configs/axs103_smp_defconfig b/arch/arc/configs/axs103_smp_defconfig
index f1e1c84..16cfce8 100644
--- a/arch/arc/configs/axs103_smp_defconfig
+++ b/arch/arc/configs/axs103_smp_defconfig
@@ -97,6 +97,11 @@  CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_PLTFM=y
 CONFIG_MMC_DW=y
 CONFIG_MMC_DW_IDMAC=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CORE=y
+CONFIG_DW_DMAC=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
 # CONFIG_IOMMU_SUPPORT is not set
 CONFIG_EXT3_FS=y
 CONFIG_EXT4_FS=y