[PATCH 1/4] am33xx_generic: convert from switch to if/else

Lucas Stach dev at lynxeye.de
Wed Oct 2 15:45:42 EDT 2013


Am Mittwoch, den 02.10.2013, 21:30 +0200 schrieb Jan Luebbe:
> The function am33xx_get_cpu_rev may be called before barebox_arm_entry(),
> so we need to avoid switch statements. 

Uhm, could you please be more verbose on _why_ we need to avoid switch
statements at this stage? I might be running into the same failure with
Tegra at some point if there's a real issue.

Thanks,
Lucas

> One example is the BeagleBone,
> where we use this function to differenciate between the white and black
> variants.
> 
> Signed-off-by: Jan Luebbe <jlu at pengutronix.de>
> ---
>  arch/arm/mach-omap/am33xx_generic.c |   31 +++++++++++--------------------
>  1 file changed, 11 insertions(+), 20 deletions(-)
> 
> diff --git a/arch/arm/mach-omap/am33xx_generic.c b/arch/arm/mach-omap/am33xx_generic.c
> index 3690ce1..251c8d4 100644
> --- a/arch/arm/mach-omap/am33xx_generic.c
> +++ b/arch/arm/mach-omap/am33xx_generic.c
> @@ -43,30 +43,21 @@ void __noreturn reset_cpu(unsigned long addr)
>   * The significance of the CPU revision depends upon the cpu type.
>   * Latest known revision is considered default.
>   *
> + * This function is called before barebox_arm_entry(), so avoid switch
> + * statements.
> + *
>   * @return silicon version
>   */
>  u32 am33xx_get_cpu_rev(void)
>  {
> -	u32 version, retval;
> -
> -	version = (readl(AM33XX_IDCODE_REG) >> 28) & 0xF;
> -
> -	switch (version) {
> -	case 0:
> -		retval = AM335X_ES1_0;
> -		break;
> -	case 1:
> -		retval = AM335X_ES2_0;
> -		break;
> -	case 2:
> -		/*
> -		 * Fall through the default case.
> -		 */
> -	default:
> -		retval = AM335X_ES2_1;
> -	}
> -
> -	return retval;
> +	u32 version = (readl(AM33XX_IDCODE_REG) >> 28) & 0xF;
> +
> +	if (version == 0)
> +		return AM335X_ES1_0;
> +	else if (version == 1)
> +		return AM335X_ES2_0;
> +	else
> +		return AM335X_ES2_1;
>  }
>  
>  /**





More information about the barebox mailing list