summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-11-22Merge tag 'marvell-hwiocc-for-3.8' of ↵Jason Cooper8-6/+93
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Add hardware I/O coherency support for Armada 370/XP The purpose of this patch set is to add hardware I/O Coherency support for Armada 370 and Armada XP. Theses SoCs come with an unit called coherency fabric. A beginning of the support for this unit have been introduced with the SMP patch set. This series extend this support: the coherency fabric unit allows to use the Armada XP and the Armada 370 as nearly coherent architectures. The third patches enables this new feature and register our own set of DMA ops, to benefit this hardware enhancement. The first patches exports a dma operation function needed to register our own set of dma ops. The second patch introduces a new flag for the address decoding configuration in order to be able to set the memory windows as shared memory.
2012-11-22Merge tag 'marvell-armadaxp-smp-for-3.8' of ↵Jason Cooper22-12/+684
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything SMP support for Armada XP The purpose of this series is to add the SMP support for the Armada XP SoCs. Beside the SMP support itself brought by the last 3 commits, this series also adds the support for the coherency fabric unit and the power management service unit. The coherency fabric is responsible for ensuring hardware coherency between all CPUs and between CPUs and I/O masters. This unit is also available for Armada 370 and will be used in an incoming patch set for hardware I/O cache coherency. The power management service unit is responsible for powering down and waking up CPUs and other SOC units.
2012-11-22Merge tag 'marvell-net-xor-defconfig-for-3.8' of ↵Jason Cooper1-0/+7
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell mvebu defconfig updates for 3.8 Conflicts: arch/arm/configs/mvebu_defconfig
2012-11-21Merge tag 'marvell-xor-board-dt-changes-3.8-v2' of ↵Jason Cooper6-23/+158
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell XOR driver DT changes for 3.8 Conflicts: arch/arm/boot/dts/armada-xp.dtsi
2012-11-21Merge tag 'marvell-xor-cleanup-dt-binding-3.8' of ↵Jason Cooper8-347/+366
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell XOR driver cleanup and DT binding for 3.8
2012-11-21Merge tag 'marvell-neta-dt-clk-updates-3.8' of ↵Jason Cooper6-12/+4
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell Ethernet DT update for clk support
2012-11-21Merge tag 'marvell-mvneta-fix-and-clk-support-3.8' of ↵Jason Cooper2-14/+23
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell Ethernet driver fix + clk support
2012-11-21Merge tag 'marvell-net-mdio-checkpatch-fixes-3.8' of ↵Jason Cooper2-46/+44
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell network/MDIO driver checkpatch fixes
2012-11-21Merge tag 'marvell-boards-net-for-3.8' of ↵Jason Cooper7-1/+273
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell boards changes related to Ethernet, for 3.8 Conflicts: arch/arm/boot/dts/armada-370-xp.dtsi arch/arm/boot/dts/armada-xp-db.dts
2012-11-21Merge tag 'marvell-neta-for-3.8' of ↵Jason Cooper7-0/+3159
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell mvneta network driver, for 3.8
2012-11-21Merge tag 'marvell-sata-3.8' of ↵Jason Cooper6-0/+35
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell Armada 370/XP support for 3.8
2012-11-21Merge tag 'marvell-mvebu-clk-3.8' of ↵Jason Cooper34-38/+1696
git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything Marvell MVEBU clk support, for 3.8
2012-11-21arm: mvebu: Add hardware I/O Coherency supportGregory CLEMENT4-3/+85
Armada 370 and XP come with an unit called coherency fabric. This unit allows to use the Armada 370/XP as a nearly coherent architecture. The coherency mechanism uses snoop filters to ensure the coherency between caches, DRAM and devices. This mechanism needs a synchronization barrier which guarantees that all the memory writes initiated by the devices have reached their target and do not reside in intermediate write buffers. That's why the architecture is not totally coherent and we need to provide our own functions for some DMA operations. Beside the use of the coherency fabric, the device units will have to set the attribute flag of the decoding address window to select the accurate coherency process for the memory transaction. This is done each device driver programs the DRAM address windows. The value of the attribute set by the driver is retrieved through the orion_addr_map_cfg struct filled during the early initialization of the platform. Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Reviewed-by: Yehuda Yitschak <yehuday@marvell.com> Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
2012-11-21arm: plat-orion: Add coherency attribute when setup mbus targetGregory CLEMENT2-0/+5
Recent SoC such as Armada 370/XP came with the possibility to deal with the I/O coherency by hardware. In this case the transaction attribute of the window must be flagged as "Shared transaction". Once this flag is set, then the transactions will be forced to be sent through the coherency block, in other case transaction is driven directly to DRAM. Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Reviewed-by: Yehuda Yitschak <yehuday@marvell.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21arm: dma mapping: Export a dma ops function arm_dma_set_maskGregory CLEMENT2-3/+3
Expose another DMA operations function: arm_dma_set_mask. This function will be added to a custom DMA ops for Armada 370/XP. Depending of its configuration Armada 370/XP can be set as a "nearly" coherent architecture. In this case the DMA ops is made of: - specific functions for this architecture - already exposed arm DMA related functions - the arm_dma_set_mask which was not exposed yet. Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
2012-11-21arm: mvebu: Add SMP support for Armada XPGregory CLEMENT8-0/+213
This enables SMP support on the Armada XP processor. It adds the mandatory functions to support SMP such as: the SMP initialization functions in platsmp.c, the secondary CPU entry point in headsmp.S and the CPU hotplug initial support in hotplug.c. Signed-off-by: Yehuda Yitschak <yehuday@marvell.com> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Reviewed-by: Will Deacon <will.deacon@arm.com>
2012-11-21arm: mm: Add support for PJ4B cpu and init routinesGregory CLEMENT3-1/+72
PJ4B is an implementation of the ARMv7 (such as the Cortex A9 for example) released by Marvell. This CPU is currently found in Armada 370 and Armada XP SoCs. This patch provides a support for the specific initialization of this CPU. Signed-off-by: Yehuda Yitschak <yehuday@marvell.com> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Reviewed-by: Will Deacon <will.deacon@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com>
2012-11-21arm: mvebu: Add IPI support via doorbellsGregory CLEMENT4-10/+103
This patch enhances the IRQ controller driver to add support for Inter-Processor-Interrupts that are needed to enable SMP support. Signed-off-by: Yehuda Yitschak <yehuday@marvell.com> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
2012-11-21arm: mvebu: Add initial support for power managmement service unitGregory CLEMENT6-1/+119
The Armada 370 and Armada XP SOCs have a power management service unit which is responsible for powering down and waking up CPUs and other SOC units. This patch adds support for this unit. Signed-off-by: Yehuda Yitschak <yehuday@marvell.com> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
2012-11-21arm: mvebu: Add support for coherency fabric in mach-mvebuGregory CLEMENT7-1/+178
The Armada 370 and Armada XP SOCs have a coherency fabric unit which is responsible for ensuring hardware coherency between all CPUs and between CPUs and I/O masters. This patch provides the basic support needed for SMP. Signed-off-by: Yehuda Yitschak <yehuday@marvell.com> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Reviewed-by: Will Deacon <will.deacon@arm.com>
2012-11-21arm: mvebu: update defconfig to include XOR driverThomas Petazzoni1-0/+2
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21arm: mvebu: update defconfig to include network driverThomas Petazzoni1-0/+5
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21arm: mvebu: remove 'clock-frequency' properties from Armada 370/XP Ethernet ↵Thomas Petazzoni4-12/+0
nodes The mvneta driver for the Marvell Armada 370/XP Ethernet devices has gained proper clock framework integration, and the corresponding Device Tree nodes now have a correct 'clocks' pointer. The 'clock-frequency' properties in the various .dts files for Armada 370/XP boards have therefore become useless. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21arm: mvebu: add 'clocks' property to Ethernet nodes for Armada 370/XP SoCsThomas Petazzoni2-0/+4
The mvneta driver now understands a standard 'clocks' clock pointer property in the Device Tree nodes for the Ethernet devices, so we add the right clock reference for the different Ethernet ports of the Armada 370/XP SoCs. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21net: mvneta: fix section mismatch warning caused by mvneta_deinit()Thomas Petazzoni1-1/+1
mvneta_deinit() can be called from the ->probe() hook in the error path, so it shouldn't be marked as __devexit. It fixes the following section mismatch warning: WARNING: vmlinux.o(.devinit.text+0x239c): Section mismatch in reference from the function mvneta_probe() to the function .devexit.text:mvneta_deinit() The function __devinit mvneta_probe() references a function __devexit mvneta_deinit(). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21net: mvneta: add clk supportThomas Petazzoni2-13/+22
Now that the Armada 370/XP platform has gained proper integration with the clock framework, we add clk support in the Marvell Armada 370/XP Ethernet driver. Since the existing Device Tree binding that exposes a 'clock-frequency' property has never been exposed in any stable kernel release, we take the freedom of removing this property to replace it with the standard 'clocks' clock pointer property. The Device Tree binding documentation is updated accordingly. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21net: mvneta: adjust multiline comments to net/ styleThomas Petazzoni1-42/+42
As reported by checkpatch, the multiline comments for net/ and drivers/net/ have a slightly different format than the one used in the rest of the kernel, so we adjust our multiline comments accordingly. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21net: mvmdio: adjust multiline comment to net/ styleThomas Petazzoni1-2/+1
As reported by checkpatch, the multiline comments for net/ and drivers/net/ have a slightly different format than the one used in the rest of the kernel, so we adjust our multiline comment accordingly. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21net: mvmdio: use <linux/delay.h> instead of <asm/delay.h>Thomas Petazzoni1-2/+1
As suggested by checkpatch, using <linux/delay.h> instead of <asm/delay.h> is appropriate. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21Merge tag 'marvell-boards-net-for-3.8' of ↵Thomas Petazzoni7-1/+273
github.com:MISL-EBU-System-SW/mainline-public into test-the-merge Marvell boards changes related to Ethernet, for 3.8 Conflicts: arch/arm/boot/dts/armada-370-xp.dtsi arch/arm/boot/dts/armada-xp-db.dts
2012-11-21Merge tag 'marvell-neta-for-3.8' of ↵Thomas Petazzoni7-0/+3159
github.com:MISL-EBU-System-SW/mainline-public into test-the-merge Marvell mvneta network driver, for 3.8
2012-11-21Merge tag 'marvell-sata-3.8' of ↵Thomas Petazzoni6-0/+35
github.com:MISL-EBU-System-SW/mainline-public into test-the-merge Marvell Armada 370/XP support for 3.8
2012-11-21Merge tag 'marvell-mvebu-clk-3.8' of ↵Thomas Petazzoni34-38/+1696
github.com:MISL-EBU-System-SW/mainline-public into test-the-merge Marvell MVEBU clk support, for 3.8
2012-11-20arm: mvebu: add XOR engines to Armada XP .dtsiThomas Petazzoni1-0/+40
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20arm: mvebu: add XOR engines to Armada 370 .dtsiThomas Petazzoni1-0/+36
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20arm: dove: Convert Dove to DT XOR DMA engineSebastian Hesselbarth2-10/+42
With DT support for Marvell XOR DMA engine, make use of it on Dove. Also remove the now redundant code in DT board init for xor engines. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20arm: kirkwood: Convert XOR instantiation to DT.Andrew Lunn2-13/+40
Use DT to describe the two XOR DMA engines on Kirkwood. Remove the C code initialization. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: Add a device_control functionAndrew Lunn1-0/+9
The dmatest module for DMA engines calls device_control(dtc->chan, DMA_TERMINATE_ALL, 0); after completing the tests. The documentation in include/linux/dmaengine.h suggests this function is optional and dma_async_device_register() also does not BUG_ON() when not passed a function. However, dmatest is not the only code in the kernel unconditionally calling device_control. So add an implementation indicating all operations are not implemented. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: add missing __devinit and __devexit qualifiers on probe and removeThomas Petazzoni1-3/+3
The ->probe() and ->remove() functions were missing the usual __devinit and __devexit qualifiers. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: add Device Tree bindingThomas Petazzoni2-4/+94
This patch finally adds a Device Tree binding to the mv_xor driver. Thanks to the previous cleanup patches, the Device Tree binding is relatively simply: one DT node per XOR engine, with sub-nodes for each XOR channel of the XOR engine. The binding obviously comes with the necessary documentation. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: devicetree-discuss@lists.ozlabs.org
2012-11-20dma: mv_xor: add missing free_irq() callThomas Petazzoni2-1/+5
Even though the driver cannot be unloaded at the moment, it is still good to properly free the IRQ handlers in the channel removal function. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: remove the pool_size from platform_dataThomas Petazzoni4-26/+9
The pool_size is always PAGE_SIZE, and since it is a software configuration paramter (and not a hardware description parameter), we cannot make it part of the Device Tree binding, so we'd better remove it from the platform_data as well. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: remove hw_id field from platform_dataThomas Petazzoni3-8/+3
There is no need for the platform_data to give this ID, it is simply the channel number, so we can compute it inside the driver when registering the channels. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: remove useless backpointer from mv_xor_chan to mv_xor_deviceThomas Petazzoni2-2/+0
The backpointer from mv_xor_chan to mv_xor_device is now useless, get rid of it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: rename mv_xor_private to mv_xor_deviceThomas Petazzoni2-35/+35
Now that mv_xor_device is no longer used to designate the per-channel DMA devices, use it know to designate the XOR engine themselves (currently composed of two XOR channels). So, now we have the nice organization where: - mv_xor_device represents each XOR engine in the system - mv_xor_chan represents each XOR channel of a given XOR engine Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: merge mv_xor_device and mv_xor_chanThomas Petazzoni2-55/+34
Even though the DMA engine infrastructure has support for multiple channels per device, the mv_xor driver registers one DMA engine device for each channel, because the mv_xor channels inside the same XOR engine have different capabilities, and the DMA engine infrastructure only allows to express capabilities at the DMA engine device level. The mv_xor driver has therefore been registering one DMA engine device and one DMA engine channel for each XOR channel since its introduction in the kernel. However, it kept two separate internal structures, mv_xor_device and mv_xor_channel, which didn't make a lot of sense since there was a 1:1 mapping between those structures. This patch gets rid of this duplication, and merges everything into the mv_xor_chan structure. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: use mv_xor_chan pointers as arguments to self-test functionsThomas Petazzoni1-11/+6
In preparation for the removal of the mv_xor_device structure, we directly pass mv_xor_chan pointers to the self-test functions included in the driver. These functions were anyway selecting the first (and only channel) available in each DMA device, so the behaviour is unchanged. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: in mv_xor_device, rename 'common' to 'dmadev'Thomas Petazzoni2-8/+8
The mv_xor_device structure embeds a 'struct dma_device', which is named 'common', a not very meaningful name. Rename it to 'dmadev', which will help avoid confusions later as we merge the mv_xor_device and mv_xor_chan structures together. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: in mv_xor_chan, rename 'common' to 'dmachan'Thomas Petazzoni2-7/+7
The mv_xor_chan structure embeds a 'struct dma_chan', which is named 'common', a not very meaningful name. Rename it to 'dmachan', which will help avoid confusions later as we merge the mv_xor_device and mv_xor_chan structures together. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20dma: mv_xor: get rid of the pdev pointer in mv_xor_deviceThomas Petazzoni2-6/+4
It was only used in places where we could get the 'struct device *' pointer through a different way. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>