diff options
| -rw-r--r-- | board/freescale/common/fman.c | 36 | ||||
| -rw-r--r-- | board/freescale/common/fman.h | 2 | 
2 files changed, 20 insertions, 18 deletions
| diff --git a/board/freescale/common/fman.c b/board/freescale/common/fman.c index 8a55fde6f..6ddf81620 100644 --- a/board/freescale/common/fman.c +++ b/board/freescale/common/fman.c @@ -37,31 +37,33 @@   * ... update that Ethernet node's phy-handle property to point to the   * ethernet-phy node.  This is how we link an Ethernet node to its PHY, so each   * PHY in a virtual MDIO node must have an alias. + * + * Returns 0 on success, or a negative FDT error code on error.   */ -void fdt_set_phy_handle(void *fdt, char *compat, phys_addr_t addr, +int fdt_set_phy_handle(void *fdt, char *compat, phys_addr_t addr,  			const char *alias)  { -	int offset, ph; +	int offset; +	unsigned int ph;  	const char *path;  	/* Get a path to the node that 'alias' points to */  	path = fdt_get_alias(fdt, alias); -	if (path) { -		/* Get the offset of that node */ -		int off = fdt_path_offset(fdt, path); -		if (off > 0) -			ph = fdt_create_phandle(fdt, off); -		else -			return; -	} else { -		return ; -	} +	if (!path) +		return -FDT_ERR_BADPATH; + +	/* Get the offset of that node */ +	offset = fdt_path_offset(fdt, path); +	if (offset < 0) +		return offset; -	/* failed to create a phandle */ -	if (ph <= 0) -		return ; +	ph = fdt_create_phandle(fdt, offset); +	if (!ph) +		return -FDT_ERR_BADPHANDLE;  	offset = fdt_node_offset_by_compat_reg(fdt, compat, addr); -	if (offset > 0) -		fdt_setprop(fdt, offset, "phy-handle", &ph, sizeof(ph)); +	if (offset < 0) +		return offset; + +	return fdt_setprop(fdt, offset, "phy-handle", &ph, sizeof(ph));  } diff --git a/board/freescale/common/fman.h b/board/freescale/common/fman.h index 19ef7c4fb..d39ef080c 100644 --- a/board/freescale/common/fman.h +++ b/board/freescale/common/fman.h @@ -20,7 +20,7 @@  #ifndef __FMAN_BOARD_HELPER__  #define __FMAN_BOARD_HELPER__ -void fdt_set_phy_handle(void *fdt, char *compat, phys_addr_t addr, +int fdt_set_phy_handle(void *fdt, char *compat, phys_addr_t addr,  			const char *alias);  #endif |