Hi Anton, I know this is late, but a couple of comments anyway.
On Thu, 24 Jan 2008 18:39:59 +0300 Anton Vorontsov <[EMAIL PROTECTED]> wrote: > > +++ b/arch/powerpc/sysdev/qe_lib/qe.c > @@ -65,17 +65,22 @@ static phys_addr_t qebase = -1; > phys_addr_t get_qe_base(void) > { > struct device_node *qe; > + unsigned int size; > + const void *prop; > > if (qebase != -1) > return qebase; > > - qe = of_find_node_by_type(NULL, "qe"); > - if (qe) { > - unsigned int size; > - const void *prop = of_get_property(qe, "reg", &size); > - qebase = of_translate_address(qe, prop); > - of_node_put(qe); > - }; > + qe = of_find_compatible_node(NULL, NULL, "fsl,qe"); > + if (!qe) { > + qe = of_find_node_by_type(NULL, "qe"); > + if (!qe) > + return qebase; > + } > + > + prop = of_get_property(qe, "reg", &size); > + qebase = of_translate_address(qe, prop); If you don't care about the returned length (argument three to of_get_property), you can just pass NULL (and dispense with "size"). Also, what happens if prop is NULL? > @@ -153,16 +158,26 @@ static unsigned int brg_clk = 0; > unsigned int get_brg_clk(void) > { > struct device_node *qe; > + unsigned int size; > + const u32 *prop; > + > if (brg_clk) > return brg_clk; > > - qe = of_find_node_by_type(NULL, "qe"); > - if (qe) { > - unsigned int size; > - const u32 *prop = of_get_property(qe, "brg-frequency", &size); > - brg_clk = *prop; > - of_node_put(qe); > - }; > + qe = of_find_compatible_node(NULL, NULL, "fsl,qe"); > + if (!qe) { > + qe = of_find_node_by_type(NULL, "qe"); > + if (!qe) > + return brg_clk; > + } > + > + prop = of_get_property(qe, "brg-frequency", &size); > + if (!prop || size != sizeof(*prop)) > + return brg_clk; You need an of_node_put(qe) before the return ... -- Cheers, Stephen Rothwell [EMAIL PROTECTED] http://www.canb.auug.org.au/~sfr/
pgpd0ELMyrpcU.pgp
Description: PGP signature
_______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev