[PATCH V2] OMAP2+: SR Layer Cleanup.

Gulati, Shweta shweta.gulati at ti.com
Tue May 10 00:33:23 EDT 2011


Hi,

On Tue, May 10, 2011 at 5:52 AM, Menon, Nishanth <nm at ti.com> wrote:
> might be a bit late, but seeing that Kevin has'nt picked this up yet,
> a couple of cosmetic comments
> I think it might be great if it could be folded into one of kevin's patches.
> else,
> $subject - OMAP3+ and could you drop the .?
Will correct the Subject line
> On Fri, Apr 8, 2011 at 01:14, Shweta Gulati <shweta.gulati at ti.com> wrote:
>> As a part of Voltage Layer Cleanup Patches,
>> submitted by Kevin Hilman, Voltage domain
>> Information is removed from hwmod,
>> So the patch removes 'vdd_name' info from omap_hwmod
>> and adds that info into dev_attr as SR code uses vdd_name
>> to get voltagedomain sructure info.
> word wrap cleanup a bit, also please indicate the issue you see if the
> patch is not applied.
Would Rephrase the commit log.
> Regards,
> Nishanth Menon
>
>
>>
>> Tested on OMAP3630 SDP and OMAP4430 SDP Board
>>
>> Signed-off-by: Shweta Gulati <shweta.gulati at ti.com>
>
>
>
>> ---
>>  V2:
>>  Rebased on latest 'pm-wip/voltdm_a' branch.
>>
>>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c   |   17 +++++++++++++----
>>  arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |   19 ++++++++++++++++---
>>  arch/arm/mach-omap2/smartreflex.h            |   10 ++++++++++
>>  arch/arm/mach-omap2/sr_device.c              |   11 +++++++----
>>  arch/arm/plat-omap/include/plat/omap_hwmod.h |    1 -
>>  5 files changed, 46 insertions(+), 12 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
>> index 3cd91ac..6a704bd 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
>> @@ -29,6 +29,7 @@
>>
>>  #include "omap_hwmod_common_data.h"
>>
>> +#include "smartreflex.h"
>>  #include "prm-regbits-34xx.h"
>>  #include "cm-regbits-34xx.h"
>>  #include "wd_timer.h"
>> @@ -2904,6 +2905,10 @@ static struct omap_hwmod_class omap36xx_smartreflex_hwmod_class = {
>>  };
>>
>>  /* SR1 */
>> +static struct omap_sr_dev_attr sr1_dev_attr = {
>> +       .voltdm_name   = "mpu_iva",
>> +};
>> +
>>  static struct omap_hwmod_ocp_if *omap3_sr1_slaves[] = {
>>        &omap3_l4_core__sr1,
>>  };
>> @@ -2912,7 +2917,6 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
>>        .name           = "sr1_hwmod",
>>        .class          = &omap34xx_smartreflex_hwmod_class,
>>        .main_clk       = "sr1_fck",
>> -       .vdd_name       = "mpu_iva",
>>        .prcm           = {
>>                .omap2 = {
>>                        .prcm_reg_id = 1,
>> @@ -2924,6 +2928,7 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
>>        },
>>        .slaves         = omap3_sr1_slaves,
>>        .slaves_cnt     = ARRAY_SIZE(omap3_sr1_slaves),
>> +       .dev_attr       = &sr1_dev_attr,
>>        .omap_chip      = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 |
>>                                        CHIP_IS_OMAP3430ES3_0 |
>>                                        CHIP_IS_OMAP3430ES3_1),
>> @@ -2934,7 +2939,6 @@ static struct omap_hwmod omap36xx_sr1_hwmod = {
>>        .name           = "sr1_hwmod",
>>        .class          = &omap36xx_smartreflex_hwmod_class,
>>        .main_clk       = "sr1_fck",
>> -       .vdd_name       = "mpu_iva",
>>        .prcm           = {
>>                .omap2 = {
>>                        .prcm_reg_id = 1,
>> @@ -2946,10 +2950,15 @@ static struct omap_hwmod omap36xx_sr1_hwmod = {
>>        },
>>        .slaves         = omap3_sr1_slaves,
>>        .slaves_cnt     = ARRAY_SIZE(omap3_sr1_slaves),
>> +       .dev_attr       = &sr1_dev_attr,
>>        .omap_chip      = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
>>  };
>>
>>  /* SR2 */
>> +static struct omap_sr_dev_attr sr2_dev_attr = {
>> +       .voltdm_name    = "core",
>> +};
>> +
>>  static struct omap_hwmod_ocp_if *omap3_sr2_slaves[] = {
>>        &omap3_l4_core__sr2,
>>  };
>> @@ -2958,7 +2967,6 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
>>        .name           = "sr2_hwmod",
>>        .class          = &omap34xx_smartreflex_hwmod_class,
>>        .main_clk       = "sr2_fck",
>> -       .vdd_name       = "core",
>>        .prcm           = {
>>                .omap2 = {
>>                        .prcm_reg_id = 1,
>> @@ -2970,6 +2978,7 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
>>        },
>>        .slaves         = omap3_sr2_slaves,
>>        .slaves_cnt     = ARRAY_SIZE(omap3_sr2_slaves),
>> +       .dev_attr       = &sr2_dev_attr,
>>        .omap_chip      = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 |
>>                                        CHIP_IS_OMAP3430ES3_0 |
>>                                        CHIP_IS_OMAP3430ES3_1),
>> @@ -2980,7 +2989,6 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
>>        .name           = "sr2_hwmod",
>>        .class          = &omap36xx_smartreflex_hwmod_class,
>>        .main_clk       = "sr2_fck",
>> -       .vdd_name       = "core",
>>        .prcm           = {
>>                .omap2 = {
>>                        .prcm_reg_id = 1,
>> @@ -2992,6 +3000,7 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
>>        },
>>        .slaves         = omap3_sr2_slaves,
>>        .slaves_cnt     = ARRAY_SIZE(omap3_sr2_slaves),
>> +       .dev_attr       = &sr2_dev_attr,
>>        .omap_chip      = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
>>  };
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
>> index 3e88dd3..1331b39 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
>> @@ -30,6 +30,7 @@
>>
>>  #include "omap_hwmod_common_data.h"
>>
>> +#include "smartreflex.h"
>>  #include "cm1_44xx.h"
>>  #include "cm2_44xx.h"
>>  #include "prm44xx.h"
>> @@ -3775,6 +3776,10 @@ static struct omap_hwmod_class omap44xx_smartreflex_hwmod_class = {
>>  };
>>
>>  /* smartreflex_core */
>> +static struct omap_sr_dev_attr sr_core_dev_attr = {
>> +       .voltdm_name   = "core",
>> +};
>> +
>>  static struct omap_hwmod omap44xx_smartreflex_core_hwmod;
>>  static struct omap_hwmod_irq_info omap44xx_smartreflex_core_irqs[] = {
>>        { .irq = 19 + OMAP44XX_IRQ_GIC_START },
>> @@ -3809,7 +3814,6 @@ static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
>>        .mpu_irqs       = omap44xx_smartreflex_core_irqs,
>>        .mpu_irqs_cnt   = ARRAY_SIZE(omap44xx_smartreflex_core_irqs),
>>        .main_clk       = "smartreflex_core_fck",
>> -       .vdd_name       = "core",
>>        .prcm = {
>>                .omap4 = {
>>                        .clkctrl_reg = OMAP4430_CM_ALWON_SR_CORE_CLKCTRL,
>> @@ -3817,10 +3821,15 @@ static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
>>        },
>>        .slaves         = omap44xx_smartreflex_core_slaves,
>>        .slaves_cnt     = ARRAY_SIZE(omap44xx_smartreflex_core_slaves),
>> +       .dev_attr       = &sr_core_dev_attr,
>>        .omap_chip      = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
>>  };
>>
>>  /* smartreflex_iva */
>> +static struct omap_sr_dev_attr sr_iva_dev_attr = {
>> +       .voltdm_name   = "iva",
>> +};
>> +
>>  static struct omap_hwmod omap44xx_smartreflex_iva_hwmod;
>>  static struct omap_hwmod_irq_info omap44xx_smartreflex_iva_irqs[] = {
>>        { .irq = 102 + OMAP44XX_IRQ_GIC_START },
>> @@ -3855,7 +3864,6 @@ static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
>>        .mpu_irqs       = omap44xx_smartreflex_iva_irqs,
>>        .mpu_irqs_cnt   = ARRAY_SIZE(omap44xx_smartreflex_iva_irqs),
>>        .main_clk       = "smartreflex_iva_fck",
>> -       .vdd_name       = "iva",
>>        .prcm = {
>>                .omap4 = {
>>                        .clkctrl_reg = OMAP4430_CM_ALWON_SR_IVA_CLKCTRL,
>> @@ -3863,10 +3871,15 @@ static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
>>        },
>>        .slaves         = omap44xx_smartreflex_iva_slaves,
>>        .slaves_cnt     = ARRAY_SIZE(omap44xx_smartreflex_iva_slaves),
>> +       .dev_attr       = &sr_iva_dev_attr,
>>        .omap_chip      = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
>>  };
>>
>>  /* smartreflex_mpu */
>> +static struct omap_sr_dev_attr sr_mpu_dev_attr = {
>> +       .voltdm_name   = "mpu",
>> +};
>> +
>>  static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod;
>>  static struct omap_hwmod_irq_info omap44xx_smartreflex_mpu_irqs[] = {
>>        { .irq = 18 + OMAP44XX_IRQ_GIC_START },
>> @@ -3901,7 +3914,6 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
>>        .mpu_irqs       = omap44xx_smartreflex_mpu_irqs,
>>        .mpu_irqs_cnt   = ARRAY_SIZE(omap44xx_smartreflex_mpu_irqs),
>>        .main_clk       = "smartreflex_mpu_fck",
>> -       .vdd_name       = "mpu",
>>        .prcm = {
>>                .omap4 = {
>>                        .clkctrl_reg = OMAP4430_CM_ALWON_SR_MPU_CLKCTRL,
>> @@ -3909,6 +3921,7 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
>>        },
>>        .slaves         = omap44xx_smartreflex_mpu_slaves,
>>        .slaves_cnt     = ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves),
>> +       .dev_attr       = &sr_mpu_dev_attr,
>>        .omap_chip      = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
>>  };
>>
>> diff --git a/arch/arm/mach-omap2/smartreflex.h b/arch/arm/mach-omap2/smartreflex.h
>> index 5f35b9e..9a7f770 100644
>> --- a/arch/arm/mach-omap2/smartreflex.h
>> +++ b/arch/arm/mach-omap2/smartreflex.h
>> @@ -197,6 +197,16 @@ struct omap_sr_nvalue_table {
>>  };
>>
>>  /**
>> + * struct omap_sr_dev_attr - Smartreflex Device attribute.
>> + *
>> + * @voltdm_name:       Name of voltdomain of SR instance
>> + */
>> +
>> +struct omap_sr_dev_attr {
>> +       const char      *voltdm_name;
>> +};
>> +
>> +/**
>>  * struct omap_sr_data - Smartreflex platform data.
>>  *
>>  * @ip_type:           Smartreflex IP type.
>> diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c
>> index 2782d3f..65b2aae 100644
>> --- a/arch/arm/mach-omap2/sr_device.c
>> +++ b/arch/arm/mach-omap2/sr_device.c
>> @@ -82,6 +82,7 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
>>        struct omap_sr_data *sr_data;
>>        struct omap_device *od;
>>        struct omap_volt_data *volt_data;
>> +       struct omap_sr_dev_attr *sr_dev_attr;
>>        char *name = "smartreflex";
>>        static int i;
>>
>> @@ -92,9 +93,11 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
>>                return -ENOMEM;
>>        }
>>
>> -       if (!oh->vdd_name) {
>> +       sr_dev_attr = (struct omap_sr_dev_attr *)oh->dev_attr;
>> +       if (!sr_dev_attr->voltdm_name) {
>>                pr_err("%s: No voltage domain specified for %s."
>> -                       "Cannot initialize\n", __func__, oh->name);
>> +                               "Cannot initialize\n", __func__,
>> +                                       sr_dev_attr->voltdm_name);
>>                goto exit;
>>        }
>>
>> @@ -102,10 +105,10 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
>>        sr_data->senn_mod = 0x1;
>>        sr_data->senp_mod = 0x1;
>>
>> -       sr_data->voltdm = voltdm_lookup(oh->vdd_name);
>> +       sr_data->voltdm = voltdm_lookup(sr_dev_attr->voltdm_name);
>>        if (IS_ERR(sr_data->voltdm)) {
>>                pr_err("%s: Unable to get voltage domain pointer for VDD %s\n",
>> -                       __func__, oh->vdd_name);
>> +                       __func__, sr_dev_attr->voltdm_name);
>>                goto exit;
>>        }
>>
>> diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> index a5fa7c1..39d809a 100644
>> --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> @@ -519,7 +519,6 @@ struct omap_hwmod {
>>        const char                      *main_clk;
>>        struct clk                      *_clk;
>>        struct omap_hwmod_opt_clk       *opt_clks;
>> -       char                            *vdd_name;
>>        struct omap_hwmod_ocp_if        **masters; /* connect to *_IA */
>>        struct omap_hwmod_ocp_if        **slaves;  /* connect to *_TA */
>>        void                            *dev_attr;
>> --
>> 1.7.0.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>> the body of a message to majordomo at vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>



-- 
Thanks,
Regards,
Shweta



More information about the linux-arm-kernel mailing list