diff options
author | acoul <acoul@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-06-24 15:07:36 +0000 |
---|---|---|
committer | acoul <acoul@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-06-24 15:07:36 +0000 |
commit | fb2c10f9dcb4b4062ece23f5b903881db7a9f3a6 (patch) | |
tree | bbf144d1d4e97a7a919b46b96f9c917b32ca3056 /target/linux/mpc83xx/patches-2.6.35/024-quicc-engine-fixups.patch | |
parent | 5803cbb537690276baf7c6dd70323ea483cb8ca3 (diff) |
mpc83xx: add kernel 2.6.35 preliminary support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21896 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/mpc83xx/patches-2.6.35/024-quicc-engine-fixups.patch')
-rw-r--r-- | target/linux/mpc83xx/patches-2.6.35/024-quicc-engine-fixups.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/target/linux/mpc83xx/patches-2.6.35/024-quicc-engine-fixups.patch b/target/linux/mpc83xx/patches-2.6.35/024-quicc-engine-fixups.patch new file mode 100644 index 0000000000..73c651666a --- /dev/null +++ b/target/linux/mpc83xx/patches-2.6.35/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) +- |