RE: [PATCH 1/2] AM35xx: Runtime detection of the device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Felipe Balbi [mailto:felipe.balbi@xxxxxxxxx] 
> Sent: Wednesday, October 28, 2009 2:39 AM
> To: Premi, Sanjeev
> Cc: Balbi Felipe (Nokia-D/Helsinki); 
> linux-omap@xxxxxxxxxxxxxxx; tony@xxxxxxxxxxx
> Subject: Re: [PATCH 1/2] AM35xx: Runtime detection of the device
> 
> Hi,
> 
> On Tue, Oct 27, 2009 at 07:08:22PM +0100, ext Premi, Sanjeev wrote:
> > > > diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> > > > index 1c15112..87efb73 100644
> > > > --- a/arch/arm/mach-omap2/id.c
> > > > +++ b/arch/arm/mach-omap2/id.c
> > > > @@ -242,6 +242,21 @@ void __init omap3_check_revision(void)
> > > >  			omap_revision = OMAP3630_REV_ES1_0;
> > > >  		}
> > > >  		break;
> > > > +	case 0xb868:
> > > > +		/* Handle OMAP35xx/AM35xx devices
> > > > +		 *
> > > > +		 * Set the device to be OMAP3517 here. 
> Actual device
> > > > +		 * is identified later based on the features.
> > > > +		 */
> > > > +		switch (rev) {
> > > > +		case 0:
> > > > +			omap_revision = OMAP3505_REV(rev);
> > > > +			break;
> > > > +		default:
> > > > +			/* Use the latest known 
> revision as default */
> > > > +			omap_revision = OMAP3505_REV(rev);
> > > 
> > > if both are the same, what's the point of having this switch ?
> > 
> > [sp] I was just following the style for 3630, while re-basing
> >      this patch :(
> 
> I see, but that's clearly bogus (in a sense), then if you come up with
> another version of the chip, there will be two place to be 
> fixed. Tony,
> what do you think about applying the following cleanup patch to id.c ?
> 
> From: Felipe Balbi <felipe.balbi@xxxxxxxxx>
> Subject: [PATCH] arm: omap: code cleanup to id.c
> 
> Cleanup the coding style in id.c while avoiding unneeded switch()
> statements.
> 
> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxx>
> ---
> 
> diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> index 1c15112..dbdeb09 100644
> --- a/arch/arm/mach-omap2/id.c
> +++ b/arch/arm/mach-omap2/id.c
> @@ -53,11 +53,11 @@ int omap_type(void)
>  {
>  	u32 val = 0;
>  
> -	if (cpu_is_omap24xx())
> +	if (cpu_is_omap24xx()) {
>  		val = omap_ctrl_readl(OMAP24XX_CONTROL_STATUS);
> -	else if (cpu_is_omap34xx())
> +	} else if (cpu_is_omap34xx()) {
>  		val = omap_ctrl_readl(OMAP343X_CONTROL_STATUS);
> -	else {
> +	} else {
>  		pr_err("Cannot detect omap type!\n");
>  		goto out;
>  	}
> @@ -224,24 +224,14 @@ void __init omap3_check_revision(void)
>  			omap_revision = OMAP3430_REV_ES3_0;
>  			break;
>  		case 4:
> -			omap_revision = OMAP3430_REV_ES3_1;
> -			break;
> +		/* FALLTHROUGH */
>  		default:
>  			/* Use the latest known revision as default */
>  			omap_revision = OMAP3430_REV_ES3_1;
>  		}
>  		break;
>  	case 0xb891:
> -		/* Handle 36xx devices */
> -		switch (rev) {
> -		case 0:
> -			omap_revision = OMAP3630_REV_ES1_0;
> -			break;
> -		default:
> -			/* Use the latest known revision as default */
> -			omap_revision = OMAP3630_REV_ES1_0;
> -		}
> -		break;
> +	/* FALLTHROUGH */
>  	default:
>  		/* Unknown default to latest silicon rev as default*/
>  		omap_revision = OMAP3630_REV_ES1_0;

[sp] Haven't applied the patch. But, if FALLTHROUGH will make the device
     detected as OMAP3630, then it may not be right. The fall through
     should be on most common device. OMAP3430 ES21./3.1 should be ideal.

     Thoughts?

~sanjeev

> @@ -266,19 +256,17 @@ void __init omap3_cpuinfo(void)
>  	 * on available features. Upon detection, update the CPU id
>  	 * and CPU class bits.
>  	 */
> -	if (cpu_is_omap3630())
> +	if (cpu_is_omap3630()) {
>  		strcpy(cpu_name, "3630");
> -	else if (omap3_has_iva() && omap3_has_sgx())
> +	} else if (omap3_has_iva() && omap3_has_sgx()) {
>  		strcpy(cpu_name, "3430/3530");
> -	else if (omap3_has_sgx()) {
> +	} else if (omap3_has_sgx()) {
>  		omap_revision = OMAP3525_REV(rev);
>  		strcpy(cpu_name, "3525");
> -	}
> -	else if (omap3_has_iva()) {
> +	} else if (omap3_has_iva()) {
>  		omap_revision = OMAP3515_REV(rev);
>  		strcpy(cpu_name, "3515");
> -	}
> -	else {
> +	} else {
>  		omap_revision = OMAP3503_REV(rev);
>  		strcpy(cpu_name, "3503");
>  	}
> @@ -297,8 +285,7 @@ void __init omap3_cpuinfo(void)
>  		strcpy(cpu_rev, "3.0");
>  		break;
>  	case OMAP_REVBITS_40:
> -		strcpy(cpu_rev, "3.1");
> -		break;
> +	/* FALLTHROUGH */
>  	default:
>  		/* Use the latest known revision as default */
>  		strcpy(cpu_rev, "3.1");
> @@ -325,18 +312,18 @@ void __init omap2_check_revision(void)
>  	 * At this point we have an idea about the processor 
> revision set
>  	 * earlier with omap2_set_globals_tap().
>  	 */
> -	if (cpu_is_omap24xx())
> +	if (cpu_is_omap24xx()) {
>  		omap24xx_check_revision();
> -	else if (cpu_is_omap34xx()) {
> +	} else if (cpu_is_omap34xx()) {
>  		omap3_check_features();
>  		omap3_check_revision();
>  		omap3_cpuinfo();
> -	}
> -	else if (cpu_is_omap44xx()) {
> +	} else if (cpu_is_omap44xx()) {
>  		printk(KERN_INFO "FIXME: CPU revision = OMAP4430\n");
>  		return;
> -	} else
> +	} else {
>  		pr_err("OMAP revision unknown, please fix!\n");
> +	}
>  
>  	/*
>  	 * OK, now we know the exact revision. Initialize omap_chip bits
> 
> -- 
> balbi
> 
> --
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux