summaryrefslogtreecommitdiffstats
path: root/target/linux/mpc83xx/patches-2.6.36/024-quicc-engine-fixups.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mpc83xx/patches-2.6.36/024-quicc-engine-fixups.patch')
-rw-r--r--target/linux/mpc83xx/patches-2.6.36/024-quicc-engine-fixups.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/target/linux/mpc83xx/patches-2.6.36/024-quicc-engine-fixups.patch b/target/linux/mpc83xx/patches-2.6.36/024-quicc-engine-fixups.patch
new file mode 100644
index 000000000..73c651666
--- /dev/null
+++ b/target/linux/mpc83xx/patches-2.6.36/024-quicc-engine-fixups.patch
@@ -0,0 +1,71 @@
+
+--- a/arch/powerpc/platforms/83xx/rbppc.c
++++ b/arch/powerpc/platforms/83xx/rbppc.c
+@@ -121,21 +121,16 @@ static void __init rbppc_setup_arch(void
+ #endif
+
+ #ifdef CONFIG_QUICC_ENGINE
+- np = of_find_node_by_name(np, "par_io");
+- if (np) {
+- qe_reset();
+- par_io_init(np);
+- of_node_put(np);
+-
+- np = NULL;
+- while (1) {
+- np = of_find_node_by_name(np, "ucc");
+- if (!np) break;
++ qe_reset();
+
+- par_io_of_config(np);
+- }
+- }
+-#endif
++ if ((np = of_find_node_by_name(NULL, "par_io")) != NULL) {
++ par_io_init(np);
++ of_node_put(np);
++
++ for (np = NULL; (np = of_find_node_by_name(np, "ucc")) != NULL;)
++ par_io_of_config(np);
++ }
++#endif
+
+ }
+
+@@ -151,12 +146,16 @@ void __init rbppc_init_IRQ(void)
+ }
+
+ #ifdef CONFIG_QUICC_ENGINE
+- np = of_find_node_by_type(NULL, "qeic");
+- if (np) {
+- qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
+- of_node_put(np);
+- }
+-#endif
++ np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
++ if (!np) {
++ np = of_find_node_by_type(NULL, "qeic");
++ if (!np)
++ return;
++ }
++ qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
++ of_node_put(np);
++#endif /* CONFIG_QUICC_ENGINE */
++
+ }
+
+ static int __init rbppc_probe(void)
+@@ -284,6 +283,8 @@ static struct of_device_id rbppc_ids[] =
+ { .type = "soc", },
+ { .compatible = "soc", },
+ { .compatible = "simple-bus", },
++ { .type = "qe", },
++ { .compatible = "fsl,qe", },
+ { .compatible = "gianfar", },
+ { },
+ };
+@@ -372,4 +373,3 @@ static void fixup_rb604(struct pci_dev *
+
+ DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, fixup_pcibridge)
+ DECLARE_PCI_FIXUP_HEADER(0x3388, 0x0021, fixup_rb604)
+-