summaryrefslogtreecommitdiffstats
path: root/target/linux/mvebu/patches-3.8/005-arm_mvebu_use_global_interrupts_for_gpio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mvebu/patches-3.8/005-arm_mvebu_use_global_interrupts_for_gpio.patch')
-rw-r--r--target/linux/mvebu/patches-3.8/005-arm_mvebu_use_global_interrupts_for_gpio.patch166
1 files changed, 0 insertions, 166 deletions
diff --git a/target/linux/mvebu/patches-3.8/005-arm_mvebu_use_global_interrupts_for_gpio.patch b/target/linux/mvebu/patches-3.8/005-arm_mvebu_use_global_interrupts_for_gpio.patch
deleted file mode 100644
index e190a3301..000000000
--- a/target/linux/mvebu/patches-3.8/005-arm_mvebu_use_global_interrupts_for_gpio.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-The Armada XP GPIO controller has two ways of notifying interrupts:
-using global interrupts or using per-CPU interrupts. In an attempt to
-use the best available features, the 'marvell,armadaxp-gpio'
-compatible string selects a variant of the gpio-mvebu driver that
-makes use of the per-CPU interrupts.
-
-Unfortunately, this doesn't work properly in a SMP context, because we
-fall into cases where the GPIO interrupt is enabled on CPU X at the
-GPIO controller level, but on CPU Y at the interrupt controller
-level. It is not yet clear how to fix that easily.
-
-So for 3.8, our approach is to switch to global interrupts for GPIOs,
-so that we do not fall into this per-CPU interrupts problem.
-
-This patch therefore fixes GPIO interrupts on Armada XP
-platforms. Without this patch, GPIO interrupts simply do not work
-reliably, because their proper operation depends on which CPU the code
-requesting the interrupt is running.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
-This is 3.8-rc material.
----
- arch/arm/boot/dts/armada-xp-mv78230.dtsi | 14 ++++++--------
- arch/arm/boot/dts/armada-xp-mv78260.dtsi | 21 +++++++++------------
- arch/arm/boot/dts/armada-xp-mv78460.dtsi | 21 +++++++++------------
- 3 files changed, 24 insertions(+), 32 deletions(-)
-
---- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi
-+++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi
-@@ -50,27 +50,25 @@
- };
-
- gpio0: gpio@d0018100 {
-- compatible = "marvell,armadaxp-gpio";
-- reg = <0xd0018100 0x40>,
-- <0xd0018800 0x30>;
-+ compatible = "marvell,orion-gpio";
-+ reg = <0xd0018100 0x40>;
- ngpios = <32>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupt-controller;
- #interrupts-cells = <2>;
-- interrupts = <16>, <17>, <18>, <19>;
-+ interrupts = <82>, <83>, <84>, <85>;
- };
-
- gpio1: gpio@d0018140 {
-- compatible = "marvell,armadaxp-gpio";
-- reg = <0xd0018140 0x40>,
-- <0xd0018840 0x30>;
-+ compatible = "marvell,orion-gpio";
-+ reg = <0xd0018140 0x40>;
- ngpios = <17>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupt-controller;
- #interrupts-cells = <2>;
-- interrupts = <20>, <21>, <22>;
-+ interrupts = <87>, <88>, <89>;
- };
- };
- };
---- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi
-+++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
-@@ -51,39 +51,36 @@
- };
-
- gpio0: gpio@d0018100 {
-- compatible = "marvell,armadaxp-gpio";
-- reg = <0xd0018100 0x40>,
-- <0xd0018800 0x30>;
-+ compatible = "marvell,orion-gpio";
-+ reg = <0xd0018100 0x40>;
- ngpios = <32>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupt-controller;
- #interrupts-cells = <2>;
-- interrupts = <16>, <17>, <18>, <19>;
-+ interrupts = <82>, <83>, <84>, <85>;
- };
-
- gpio1: gpio@d0018140 {
-- compatible = "marvell,armadaxp-gpio";
-- reg = <0xd0018140 0x40>,
-- <0xd0018840 0x30>;
-+ compatible = "marvell,orion-gpio";
-+ reg = <0xd0018140 0x40>;
- ngpios = <32>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupt-controller;
- #interrupts-cells = <2>;
-- interrupts = <20>, <21>, <22>, <23>;
-+ interrupts = <87>, <88>, <89>, <90>;
- };
-
- gpio2: gpio@d0018180 {
-- compatible = "marvell,armadaxp-gpio";
-- reg = <0xd0018180 0x40>,
-- <0xd0018870 0x30>;
-+ compatible = "marvell,orion-gpio";
-+ reg = <0xd0018180 0x40>;
- ngpios = <3>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupt-controller;
- #interrupts-cells = <2>;
-- interrupts = <24>;
-+ interrupts = <91>;
- };
-
- ethernet@d0034000 {
---- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi
-+++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
-@@ -66,39 +66,36 @@
- };
-
- gpio0: gpio@d0018100 {
-- compatible = "marvell,armadaxp-gpio";
-- reg = <0xd0018100 0x40>,
-- <0xd0018800 0x30>;
-+ compatible = "marvell,orion-gpio";
-+ reg = <0xd0018100 0x40>;
- ngpios = <32>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupt-controller;
- #interrupts-cells = <2>;
-- interrupts = <16>, <17>, <18>, <19>;
-+ interrupts = <82>, <83>, <84>, <85>;
- };
-
- gpio1: gpio@d0018140 {
-- compatible = "marvell,armadaxp-gpio";
-- reg = <0xd0018140 0x40>,
-- <0xd0018840 0x30>;
-+ compatible = "marvell,orion-gpio";
-+ reg = <0xd0018140 0x40>;
- ngpios = <32>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupt-controller;
- #interrupts-cells = <2>;
-- interrupts = <20>, <21>, <22>, <23>;
-+ interrupts = <87>, <88>, <89>, <90>;
- };
-
- gpio2: gpio@d0018180 {
-- compatible = "marvell,armadaxp-gpio";
-- reg = <0xd0018180 0x40>,
-- <0xd0018870 0x30>;
-+ compatible = "marvell,orion-gpio";
-+ reg = <0xd0018180 0x40>;
- ngpios = <3>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupt-controller;
- #interrupts-cells = <2>;
-- interrupts = <24>;
-+ interrupts = <91>;
- };
-
- ethernet@d0034000 {