You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/mpc83xx/patches-2.6.36/024-quicc-engine-fixups.patch

72 lines
1.8 KiB
Diff

--- 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)
-