All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm: omap3: am35x: Don't mark missing features as present
@ 2012-04-19 18:58 ` Mark A. Greer
  0 siblings, 0 replies; 10+ messages in thread
From: Mark A. Greer @ 2012-04-19 18:58 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: Mark A. Greer

From: "Mark A. Greer" <mgreer@animalcreek.com>

The Chip Identification register on the am35x family of SoCs
has bits 12, 7:5, and 3:2 marked as reserved and are read as
zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
called by omap3_check_features() will incorrectly interpret
those zeroes to mean that a feature is present even though it
isn't.  To fix that, the feature bits that are incorrectly
set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
cleared after all of the calls to OMAP3_CHECK_FEATURE() in
omap3_check_features() are made.

Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
---
 arch/arm/mach-omap2/id.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 0e79b7b..9736049 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -248,6 +248,17 @@ void __init omap3xxx_check_features(void)
 	omap_features |= OMAP3_HAS_SDRC;
 
 	/*
+	 * am35x fixups:
+	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
+	 *   reserved and therefore return 0 when read.  Unfortunately,
+	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
+	 *   mean that a feature is present even though it isn't so clear
+	 *   the incorrectly set feature bits.
+	 */
+	if (cpu_is_omap3505() || cpu_is_omap3517())
+		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);
+
+	/*
 	 * TODO: Get additional info (where applicable)
 	 *       e.g. Size of L2 cache.
 	 */
-- 
1.7.9.4


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH] arm: omap3: am35x: Don't mark missing features as present
@ 2012-04-19 18:58 ` Mark A. Greer
  0 siblings, 0 replies; 10+ messages in thread
From: Mark A. Greer @ 2012-04-19 18:58 UTC (permalink / raw)
  To: linux-arm-kernel

From: "Mark A. Greer" <mgreer@animalcreek.com>

The Chip Identification register on the am35x family of SoCs
has bits 12, 7:5, and 3:2 marked as reserved and are read as
zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
called by omap3_check_features() will incorrectly interpret
those zeroes to mean that a feature is present even though it
isn't.  To fix that, the feature bits that are incorrectly
set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
cleared after all of the calls to OMAP3_CHECK_FEATURE() in
omap3_check_features() are made.

Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
---
 arch/arm/mach-omap2/id.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 0e79b7b..9736049 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -248,6 +248,17 @@ void __init omap3xxx_check_features(void)
 	omap_features |= OMAP3_HAS_SDRC;
 
 	/*
+	 * am35x fixups:
+	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
+	 *   reserved and therefore return 0 when read.  Unfortunately,
+	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
+	 *   mean that a feature is present even though it isn't so clear
+	 *   the incorrectly set feature bits.
+	 */
+	if (cpu_is_omap3505() || cpu_is_omap3517())
+		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);
+
+	/*
 	 * TODO: Get additional info (where applicable)
 	 *       e.g. Size of L2 cache.
 	 */
-- 
1.7.9.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] arm: omap3: am35x: Don't mark missing features as present
  2012-04-19 18:58 ` Mark A. Greer
@ 2012-04-27 21:21   ` Kevin Hilman
  -1 siblings, 0 replies; 10+ messages in thread
From: Kevin Hilman @ 2012-04-27 21:21 UTC (permalink / raw)
  To: Mark A. Greer; +Cc: linux-omap, linux-arm-kernel

"Mark A. Greer" <mgreer@animalcreek.com> writes:

> From: "Mark A. Greer" <mgreer@animalcreek.com>
>
> The Chip Identification register on the am35x family of SoCs
> has bits 12, 7:5, and 3:2 marked as reserved and are read as
> zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
> feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
> called by omap3_check_features() will incorrectly interpret
> those zeroes to mean that a feature is present even though it
> isn't.  To fix that, the feature bits that are incorrectly
> set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
> cleared after all of the calls to OMAP3_CHECK_FEATURE() in
> omap3_check_features() are made.
>
> Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
> ---
>  arch/arm/mach-omap2/id.c |   11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> index 0e79b7b..9736049 100644
> --- a/arch/arm/mach-omap2/id.c
> +++ b/arch/arm/mach-omap2/id.c
> @@ -248,6 +248,17 @@ void __init omap3xxx_check_features(void)
>  	omap_features |= OMAP3_HAS_SDRC;
>  
>  	/*
> +	 * am35x fixups:
> +	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
> +	 *   reserved and therefore return 0 when read.  Unfortunately,
> +	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
> +	 *   mean that a feature is present even though it isn't so clear
> +	 *   the incorrectly set feature bits.
> +	 */
> +	if (cpu_is_omap3505() || cpu_is_omap3517())
> +		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);

I just sent a series that removes these cpu_is macros:

   http://marc.info/?l=linux-omap&m=133548306205953&w=2

It looks like I can just replace the above with 'if (cpu_is_am35xx()', correct?

Since you have various AM35x devices, could you could give my series a
spin and make this change?  If it works, and acked-by/tested-by on my
series would be appreciated as well.

Thanks,

Kevin




> +	/*
>  	 * TODO: Get additional info (where applicable)
>  	 *       e.g. Size of L2 cache.
>  	 */

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm: omap3: am35x: Don't mark missing features as present
@ 2012-04-27 21:21   ` Kevin Hilman
  0 siblings, 0 replies; 10+ messages in thread
From: Kevin Hilman @ 2012-04-27 21:21 UTC (permalink / raw)
  To: linux-arm-kernel

"Mark A. Greer" <mgreer@animalcreek.com> writes:

> From: "Mark A. Greer" <mgreer@animalcreek.com>
>
> The Chip Identification register on the am35x family of SoCs
> has bits 12, 7:5, and 3:2 marked as reserved and are read as
> zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
> feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
> called by omap3_check_features() will incorrectly interpret
> those zeroes to mean that a feature is present even though it
> isn't.  To fix that, the feature bits that are incorrectly
> set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
> cleared after all of the calls to OMAP3_CHECK_FEATURE() in
> omap3_check_features() are made.
>
> Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
> ---
>  arch/arm/mach-omap2/id.c |   11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> index 0e79b7b..9736049 100644
> --- a/arch/arm/mach-omap2/id.c
> +++ b/arch/arm/mach-omap2/id.c
> @@ -248,6 +248,17 @@ void __init omap3xxx_check_features(void)
>  	omap_features |= OMAP3_HAS_SDRC;
>  
>  	/*
> +	 * am35x fixups:
> +	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
> +	 *   reserved and therefore return 0 when read.  Unfortunately,
> +	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
> +	 *   mean that a feature is present even though it isn't so clear
> +	 *   the incorrectly set feature bits.
> +	 */
> +	if (cpu_is_omap3505() || cpu_is_omap3517())
> +		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);

I just sent a series that removes these cpu_is macros:

   http://marc.info/?l=linux-omap&m=133548306205953&w=2

It looks like I can just replace the above with 'if (cpu_is_am35xx()', correct?

Since you have various AM35x devices, could you could give my series a
spin and make this change?  If it works, and acked-by/tested-by on my
series would be appreciated as well.

Thanks,

Kevin




> +	/*
>  	 * TODO: Get additional info (where applicable)
>  	 *       e.g. Size of L2 cache.
>  	 */

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] arm: omap3: am35x: Don't mark missing features as present
  2012-04-27 21:21   ` Kevin Hilman
@ 2012-04-27 21:30     ` Mark A. Greer
  -1 siblings, 0 replies; 10+ messages in thread
From: Mark A. Greer @ 2012-04-27 21:30 UTC (permalink / raw)
  To: Kevin Hilman; +Cc: linux-omap, linux-arm-kernel

On Fri, Apr 27, 2012 at 02:21:59PM -0700, Kevin Hilman wrote:
> "Mark A. Greer" <mgreer@animalcreek.com> writes:
> 
> > From: "Mark A. Greer" <mgreer@animalcreek.com>
> >
> > The Chip Identification register on the am35x family of SoCs
> > has bits 12, 7:5, and 3:2 marked as reserved and are read as
> > zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
> > feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
> > called by omap3_check_features() will incorrectly interpret
> > those zeroes to mean that a feature is present even though it
> > isn't.  To fix that, the feature bits that are incorrectly
> > set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
> > cleared after all of the calls to OMAP3_CHECK_FEATURE() in
> > omap3_check_features() are made.
> >
> > Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
> > ---
> >  arch/arm/mach-omap2/id.c |   11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >
> > diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> > index 0e79b7b..9736049 100644
> > --- a/arch/arm/mach-omap2/id.c
> > +++ b/arch/arm/mach-omap2/id.c
> > @@ -248,6 +248,17 @@ void __init omap3xxx_check_features(void)
> >  	omap_features |= OMAP3_HAS_SDRC;
> >  
> >  	/*
> > +	 * am35x fixups:
> > +	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
> > +	 *   reserved and therefore return 0 when read.  Unfortunately,
> > +	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
> > +	 *   mean that a feature is present even though it isn't so clear
> > +	 *   the incorrectly set feature bits.
> > +	 */
> > +	if (cpu_is_omap3505() || cpu_is_omap3517())
> > +		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);
> 
> I just sent a series that removes these cpu_is macros:
> 
>    http://marc.info/?l=linux-omap&m=133548306205953&w=2
> 
> It looks like I can just replace the above with 'if (cpu_is_am35xx()', correct?

Yes.

> Since you have various AM35x devices, could you could give my series a
> spin and make this change?  If it works, and acked-by/tested-by on my
> series would be appreciated as well.

Sure.  I already have them ported to your series.  I have to leave early
today but I'll test them & get them to you on Monday.  Sorry for the delay.

Mark

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] arm: omap3: am35x: Don't mark missing features as present
@ 2012-04-27 21:30     ` Mark A. Greer
  0 siblings, 0 replies; 10+ messages in thread
From: Mark A. Greer @ 2012-04-27 21:30 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Apr 27, 2012 at 02:21:59PM -0700, Kevin Hilman wrote:
> "Mark A. Greer" <mgreer@animalcreek.com> writes:
> 
> > From: "Mark A. Greer" <mgreer@animalcreek.com>
> >
> > The Chip Identification register on the am35x family of SoCs
> > has bits 12, 7:5, and 3:2 marked as reserved and are read as
> > zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
> > feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
> > called by omap3_check_features() will incorrectly interpret
> > those zeroes to mean that a feature is present even though it
> > isn't.  To fix that, the feature bits that are incorrectly
> > set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
> > cleared after all of the calls to OMAP3_CHECK_FEATURE() in
> > omap3_check_features() are made.
> >
> > Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
> > ---
> >  arch/arm/mach-omap2/id.c |   11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >
> > diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> > index 0e79b7b..9736049 100644
> > --- a/arch/arm/mach-omap2/id.c
> > +++ b/arch/arm/mach-omap2/id.c
> > @@ -248,6 +248,17 @@ void __init omap3xxx_check_features(void)
> >  	omap_features |= OMAP3_HAS_SDRC;
> >  
> >  	/*
> > +	 * am35x fixups:
> > +	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
> > +	 *   reserved and therefore return 0 when read.  Unfortunately,
> > +	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
> > +	 *   mean that a feature is present even though it isn't so clear
> > +	 *   the incorrectly set feature bits.
> > +	 */
> > +	if (cpu_is_omap3505() || cpu_is_omap3517())
> > +		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);
> 
> I just sent a series that removes these cpu_is macros:
> 
>    http://marc.info/?l=linux-omap&m=133548306205953&w=2
> 
> It looks like I can just replace the above with 'if (cpu_is_am35xx()', correct?

Yes.

> Since you have various AM35x devices, could you could give my series a
> spin and make this change?  If it works, and acked-by/tested-by on my
> series would be appreciated as well.

Sure.  I already have them ported to your series.  I have to leave early
today but I'll test them & get them to you on Monday.  Sorry for the delay.

Mark

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2] arm: omap3: am35x: Don't mark missing features as present
  2012-04-19 18:58 ` Mark A. Greer
@ 2012-04-30 23:57   ` Mark A. Greer
  -1 siblings, 0 replies; 10+ messages in thread
From: Mark A. Greer @ 2012-04-30 23:57 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: khilman, paul, Mark A. Greer

From: "Mark A. Greer" <mgreer@animalcreek.com>

The Chip Identification register on the am35x family of SoCs
has bits 12, 7:5, and 3:2 marked as reserved and are read as
zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
called by omap3_check_features() will incorrectly interpret
those zeroes to mean that a feature is present even though it
isn't.  To fix that, the feature bits that are incorrectly
set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
cleared after all of the calls to OMAP3_CHECK_FEATURE() in
omap3_check_features() are made.

Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
---
 arch/arm/mach-omap2/id.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index d2913e2..20c95b4 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -247,6 +247,17 @@ void __init omap3xxx_check_features(void)
 	omap_features |= OMAP3_HAS_SDRC;
 
 	/*
+	 * am35x fixups:
+	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
+	 *   reserved and therefore return 0 when read.  Unfortunately,
+	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
+	 *   mean that a feature is present even though it isn't so clear
+	 *   the incorrectly set feature bits.
+	 */
+	if (cpu_is_am35xx())
+		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);
+
+	/*
 	 * TODO: Get additional info (where applicable)
 	 *       e.g. Size of L2 cache.
 	 */
-- 
1.7.9.4


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2] arm: omap3: am35x: Don't mark missing features as present
@ 2012-04-30 23:57   ` Mark A. Greer
  0 siblings, 0 replies; 10+ messages in thread
From: Mark A. Greer @ 2012-04-30 23:57 UTC (permalink / raw)
  To: linux-arm-kernel

From: "Mark A. Greer" <mgreer@animalcreek.com>

The Chip Identification register on the am35x family of SoCs
has bits 12, 7:5, and 3:2 marked as reserved and are read as
zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
called by omap3_check_features() will incorrectly interpret
those zeroes to mean that a feature is present even though it
isn't.  To fix that, the feature bits that are incorrectly
set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
cleared after all of the calls to OMAP3_CHECK_FEATURE() in
omap3_check_features() are made.

Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
---
 arch/arm/mach-omap2/id.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index d2913e2..20c95b4 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -247,6 +247,17 @@ void __init omap3xxx_check_features(void)
 	omap_features |= OMAP3_HAS_SDRC;
 
 	/*
+	 * am35x fixups:
+	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
+	 *   reserved and therefore return 0 when read.  Unfortunately,
+	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
+	 *   mean that a feature is present even though it isn't so clear
+	 *   the incorrectly set feature bits.
+	 */
+	if (cpu_is_am35xx())
+		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);
+
+	/*
 	 * TODO: Get additional info (where applicable)
 	 *       e.g. Size of L2 cache.
 	 */
-- 
1.7.9.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] arm: omap3: am35x: Don't mark missing features as present
  2012-04-30 23:57   ` Mark A. Greer
@ 2012-05-01 14:15     ` Kevin Hilman
  -1 siblings, 0 replies; 10+ messages in thread
From: Kevin Hilman @ 2012-05-01 14:15 UTC (permalink / raw)
  To: Mark A. Greer; +Cc: linux-omap, linux-arm-kernel, paul

"Mark A. Greer" <mgreer@animalcreek.com> writes:

> From: "Mark A. Greer" <mgreer@animalcreek.com>
>
> The Chip Identification register on the am35x family of SoCs
> has bits 12, 7:5, and 3:2 marked as reserved and are read as
> zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
> feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
> called by omap3_check_features() will incorrectly interpret
> those zeroes to mean that a feature is present even though it
> isn't.  To fix that, the feature bits that are incorrectly
> set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
> cleared after all of the calls to OMAP3_CHECK_FEATURE() in
> omap3_check_features() are made.
>
> Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>

Looks good, thanks.

I'll queue this one up on top of my AM35x cpu_is cleanups (branch:
for_3.5/cleanup/am35x-cpu-is)

Kevin

> ---
>  arch/arm/mach-omap2/id.c |   11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> index d2913e2..20c95b4 100644
> --- a/arch/arm/mach-omap2/id.c
> +++ b/arch/arm/mach-omap2/id.c
> @@ -247,6 +247,17 @@ void __init omap3xxx_check_features(void)
>  	omap_features |= OMAP3_HAS_SDRC;
>  
>  	/*
> +	 * am35x fixups:
> +	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
> +	 *   reserved and therefore return 0 when read.  Unfortunately,
> +	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
> +	 *   mean that a feature is present even though it isn't so clear
> +	 *   the incorrectly set feature bits.
> +	 */
> +	if (cpu_is_am35xx())
> +		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);
> +
> +	/*
>  	 * TODO: Get additional info (where applicable)
>  	 *       e.g. Size of L2 cache.
>  	 */

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2] arm: omap3: am35x: Don't mark missing features as present
@ 2012-05-01 14:15     ` Kevin Hilman
  0 siblings, 0 replies; 10+ messages in thread
From: Kevin Hilman @ 2012-05-01 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

"Mark A. Greer" <mgreer@animalcreek.com> writes:

> From: "Mark A. Greer" <mgreer@animalcreek.com>
>
> The Chip Identification register on the am35x family of SoCs
> has bits 12, 7:5, and 3:2 marked as reserved and are read as
> zeroes.  Unfortunately, on other omap SoCs, a 0 bit means a
> feature is "Full Use" so the OMAP3_CHECK_FEATURE() macro
> called by omap3_check_features() will incorrectly interpret
> those zeroes to mean that a feature is present even though it
> isn't.  To fix that, the feature bits that are incorrectly
> set (namely, OMAP3_HAS_IVA and OMAP3_HAS_ISP) need to be
> cleared after all of the calls to OMAP3_CHECK_FEATURE() in
> omap3_check_features() are made.
>
> Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>

Looks good, thanks.

I'll queue this one up on top of my AM35x cpu_is cleanups (branch:
for_3.5/cleanup/am35x-cpu-is)

Kevin

> ---
>  arch/arm/mach-omap2/id.c |   11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> index d2913e2..20c95b4 100644
> --- a/arch/arm/mach-omap2/id.c
> +++ b/arch/arm/mach-omap2/id.c
> @@ -247,6 +247,17 @@ void __init omap3xxx_check_features(void)
>  	omap_features |= OMAP3_HAS_SDRC;
>  
>  	/*
> +	 * am35x fixups:
> +	 * - The am35x Chip ID register has bits 12, 7:5, and 3:2 marked as
> +	 *   reserved and therefore return 0 when read.  Unfortunately,
> +	 *   OMAP3_CHECK_FEATURE() will interpret some of those zeroes to
> +	 *   mean that a feature is present even though it isn't so clear
> +	 *   the incorrectly set feature bits.
> +	 */
> +	if (cpu_is_am35xx())
> +		omap_features &= ~(OMAP3_HAS_IVA | OMAP3_HAS_ISP);
> +
> +	/*
>  	 * TODO: Get additional info (where applicable)
>  	 *       e.g. Size of L2 cache.
>  	 */

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2012-05-01 14:15 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-19 18:58 [PATCH] arm: omap3: am35x: Don't mark missing features as present Mark A. Greer
2012-04-19 18:58 ` Mark A. Greer
2012-04-27 21:21 ` Kevin Hilman
2012-04-27 21:21   ` Kevin Hilman
2012-04-27 21:30   ` Mark A. Greer
2012-04-27 21:30     ` Mark A. Greer
2012-04-30 23:57 ` [PATCH v2] " Mark A. Greer
2012-04-30 23:57   ` Mark A. Greer
2012-05-01 14:15   ` Kevin Hilman
2012-05-01 14:15     ` Kevin Hilman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.