[PATCH v2] OMAP3: powerdomains: Match silicon revision to select the correct "core_pwrdm" definition

Koyamangalath, Abhilash abhilash.kv at ti.com
Fri Aug 12 03:41:17 EDT 2011


Hi 

On Friday, July 15, 2011 5:14 PM +0530, Koyamangalath, Abhilash wrote:
________________________________________
> From: Koyamangalath, Abhilash
> Sent: Friday, July 15, 2011 5:14 PM
> To: linux-omap at vger.kernel.org
> Cc: tony at atomide.com; linux at arm.linux.org.uk; linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org; Koyamangalath, Abhilash
> Subject: [PATCH v2] OMAP3: powerdomains: Match silicon revision to select the correct "core_pwrdm" definition
> 
> powerdomains3xxx_data.c defines core_3xxx_pre_es3_1_pwrdm and
> core_3xxx_es3_1_pwrdm to take care of differences in "core_pwrdm"
> implementations across revisions.
> However,_pwrdm_lookup("core_pwrdm") always matches the first definition for
> 3630 ES 1.1 and 1.2 which is incorrect. This patch fixes this issue by adding
> code to match silicon revision as well while looking up "core_pwrdm" in
> _pwrdm_lookup().
> core_3xxx_es3_1_pwrdm is different from core_3xxx_pre_es3_1_pwrdm in
> that the former adds hardware save-restore support for USBTLL for 3430
> ES3.1 and for 3630 ES1.1 and ES1.2.
> 
> Signed-off-by: Abhilash K V <abhilash.kv at ti.com>
> ---
> v2:
> * now tested on 3630 (ES1.2 and ES1.0) and 3530 (ES3.0 and ES3.1)
> * fixed checkpatch errors/warnings.
> 
>  arch/arm/mach-omap2/powerdomain.c |   19 +++++++++++++++++++
>  1 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
> index 9af0847..82a2e30 100644
> --- a/arch/arm/mach-omap2/powerdomain.c
> +++ b/arch/arm/mach-omap2/powerdomain.c
> @@ -32,6 +32,7 @@
>  #include "powerdomain.h"
>  #include "clockdomain.h"
>  #include <plat/prcm.h>
> +#include <plat/cpu.h>
> 
>  #include "pm.h"
> 
> @@ -58,6 +59,24 @@ static struct powerdomain *_pwrdm_lookup(const char *name)
> 
>         list_for_each_entry(temp_pwrdm, &pwrdm_list, node) {
>                 if (!strcmp(name, temp_pwrdm->name)) {
> +                       if (!strcmp(name, "core_pwrdm") && cpu_is_omap3630()) {
> +                               if (omap_rev() > OMAP3630_REV_ES1_0) {
> +                                       /*
> +                                        * match omap_chip info for OMAP3630
> +                                        * Rev ES1.1, ES1.2 or higher
> +                                        */
> +                                       if (!(temp_pwrdm->omap_chip.oc
> +                                               & CHIP_GE_OMAP3630ES1_1))
> +                                               continue;
> +                               } else {
> +                                       /* match omap_chip info for OMAP3630
> +                                        * Rev ES1.0
> +                                        */
> +                                       if (!(temp_pwrdm->omap_chip.oc
> +                                                & CHIP_IS_OMAP3630ES1))
> +                                               continue;
> +                               }
> +                       }
>                         pwrdm = temp_pwrdm;
>                         break;
>                 }
> --
> 1.7.1
Any comments ?

-Abhilash 


More information about the linux-arm-kernel mailing list