diff options
| -rw-r--r-- | arch/powerpc/cpu/mpc8xxx/fdt.c | 18 | 
1 files changed, 12 insertions, 6 deletions
| diff --git a/arch/powerpc/cpu/mpc8xxx/fdt.c b/arch/powerpc/cpu/mpc8xxx/fdt.c index d07ae1b4f..bc1c30e44 100644 --- a/arch/powerpc/cpu/mpc8xxx/fdt.c +++ b/arch/powerpc/cpu/mpc8xxx/fdt.c @@ -1,5 +1,5 @@  /* - * Copyright 2009-2011 Freescale Semiconductor, Inc. + * Copyright 2009-2012 Freescale Semiconductor, Inc.   *   * This file is derived from arch/powerpc/cpu/mpc85xx/cpu.c and   * arch/powerpc/cpu/mpc86xx/cpu.c. Basically this file contains @@ -137,28 +137,34 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)  	for (i = 1; i <= FSL_MAX_NUM_USB_CTRLS; i++) {  		int mode_idx = -1, phy_idx = -1; -		sprintf(str, "%s%d", "usb", i); +		snprintf(str, 5, "%s%d", "usb", i);  		if (hwconfig(str)) { -			for (j = 0; j < sizeof(modes); j++) { +			for (j = 0; j < ARRAY_SIZE(modes); j++) {  				if (hwconfig_subarg_cmp(str, "dr_mode",  						modes[j])) {  					mode_idx = j;  					break;  				}  			} -			for (j = 0; j < sizeof(phys); j++) { +			for (j = 0; j < ARRAY_SIZE(phys); j++) {  				if (hwconfig_subarg_cmp(str, "phy_type",  						phys[j])) {  					phy_idx = j;  					break;  				}  			} -			if (mode_idx >= 0) +			if (mode_idx >= 0) {  				usb_mode_off = fdt_fixup_usb_mode_phy_type(blob,  					modes[mode_idx], NULL, usb_mode_off); -			if (phy_idx >= 0) +				if (usb_mode_off < 0) +					return; +			} +			if (phy_idx >= 0) {  				usb_phy_off = fdt_fixup_usb_mode_phy_type(blob,  					NULL, phys[phy_idx], usb_phy_off); +				if (usb_phy_off < 0) +					return; +			}  			if (!strcmp(str, "usb1"))  				usb1_defined = 1;  			if (mode_idx < 0 && phy_idx < 0) |