How to introduce omap_features (was Re: [PATCH RESEND] update omap3 features bitmap and API to generic names)

2010-05-11 Thread Nishanth Menon

-linux-arm

On 05/10/2010 10:53 PM, S, Venkatraman wrote:

-Original Message-
From: menon.nisha...@gmail.com
[mailto:menon.nisha...@gmail.com] On Behalf Of Menon, Nishanth
Sent: Tuesday, May 11, 2010 5:02 AM
To: S, Venkatraman
Cc: linux-omap@vger.kernel.org;
linux-arm-ker...@lists.infradead.org; Tony Lindgren;
Chikkature Rajashekar, Madhusudhan
Subject: Re: [PATCH RESEND] update omap3 features bitmap and
API to generic names

On Mon, May 10, 2010 at 2:55 PM, Venkatraman S
svenk...@ti.com  wrote:

OMAP3 features bitmap is used a method to check for SoC
specific features. This patch renames the global variables and the
accessor functions to use a generic name from omap3_* to
omap_*

Signed-off-by: Venkatraman Ssvenk...@ti.com
CC: Nishant Menonn...@ti.com

Just for the patchworks
NAK - discussed before -
http://marc.info/?l=linux-omapm=127349696800651w=2


This patch doesn't have the descriptor load changes, and just the rename.
Did you take a look at it first?


Arrgh - my bad - there was no reference to previous discussions or 
anything in this patch, please do add references in diffstat section if 
you are refering to a previous discussed strategy to help the reviewers 
differentiate and understand you better.


overall this still opens up a question for me - can we blindly replace 
omap3-features with omap features? how do we think of omap1,2,3,4 are 
handled consistently with a 32 bit field?


I agree on the need to have a omap independent field, but is 
omap3_features the one we need to modify OR should we be introducing a 
new field?


my vote goes for introducing a new field.




CC: Tony Lindgrent...@atomide.com
CC: Madhusudhan Chikkaturemadhu...@ti.com
---
  * Resent to CC Madhu

  arch/arm/mach-omap2/clock3xxx_data.c  |2 +-
  arch/arm/mach-omap2/id.c  |   18 
  arch/arm/plat-omap/include/plat/cpu.h |   34

  3 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/arch/arm/mach-omap2/clock3xxx_data.c
b/arch/arm/mach-omap2/clock3xxx_data.c
index 9cba556..afa481d 100644
--- a/arch/arm/mach-omap2/clock3xxx_data.c
+++ b/arch/arm/mach-omap2/clock3xxx_data.c
@@ -3510,7 +3510,7 @@ int __init omap3xxx_clk_init(void)
cpu_clkflg |= CK_3430ES2;
}
}
-   if (omap3_has_192mhz_clk())
+   if (omap_has_192mhz_clk())
omap_96m_alwon_fck = omap_96m_alwon_fck_3630;

if (cpu_is_omap3630()) {
diff --git a/arch/arm/mach-omap2/id.c

b/arch/arm/mach-omap2/id.c index

37b8a1a..a095b87 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -28,7 +28,7 @@
  static struct omap_chip_id omap_chip;
  static unsigned int omap_revision;

-u32 omap3_features;
+u32 omap_features;

  unsigned int omap_rev(void)
  {
@@ -161,14 +161,14 @@ void __init omap24xx_check_revision(void)
  #define OMAP3_CHECK_FEATURE(status,feat)



\
if (((status  OMAP3_ ##feat## _MASK)



\
  OMAP3_ ##feat## _SHIFT) != FEAT_ ##feat##

_NONE) {

\
-   omap3_features |= OMAP3_HAS_ ##feat;



\
+   omap_features |= OMAP_HAS_ ##feat;



+ \
}

  void __init omap3_check_features(void)
  {
u32 status;

-   omap3_features = 0;
+   omap_features = 0;

status = omap_ctrl_readl(OMAP3_CONTROL_OMAP_STATUS);

@@ -178,7 +178,7 @@ void __init omap3_check_features(void)
OMAP3_CHECK_FEATURE(status, NEON);
OMAP3_CHECK_FEATURE(status, ISP);
if (cpu_is_omap3630())
-   omap3_features |= OMAP3_HAS_192MHZ_CLK;
+   omap_features |= OMAP_HAS_192MHZ_CLK;

/*
 * TODO: Get additional info (where applicable) @@ -294,7
+294,7 @@ void __init omap4_check_revision(void)
  }

  #define OMAP3_SHOW_FEATURE(feat)   \
-   if (omap3_has_ ##feat())\
+   if (omap_has_ ##feat()) \
printk(#feat );

  void __init omap3_cpuinfo(void)
@@ -314,20 +314,20 @@ void __init omap3_cpuinfo(void)
/*
 * AM35xx devices
 */
-   if (omap3_has_sgx()) {
+   if (omap_has_sgx()) {
omap_revision = OMAP3517_REV(rev);
strcpy(cpu_name, AM3517);
} else {
/* Already set in omap3_check_revision() */
strcpy(cpu_name, AM3505);
}
-   } else if (omap3_has_iva()  omap3_has_sgx()) {
+   } else if (omap_has_iva()  omap_has_sgx()) {
/* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */
strcpy(cpu_name, OMAP3430/3530);
-   } else if (omap3_has_iva()) {
+   } else if (omap_has_iva()) {
omap_revision = OMAP3525_REV(rev);
strcpy(cpu_name, OMAP3525);
-   } else if (omap3_has_sgx()) {
+   } else if (omap_has_sgx()) {
omap_revision = OMAP3515_REV(rev

Re: How to introduce omap_features (was Re: [PATCH RESEND] update omap3 features bitmap and API to generic names)

2010-05-11 Thread Venkatraman S
 Nishanth Menon menon.nisha...@gmail.com wrote:
 -linux-arm

 On 05/10/2010 10:53 PM, S, Venkatraman wrote:

 -Original Message-
 From: menon.nisha...@gmail.com
 [mailto:menon.nisha...@gmail.com] On Behalf Of Menon, Nishanth
 Sent: Tuesday, May 11, 2010 5:02 AM
 To: S, Venkatraman
 Cc: linux-omap@vger.kernel.org;
 linux-arm-ker...@lists.infradead.org; Tony Lindgren;
 Chikkature Rajashekar, Madhusudhan
 Subject: Re: [PATCH RESEND] update omap3 features bitmap and
 API to generic names

 On Mon, May 10, 2010 at 2:55 PM, Venkatraman S
 svenk...@ti.com  wrote:

        OMAP3 features bitmap is used a method to check for SoC
 specific features. This patch renames the global variables and the
 accessor functions to use a generic name from omap3_* to
 omap_*

 Signed-off-by: Venkatraman Ssvenk...@ti.com
 CC: Nishant Menonn...@ti.com

 Just for the patchworks
 NAK - discussed before -
 http://marc.info/?l=linux-omapm=127349696800651w=2

 This patch doesn't have the descriptor load changes, and just the rename.
 Did you take a look at it first?

 Arrgh - my bad - there was no reference to previous discussions or anything
 in this patch, please do add references in diffstat section if you are
 refering to a previous discussed strategy to help the reviewers
 differentiate and understand you better.

 overall this still opens up a question for me - can we blindly replace
 omap3-features with omap features? how do we think of omap1,2,3,4 are
 handled consistently with a 32 bit field?

 I agree on the need to have a omap independent field, but is omap3_features
 the one we need to modify OR should we be introducing a new field?

 my vote goes for introducing a new field.


You are confusing the interface with implementation (or rather,
worrying about both of them simultaneously).

The interface has to be consistent and SoC independent, to the extent possible.
  So the macro changes are relevant and readable / extensible.

Regarding the variable name (implementation):-
   Given the minimal set that we have (5 -6 fields today, so there is
room for 25 more 'features still), I don't think
we should over-engineer it now to accomodate all permutations and use
cases. It's not even found use
beyond 1 or 2 files. YAGNI ?

Regards,
Venkat.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: How to introduce omap_features (was Re: [PATCH RESEND] update omap3 features bitmap and API to generic names)

2010-05-11 Thread Nishanth Menon

Venkatraman S had written, on 05/11/2010 07:19 AM, the following:

 Nishanth Menon menon.nisha...@gmail.com wrote:

-linux-arm

On 05/10/2010 10:53 PM, S, Venkatraman wrote:

-Original Message-
From: menon.nisha...@gmail.com
[mailto:menon.nisha...@gmail.com] On Behalf Of Menon, Nishanth
Sent: Tuesday, May 11, 2010 5:02 AM
To: S, Venkatraman
Cc: linux-omap@vger.kernel.org;
linux-arm-ker...@lists.infradead.org; Tony Lindgren;
Chikkature Rajashekar, Madhusudhan
Subject: Re: [PATCH RESEND] update omap3 features bitmap and
API to generic names

On Mon, May 10, 2010 at 2:55 PM, Venkatraman S
svenk...@ti.com  wrote:

   OMAP3 features bitmap is used a method to check for SoC
specific features. This patch renames the global variables and the
accessor functions to use a generic name from omap3_* to
omap_*

Signed-off-by: Venkatraman Ssvenk...@ti.com
CC: Nishant Menonn...@ti.com

Just for the patchworks
NAK - discussed before -
http://marc.info/?l=linux-omapm=127349696800651w=2

This patch doesn't have the descriptor load changes, and just the rename.
Did you take a look at it first?

Arrgh - my bad - there was no reference to previous discussions or anything
in this patch, please do add references in diffstat section if you are
refering to a previous discussed strategy to help the reviewers
differentiate and understand you better.

overall this still opens up a question for me - can we blindly replace
omap3-features with omap features? how do we think of omap1,2,3,4 are
handled consistently with a 32 bit field?

I agree on the need to have a omap independent field, but is omap3_features
the one we need to modify OR should we be introducing a new field?

my vote goes for introducing a new field.



You are confusing the interface with implementation (or rather,
worrying about both of them simultaneously).

The interface has to be consistent and SoC independent, to the extent possible.
  So the macro changes are relevant and readable / extensible.

Regarding the variable name (implementation):-
   Given the minimal set that we have (5 -6 fields today, so there is
room for 25 more 'features still), I don't think
we should over-engineer it now to accomodate all permutations and use
cases. It's not even found use
beyond 1 or 2 files. YAGNI ?


huh? I dont understand you. lets see what we we are doing here:
a) we are causing an ABI breakage by moving omap3_feature to 
omap_feature (which by the way should also include changes to the macros 
as well..)
b) we have a real need to have a cross OMAP feature distinction to 
differentiate between generic omap feature and omap3/2/1/4 features.


This patch does not address the same in a consistent scalable way. NOTE: 
we are starting to introduce other OMAP4 features as well, SOC level 
feature distinction should ideally be handled by FEATURE framework - 
that is the reason it was introduced in the first place.


if your feel this is overengineering - well, I believe this is 
conceptual definition - Specific OMAP[1234] *family* features Vs OMAP 
generic features.. two different things in my mind - it does not matter 
if I have 32 bits in the original variable OR if I had 64bit.. i dont 
prefer to reuse a variable and mess up the conceptual distinction.



--
Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RESEND] update omap3 features bitmap and API to generic names

2010-05-10 Thread Nishanth Menon
On Mon, May 10, 2010 at 2:55 PM, Venkatraman S svenk...@ti.com wrote:
        OMAP3 features bitmap is used a method to check
 for SoC specific features. This patch renames the global variables
 and the accessor functions to use a generic name from omap3_* to
 omap_*

 Signed-off-by: Venkatraman S svenk...@ti.com
 CC: Nishant Menon n...@ti.com
Just for the patchworks
NAK - discussed before - http://marc.info/?l=linux-omapm=127349696800651w=2

 CC: Tony Lindgren t...@atomide.com
 CC: Madhusudhan Chikkature madhu...@ti.com
 ---
  * Resent to CC Madhu

  arch/arm/mach-omap2/clock3xxx_data.c  |    2 +-
  arch/arm/mach-omap2/id.c              |   18 
  arch/arm/plat-omap/include/plat/cpu.h |   34 
  3 files changed, 27 insertions(+), 27 deletions(-)

 diff --git a/arch/arm/mach-omap2/clock3xxx_data.c 
 b/arch/arm/mach-omap2/clock3xxx_data.c
 index 9cba556..afa481d 100644
 --- a/arch/arm/mach-omap2/clock3xxx_data.c
 +++ b/arch/arm/mach-omap2/clock3xxx_data.c
 @@ -3510,7 +3510,7 @@ int __init omap3xxx_clk_init(void)
                        cpu_clkflg |= CK_3430ES2;
                }
        }
 -       if (omap3_has_192mhz_clk())
 +       if (omap_has_192mhz_clk())
                omap_96m_alwon_fck = omap_96m_alwon_fck_3630;

        if (cpu_is_omap3630()) {
 diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
 index 37b8a1a..a095b87 100644
 --- a/arch/arm/mach-omap2/id.c
 +++ b/arch/arm/mach-omap2/id.c
 @@ -28,7 +28,7 @@
  static struct omap_chip_id omap_chip;
  static unsigned int omap_revision;

 -u32 omap3_features;
 +u32 omap_features;

  unsigned int omap_rev(void)
  {
 @@ -161,14 +161,14 @@ void __init omap24xx_check_revision(void)
  #define OMAP3_CHECK_FEATURE(status,feat)                               \
        if (((status  OMAP3_ ##feat## _MASK)                           \
                 OMAP3_ ##feat## _SHIFT) != FEAT_ ##feat## _NONE) {   \
 -               omap3_features |= OMAP3_HAS_ ##feat;                    \
 +               omap_features |= OMAP_HAS_ ##feat;                      \
        }

  void __init omap3_check_features(void)
  {
        u32 status;

 -       omap3_features = 0;
 +       omap_features = 0;

        status = omap_ctrl_readl(OMAP3_CONTROL_OMAP_STATUS);

 @@ -178,7 +178,7 @@ void __init omap3_check_features(void)
        OMAP3_CHECK_FEATURE(status, NEON);
        OMAP3_CHECK_FEATURE(status, ISP);
        if (cpu_is_omap3630())
 -               omap3_features |= OMAP3_HAS_192MHZ_CLK;
 +               omap_features |= OMAP_HAS_192MHZ_CLK;

        /*
         * TODO: Get additional info (where applicable)
 @@ -294,7 +294,7 @@ void __init omap4_check_revision(void)
  }

  #define OMAP3_SHOW_FEATURE(feat)               \
 -       if (omap3_has_ ##feat())                \
 +       if (omap_has_ ##feat())         \
                printk(#feat );

  void __init omap3_cpuinfo(void)
 @@ -314,20 +314,20 @@ void __init omap3_cpuinfo(void)
                /*
                 * AM35xx devices
                 */
 -               if (omap3_has_sgx()) {
 +               if (omap_has_sgx()) {
                        omap_revision = OMAP3517_REV(rev);
                        strcpy(cpu_name, AM3517);
                } else {
                        /* Already set in omap3_check_revision() */
                        strcpy(cpu_name, AM3505);
                }
 -       } else if (omap3_has_iva()  omap3_has_sgx()) {
 +       } else if (omap_has_iva()  omap_has_sgx()) {
                /* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */
                strcpy(cpu_name, OMAP3430/3530);
 -       } else if (omap3_has_iva()) {
 +       } else if (omap_has_iva()) {
                omap_revision = OMAP3525_REV(rev);
                strcpy(cpu_name, OMAP3525);
 -       } else if (omap3_has_sgx()) {
 +       } else if (omap_has_sgx()) {
                omap_revision = OMAP3515_REV(rev);
                strcpy(cpu_name, OMAP3515);
        } else {
 diff --git a/arch/arm/plat-omap/include/plat/cpu.h 
 b/arch/arm/plat-omap/include/plat/cpu.h
 index 7514174..80dc8e0 100644
 --- a/arch/arm/plat-omap/include/plat/cpu.h
 +++ b/arch/arm/plat-omap/include/plat/cpu.h
 @@ -434,28 +434,28 @@ int omap_chip_is(struct omap_chip_id oci);
  void omap2_check_revision(void);

  /*
 - * Runtime detection of OMAP3 features
 + * Runtime detection of OMAP features
  */
 -extern u32 omap3_features;
 +extern u32 omap_features;

 -#define OMAP3_HAS_L2CACHE              BIT(0)
 -#define OMAP3_HAS_IVA                  BIT(1)
 -#define OMAP3_HAS_SGX                  BIT(2)
 -#define OMAP3_HAS_NEON                 BIT(3)
 -#define OMAP3_HAS_ISP                  BIT(4)
 -#define OMAP3_HAS_192MHZ_CLK           BIT(5)
 +#define OMAP_HAS_L2CACHE               BIT(0)
 +#define OMAP_HAS_IVA                   BIT(1)
 +#define OMAP_HAS_SGX                   BIT(2)
 +#define OMAP_HAS_NEON                  BIT(3)
 +#define OMAP_HAS_ISP                   BIT(4)
 +#define 

RE: [PATCH RESEND] update omap3 features bitmap and API to generic names

2010-05-10 Thread S, Venkatraman
 -Original Message-
 From: menon.nisha...@gmail.com 
 [mailto:menon.nisha...@gmail.com] On Behalf Of Menon, Nishanth
 Sent: Tuesday, May 11, 2010 5:02 AM
 To: S, Venkatraman
 Cc: linux-omap@vger.kernel.org; 
 linux-arm-ker...@lists.infradead.org; Tony Lindgren; 
 Chikkature Rajashekar, Madhusudhan
 Subject: Re: [PATCH RESEND] update omap3 features bitmap and 
 API to generic names
 
 On Mon, May 10, 2010 at 2:55 PM, Venkatraman S 
 svenk...@ti.com wrote:
         OMAP3 features bitmap is used a method to check for SoC 
  specific features. This patch renames the global variables and the 
  accessor functions to use a generic name from omap3_* to
  omap_*
 
  Signed-off-by: Venkatraman S svenk...@ti.com
  CC: Nishant Menon n...@ti.com
 Just for the patchworks
 NAK - discussed before - 
 http://marc.info/?l=linux-omapm=127349696800651w=2

This patch doesn't have the descriptor load changes, and just the rename.
Did you take a look at it first?
 
  CC: Tony Lindgren t...@atomide.com
  CC: Madhusudhan Chikkature madhu...@ti.com
  ---
   * Resent to CC Madhu
 
   arch/arm/mach-omap2/clock3xxx_data.c  |    2 +-
   arch/arm/mach-omap2/id.c              |   18 
   arch/arm/plat-omap/include/plat/cpu.h |   34 
  
   3 files changed, 27 insertions(+), 27 deletions(-)
 
  diff --git a/arch/arm/mach-omap2/clock3xxx_data.c 
  b/arch/arm/mach-omap2/clock3xxx_data.c
  index 9cba556..afa481d 100644
  --- a/arch/arm/mach-omap2/clock3xxx_data.c
  +++ b/arch/arm/mach-omap2/clock3xxx_data.c
  @@ -3510,7 +3510,7 @@ int __init omap3xxx_clk_init(void)
                         cpu_clkflg |= CK_3430ES2;
                 }
         }
  -       if (omap3_has_192mhz_clk())
  +       if (omap_has_192mhz_clk())
                 omap_96m_alwon_fck = omap_96m_alwon_fck_3630;
 
         if (cpu_is_omap3630()) {
  diff --git a/arch/arm/mach-omap2/id.c 
 b/arch/arm/mach-omap2/id.c index 
  37b8a1a..a095b87 100644
  --- a/arch/arm/mach-omap2/id.c
  +++ b/arch/arm/mach-omap2/id.c
  @@ -28,7 +28,7 @@
   static struct omap_chip_id omap_chip;
   static unsigned int omap_revision;
 
  -u32 omap3_features;
  +u32 omap_features;
 
   unsigned int omap_rev(void)
   {
  @@ -161,14 +161,14 @@ void __init omap24xx_check_revision(void)
   #define OMAP3_CHECK_FEATURE(status,feat)                   
             
  \
         if (((status  OMAP3_ ##feat## _MASK)                
            
  \
                  OMAP3_ ##feat## _SHIFT) != FEAT_ ##feat## 
 _NONE) {   
  \
  -               omap3_features |= OMAP3_HAS_ ##feat;        
             
  \
  +               omap_features |= OMAP_HAS_ ##feat;          
             
  + \
         }
 
   void __init omap3_check_features(void)
   {
         u32 status;
 
  -       omap3_features = 0;
  +       omap_features = 0;
 
         status = omap_ctrl_readl(OMAP3_CONTROL_OMAP_STATUS);
 
  @@ -178,7 +178,7 @@ void __init omap3_check_features(void)
         OMAP3_CHECK_FEATURE(status, NEON);
         OMAP3_CHECK_FEATURE(status, ISP);
         if (cpu_is_omap3630())
  -               omap3_features |= OMAP3_HAS_192MHZ_CLK;
  +               omap_features |= OMAP_HAS_192MHZ_CLK;
 
         /*
          * TODO: Get additional info (where applicable) @@ -294,7 
  +294,7 @@ void __init omap4_check_revision(void)
   }
 
   #define OMAP3_SHOW_FEATURE(feat)               \
  -       if (omap3_has_ ##feat())                \
  +       if (omap_has_ ##feat())         \
                 printk(#feat );
 
   void __init omap3_cpuinfo(void)
  @@ -314,20 +314,20 @@ void __init omap3_cpuinfo(void)
                 /*
                  * AM35xx devices
                  */
  -               if (omap3_has_sgx()) {
  +               if (omap_has_sgx()) {
                         omap_revision = OMAP3517_REV(rev);
                         strcpy(cpu_name, AM3517);
                 } else {
                         /* Already set in omap3_check_revision() */
                         strcpy(cpu_name, AM3505);
                 }
  -       } else if (omap3_has_iva()  omap3_has_sgx()) {
  +       } else if (omap_has_iva()  omap_has_sgx()) {
                 /* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */
                 strcpy(cpu_name, OMAP3430/3530);
  -       } else if (omap3_has_iva()) {
  +       } else if (omap_has_iva()) {
                 omap_revision = OMAP3525_REV(rev);
                 strcpy(cpu_name, OMAP3525);
  -       } else if (omap3_has_sgx()) {
  +       } else if (omap_has_sgx()) {
                 omap_revision = OMAP3515_REV(rev);
                 strcpy(cpu_name, OMAP3515);
         } else {
  diff --git a/arch/arm/plat-omap/include/plat/cpu.h 
  b/arch/arm/plat-omap/include/plat/cpu.h
  index 7514174..80dc8e0 100644
  --- a/arch/arm/plat-omap/include/plat/cpu.h
  +++ b/arch/arm/plat-omap/include/plat/cpu.h
  @@ -434,28 +434,28 @@ int omap_chip_is(struct omap_chip_id oci);
   void omap2_check_revision(void);
 
   /*
  - * Runtime detection