[PATCH 1/5] [POWERPC] qe_lib and users: get rid of most device_types and model

Stephen Rothwell sfr at canb.auug.org.au
Tue Feb 5 00:13:18 EST 2008


Hi Anton,

I know this is late, but a couple of comments anyway.

On Thu, 24 Jan 2008 18:39:59 +0300 Anton Vorontsov <avorontsov at ru.mvista.com> 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                    sfr at canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20080205/1e88909a/attachment.pgp>


More information about the Linuxppc-dev mailing list