Commit graph

335916 commits

Author SHA1 Message Date
Jason Cooper 56580bb422 Merge branch 'mvebu-misc-fixes' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything 2012-11-24 04:08:49 +00:00
Thomas Petazzoni 73d9cdca1c dma: mv_xor: fix error handling path
The ->probe() function of the mv_xor function contains in its error
handling code a loop to cleanup the XOR channels that had been
successfully initialized if some other XOR channel fails to be
initialized. It does that by traveling the list of XOR channels, and
cleanup those for which the pointer is not NULL.

However, since the mv_xor_channel_add() function return a PTR_ERR
style value, the pointer is not NULL on error. So, when handling the
error of a given channel initialization, we cleanup this channel
initialization and mark this channel entry as NULL in the array. This
allows the remaining of the cleanup (for other channels) to work
properly.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-22 18:22:59 +01:00
Thomas Petazzoni f8eb9e7d2a dma: mv_xor: fix error checking of irq_of_parse_and_map()
The irq_of_parse_and_map() function returns 0 on failure, and does not
return an error code, so we fix the calling site of
irq_of_parse_and_map() in the mv_xor driver.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-22 18:22:12 +01:00
Thomas Petazzoni 2d0a074517 dma: mv_xor: use request_irq() instead of devm_request_irq()
Even through the usage of devm_*() functions is generally recommended
over their classic variants, in the case of devm_request_irq()
combined with irq_of_parse_and_map(), it doesn't work nicely.

We have the following scenario:

 irq_of_parse_and_map(...)
 devm_request_irq(...)

For some reason, the driver initialization fails at a later
point. Since irq_of_parse_and_map() is no device-managed, we do a:

 irq_dispose_mapping(...)

Unfortunately, this doesn't work, because the free_irq() must be done
prior to calling irq_dispose_mapping(). But with the devm mechanism,
the automatic free_irq() would happen only after we get out of the
->probe() function.

So basically, we revert to using request_irq() with traditional error
handling, so that in case of error, free_irq() gets called before
irq_dispose_mapping().

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-22 18:19:09 +01:00
Thomas Petazzoni c4b4b732b2 dma: mv_xor: clear the window override control registers
The XOR channels on Marvell SoCs have a Window Override Control
register that allow to do some fancy things with addresses. Those
features are not used by the driver, but some U-Boot versions anyway
modify those registers.

For some reason, the U-Boot on OpenBlocks AX3-4 was setting an invalid
value in those registers when the addition 2 GB DRAM chip was plugged
into the board, causing the XOR driver to fail in using the XOR
engines.

By setting those registers to 0 during the driver initialization, we
ensure that the registers are configured according with the driver
operation model.

Thanks to Lior Amsalem <alior@marvell.com> for his help in debugging
this problem.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-22 18:16:37 +01:00
Thomas Petazzoni 9f3410ff21 arm: mvebu: fix address decoding armada_cfg_base() function
The armada_cfg_base() function returns the base address of the
registers that allow to configure the decoding for a particular
address window. On Armada 370/XP, the lower windows have more
configuration registers (4 registers) than the higher windows (2
registers). This armada_cfg_base() takes this into account by doing a
different offset calculation depending on the window number, but this
offset calculation was wrong for the higher windows.

Even though we were not using high window numbers until now (only
window 0 is used to map the BootROM, needed for SMP), we use this
function at boot time to disable all windows to ensure that nothing
remains intialized from what the bootloader has done.

Unfortunately, the U-Boot on the OpenBlocks AX3-4 uses a window with a
high number (above 8) to remap the BootROM. And then when the kernel
boots, it remaps the BootROM in window 0. Normally, this is not a
problem, because all windows have previously been disabled. Except
that due to our wrong offset calculation, the windows with high
numbers were not properly disabled, leading to the BootROM being
mapped twice. The visible result of this bug was that the kernel was
unable to get the second CPU started on the OpenBlocks AX3-4
platform. With this fix, all windows are properly cleared at boot
time, the BootROM is remapped only once in window 0, and the second
CPU boots fine.

Thanks a lot to Lior Amsamlen <alior@marvell.com> for his help in
debugging this problem.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Strictly speaking, this bug was introduced in 3.7, but since the only
platforms supported in 3.7 were Armada 370 and Armada XP, and there
was anyway no SMP support at this time, it isn't really worth the
effort to push this patch in 3.7.
2012-11-22 18:15:20 +01:00
Thomas Petazzoni 1112b36094 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.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCs+5oACgkQCwYYjhRyO9UywACfVp3WPDHLxE8ypew3AWoTyxe3
 JcMAoIjojnjWCd44cqDJ4uEpvi6KNquE
 =BR8m
 -----END PGP SIGNATURE-----

Merge tag 'marvell-armadaxp-smp-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into mevbu-dt-additions

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.

Conflicts:
	arch/arm/mach-mvebu/armada-370-xp.c
2012-11-22 10:55:09 +01:00
Thomas Petazzoni a79cfde1b1 Merge branch 'for-jason-1/cleanup' into mevbu-dt-additions 2012-11-22 10:50:55 +01:00
Jason Cooper 4e76b1b232 Marvell SATA and I2C enabling for OpenBlocks AX3-4
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCtU90ACgkQ9lPLMJjT96dSdQCfcmuU/3oXziktW6coEOwWD0rZ
 rpAAoITtWPO7RNRqhCVQGFJKuuy5sid7
 =ME0a
 -----END PGP SIGNATURE-----

Merge tag 'marvell-openblocks-i2c-sata-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything

Marvell SATA and I2C enabling for OpenBlocks AX3-4
2012-11-22 03:28:05 +00:00
Thomas Petazzoni 9bfd143ed2 ARM: mvebu: update defconfig with I2C and RTC support
Now that we have support for the I2C busses on Armada 370/XP, and
support for the RTC on the OpenBlocks AX3-4 platform, include the
necessary options in mvebu_defconfig.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21 23:20:36 +01:00
Thomas Petazzoni 6435389dde ARM: mvebu: Add SATA support for OpenBlocks AX3-4
This patch enables SATA support on the OpenBlocks AX3-4. It has one
internal SATA port, and an external eSATA port.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21 23:20:35 +01:00
Nobuhiro Iwamatsu 14bedd4afb ARM: mvebu: Add support for the RTC in OpenBlocks AX3-4
The OpenBlocks AX3-4 has a Seiko Instruments S-35390A as the RTC
controller.  This patch enables this RTC device in the OpenBlocks
AX3-4 Device Tree.

[Thomas Petazzoni: updated with other OpenBlocks changes, rephrased
commit log.]
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21 23:19:39 +01:00
Nobuhiro Iwamatsu 9eab21cffc ARM: mvebu: Add support for I2C on OpenBlocks AX3-4
The OpenBlocks AX3-4 board, based on the Armada XP SoC, has an I2C
bus. This patch enables this bus and sets the clock frequency of the
bus.

[Thomas Petazzoni: updated with other changes on OpenBlocks, rephrased
commit log.]
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21 23:18:43 +01:00
Nobuhiro Iwamatsu 539eb5bca0 ARM: mvebu: Add support for I2C controllers in Armada 370/XP
The Armada 370 and Armada XP have the same I2C controllers as previous
Marvell SoCs, so the existing mv64xxx-i2c driver works fine.

[Thomas Petazzoni: updated on top of other Armada 370/XP changes,
rephrased the commit log].
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-21 23:17:34 +01:00
Jason Cooper 32d6448a08 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.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCs/LcACgkQCwYYjhRyO9WrOgCfeWpA9XdQnwexySw5tPXS7Qdp
 aJEAn2ql07SECpTRWezTJptHL0oI1dFF
 =b0T7
 -----END PGP SIGNATURE-----

Merge tag 'marvell-hwiocc-for-3.8' of 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-21 20:02:46 +00:00
Jason Cooper 86b7d3f779 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.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCs+5oACgkQCwYYjhRyO9UywACfVp3WPDHLxE8ypew3AWoTyxe3
 JcMAoIjojnjWCd44cqDJ4uEpvi6KNquE
 =BR8m
 -----END PGP SIGNATURE-----

Merge tag 'marvell-armadaxp-smp-for-3.8' of 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-21 20:01:15 +00:00
Jason Cooper 9580e3e3fb Marvell mvebu defconfig updates for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAycACgkQ9lPLMJjT96cQGgCgq4xI2ig/aM1TTqanQAnTbggv
 PQwAn3iZzozSCL91KAfsN84spBXk+Zes
 =b4+f
 -----END PGP SIGNATURE-----

Merge tag 'marvell-net-xor-defconfig-for-3.8' of 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-21 20:00:36 +00:00
Jason Cooper 98d8df630d Marvell XOR driver DT changes for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAhAACgkQ9lPLMJjT96dSzQCgoJwqNxCWQPYFgi1XgxYDYaOM
 A10An1l0h8WMAgy/eDBlyWOjA8FD8Ekx
 =xq4r
 -----END PGP SIGNATURE-----

Merge tag 'marvell-xor-board-dt-changes-3.8-v2' of 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-21 19:57:23 +00:00
Jason Cooper c9dc03ddbf Marvell XOR driver cleanup and DT binding for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAccACgkQ9lPLMJjT96csOwCgp2b7yPQ6eZy/rrjlq1A1Lf4o
 m/cAoLhSzXqv7rkMWZEKY2hzmEzhltMi
 =UqJm
 -----END PGP SIGNATURE-----

Merge tag 'marvell-xor-cleanup-dt-binding-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything

Marvell XOR driver cleanup and DT binding for 3.8
2012-11-21 19:55:20 +00:00
Jason Cooper 61528f4e92 Marvell Ethernet DT update for clk support
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAS4ACgkQ9lPLMJjT96eiRACgiaH1oX0V6DRuSUT29OSqOaSa
 S/QAoKl9x/4EL8Vm+/2GXNmjCczc9ofX
 =SF8H
 -----END PGP SIGNATURE-----

Merge tag 'marvell-neta-dt-clk-updates-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything

Marvell Ethernet DT update for clk support
2012-11-21 19:54:35 +00:00
Jason Cooper 23f4f6020e Marvell Ethernet driver fix + clk support
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAOYACgkQ9lPLMJjT96eCqQCffyg9LHzmTC74je1RdaVNDbdl
 zHMAn0I3VvirlsRHK6dQBmvNyAZMHvxT
 =v9GL
 -----END PGP SIGNATURE-----

Merge tag 'marvell-mvneta-fix-and-clk-support-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything

Marvell Ethernet driver fix + clk support
2012-11-21 19:53:48 +00:00
Jason Cooper e3899fc7ce Marvell network/MDIO driver checkpatch fixes
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAF4ACgkQ9lPLMJjT96eTGQCfZ/xZJx/eJhXNRDnas7ATqibH
 V6wAn2OWfL+/e4SfKqybfqB1u1hORoKC
 =tvLK
 -----END PGP SIGNATURE-----

Merge tag 'marvell-net-mdio-checkpatch-fixes-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything

Marvell network/MDIO driver checkpatch fixes
2012-11-21 19:52:42 +00:00
Jason Cooper edd47fbb49 Marvell boards changes related to Ethernet, for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCmB6oACgkQ9lPLMJjT96elAwCfQyZY9HP0PW+0y2VRbKLYlrTW
 vaQAoJMNKRaxjBwnF5As4I4/5g0rsE/H
 =hRb7
 -----END PGP SIGNATURE-----

Merge tag 'marvell-boards-net-for-3.8' of 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-21 19:51:14 +00:00
Jason Cooper 4135c7d4a7 Marvell mvneta network driver, for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCmBcwACgkQ9lPLMJjT96fgYgCgjMIcOcxiIqp96ZViLPbNN47+
 JHAAnjFlv6h+tqe5t3c1afR8ZMhV58c7
 =poVA
 -----END PGP SIGNATURE-----

Merge tag 'marvell-neta-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything

Marvell mvneta network driver, for 3.8
2012-11-21 19:48:03 +00:00
Jason Cooper bcd731e1ed Marvell Armada 370/XP support for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCrmS8ACgkQ9lPLMJjT96cnsgCgsZ+TZb7UWOMlV4yLzdPS/CIf
 qJEAniDrzpCgwrBhF2pJt3YpNz5ylaJK
 =lCQA
 -----END PGP SIGNATURE-----

Merge tag 'marvell-sata-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything

Marvell Armada 370/XP support for 3.8
2012-11-21 19:47:42 +00:00
Jason Cooper 53bce9c7c4 Marvell MVEBU clk support, for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCrkvYACgkQ9lPLMJjT96cRqwCgsFUezgEynwbaLSddexWTF/Mf
 gEgAn1PP+InuSXnqziKHmLd3cc4tSkh+
 =jxyJ
 -----END PGP SIGNATURE-----

Merge tag 'marvell-mvebu-clk-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything

Marvell MVEBU clk support, for 3.8
2012-11-21 19:46:43 +00:00
Gregory CLEMENT e60304f8cb arm: mvebu: Add hardware I/O Coherency support
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-21 17:07:49 +01:00
Gregory CLEMENT 722202e10b arm: plat-orion: Add coherency attribute when setup mbus target
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-21 17:07:49 +01:00
Gregory CLEMENT 87b54e786a arm: dma mapping: Export a dma ops function arm_dma_set_mask
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-21 17:07:49 +01:00
Gregory CLEMENT 45f5984a8a arm: mvebu: Add SMP support for Armada XP
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-21 16:49:38 +01:00
Gregory CLEMENT de4901933f arm: mm: Add support for PJ4B cpu and init routines
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-21 16:49:38 +01:00
Gregory CLEMENT 344e873e56 arm: mvebu: Add IPI support via doorbells
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-21 16:49:37 +01:00
Gregory CLEMENT 7444dad240 arm: mvebu: Add initial support for power managmement service unit
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-21 16:49:36 +01:00
Gregory CLEMENT 009f13159b arm: mvebu: Add support for coherency fabric in mach-mvebu
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-21 16:49:06 +01:00
Thomas Petazzoni 74f980beaa Marvell mvebu defconfig updates for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAycACgkQ9lPLMJjT96cQGgCgq4xI2ig/aM1TTqanQAnTbggv
 PQwAn3iZzozSCL91KAfsN84spBXk+Zes
 =b4+f
 -----END PGP SIGNATURE-----

Merge tag 'marvell-net-xor-defconfig-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge

Marvell mvebu defconfig updates for 3.8

Conflicts:
	arch/arm/configs/mvebu_defconfig

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20 23:42:09 +01:00
Thomas Petazzoni 895e4e3a7d Marvell XOR driver DT changes for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAhAACgkQ9lPLMJjT96dSzQCgoJwqNxCWQPYFgi1XgxYDYaOM
 A10An1l0h8WMAgy/eDBlyWOjA8FD8Ekx
 =xq4r
 -----END PGP SIGNATURE-----

Merge tag 'marvell-xor-board-dt-changes-3.8-v2' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge

Marvell XOR driver DT changes for 3.8

Conflicts:
	arch/arm/boot/dts/armada-xp.dtsi

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20 23:40:29 +01:00
Thomas Petazzoni 0ddd80856b Marvell XOR driver cleanup and DT binding for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAccACgkQ9lPLMJjT96csOwCgp2b7yPQ6eZy/rrjlq1A1Lf4o
 m/cAoLhSzXqv7rkMWZEKY2hzmEzhltMi
 =UqJm
 -----END PGP SIGNATURE-----

Merge tag 'marvell-xor-cleanup-dt-binding-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge

Marvell XOR driver cleanup and DT binding for 3.8
2012-11-20 23:38:47 +01:00
Thomas Petazzoni f40788a666 Marvell Ethernet DT update for clk support
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAS4ACgkQ9lPLMJjT96eiRACgiaH1oX0V6DRuSUT29OSqOaSa
 S/QAoKl9x/4EL8Vm+/2GXNmjCczc9ofX
 =SF8H
 -----END PGP SIGNATURE-----

Merge tag 'marvell-neta-dt-clk-updates-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge

Marvell Ethernet DT update for clk support
2012-11-20 23:38:00 +01:00
Thomas Petazzoni a19aab5792 Marvell Ethernet driver fix + clk support
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAOYACgkQ9lPLMJjT96eCqQCffyg9LHzmTC74je1RdaVNDbdl
 zHMAn0I3VvirlsRHK6dQBmvNyAZMHvxT
 =v9GL
 -----END PGP SIGNATURE-----

Merge tag 'marvell-mvneta-fix-and-clk-support-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge

Marvell Ethernet driver fix + clk support
2012-11-20 23:37:28 +01:00
Thomas Petazzoni ecab7dd7a8 Marvell network/MDIO driver checkpatch fixes
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCsAF4ACgkQ9lPLMJjT96eTGQCfZ/xZJx/eJhXNRDnas7ATqibH
 V6wAn2OWfL+/e4SfKqybfqB1u1hORoKC
 =tvLK
 -----END PGP SIGNATURE-----

Merge tag 'marvell-net-mdio-checkpatch-fixes-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge

Marvell network/MDIO driver checkpatch fixes

Conflicts:
	arch/arm/boot/dts/armada-xp-db.dts

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20 23:36:51 +01:00
Thomas Petazzoni 089c38e724 Marvell boards changes related to Ethernet, for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCmB6oACgkQ9lPLMJjT96elAwCfQyZY9HP0PW+0y2VRbKLYlrTW
 vaQAoJMNKRaxjBwnF5As4I4/5g0rsE/H
 =hRb7
 -----END PGP SIGNATURE-----

Merge tag 'marvell-boards-net-for-3.8' of 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

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20 23:35:16 +01:00
Thomas Petazzoni e3fad9a4f8 Marvell mvneta network driver, for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCmBcwACgkQ9lPLMJjT96fgYgCgjMIcOcxiIqp96ZViLPbNN47+
 JHAAnjFlv6h+tqe5t3c1afR8ZMhV58c7
 =poVA
 -----END PGP SIGNATURE-----

Merge tag 'marvell-neta-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge

Marvell mvneta network driver, for 3.8
2012-11-20 23:32:58 +01:00
Thomas Petazzoni e01d10b0ee Marvell Armada 370/XP support for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCrmS8ACgkQ9lPLMJjT96cnsgCgsZ+TZb7UWOMlV4yLzdPS/CIf
 qJEAniDrzpCgwrBhF2pJt3YpNz5ylaJK
 =lCQA
 -----END PGP SIGNATURE-----

Merge tag 'marvell-sata-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge

Marvell Armada 370/XP support for 3.8
2012-11-20 23:30:08 +01:00
Thomas Petazzoni 4ee961a35a Marvell MVEBU clk support, for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCrkvYACgkQ9lPLMJjT96cRqwCgsFUezgEynwbaLSddexWTF/Mf
 gEgAn1PP+InuSXnqziKHmLd3cc4tSkh+
 =jxyJ
 -----END PGP SIGNATURE-----

Merge tag 'marvell-mvebu-clk-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge

Marvell MVEBU clk support, for 3.8
2012-11-20 23:29:27 +01:00
Thomas Petazzoni 8dc40c19ef arm: mvebu: update defconfig to include XOR driver
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20 23:24:07 +01:00
Thomas Petazzoni ef804d049d arm: mvebu: update defconfig to include network driver
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-11-20 23:23:48 +01:00
Thomas Petazzoni 42db1215ee arm: mvebu: remove 'clock-frequency' properties from Armada 370/XP Ethernet 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-20 23:15:56 +01:00
Thomas Petazzoni 4aa935a2cf arm: mvebu: add 'clocks' property to Ethernet nodes for Armada 370/XP SoCs
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-20 23:15:47 +01:00
Thomas Petazzoni 70eeaf9845 net: mvneta: fix section mismatch warning caused by mvneta_deinit()
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-20 23:14:34 +01:00
Thomas Petazzoni 189dd62642 net: mvneta: add clk support
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-20 23:14:25 +01:00