diff mbox

[1/2] Support OMAP3 VC adaptation with different Power IC

Message ID B00E06E2766C2744B022DE9BAF3C59D542E07F@zmy16exm69.ds.mot.com (mailing list archive)
State Rejected
Delegated to: Kevin Hilman
Headers show

Commit Message

Wang Sawsd-A24013 June 24, 2009, 12:15 a.m. UTC
From c1aba8ba7af3ddd16346d95795bda71e65baa4d0 Mon Sep 17 00:00:00 2001
From: Chunqiu Wang <cqwang@motorola.com>
Date: Wed, 24 Jun 2009 06:48:52 +0800
Subject: [PATCH] Support OMAP3 VC adaptation with different Power IC

Current OMAP SmartReflex driver only supports TI Triton
Power IC, add a callback to make it possible to use

Comments

Kevin Hilman June 24, 2009, 12:19 a.m. UTC | #1
"Wang Sawsd-A24013" <cqwang@motorola.com> writes:

> From c1aba8ba7af3ddd16346d95795bda71e65baa4d0 Mon Sep 17 00:00:00 2001
> From: Chunqiu Wang <cqwang@motorola.com>
> Date: Wed, 24 Jun 2009 06:48:52 +0800
> Subject: [PATCH] Support OMAP3 VC adaptation with different Power IC
>
> Current OMAP SmartReflex driver only supports TI Triton
> Power IC, add a callback to make it possible to use
> different PowerIC and use different settings to
> configure OMAP3 Voltage Controller for DVFS
>
> Board file can setup a new function to have different settings
> on SR to configure their Power IC for voltage scaling
>
> Signed-off-by: Chunqiu Wang <cqwang@motorola.com>

Your patch seems wrapped again:

checkpatch reports:

ERROR: patch seems to be corrupt (line wrapped?)
#38: FILE: arch/arm/mach-omap2/smartreflex.c:57:
u32 value)

ERROR: trailing whitespace
#95: FILE: arch/arm/mach-omap2/smartreflex.h:252:
+^I^I^I^I^I^Iu8 t_vsel, u8 c_vsel); $

total: 2 errors, 0 warnings, 71 lines checked


> ---
>  arch/arm/mach-omap2/smartreflex.c |   13 +++++++++++++
>  arch/arm/mach-omap2/smartreflex.h |    4 ++++
>  arch/arm/plat-omap/Kconfig        |    2 +-
>  3 files changed, 18 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/smartreflex.c
> b/arch/arm/mach-omap2/smartreflex.c
> index 9d462e3..bacf602 100644
> --- a/arch/arm/mach-omap2/smartreflex.c
> +++ b/arch/arm/mach-omap2/smartreflex.c
> @@ -52,6 +52,8 @@ struct omap_sr {
>  
>  #define SR_REGADDR(offs)	(sr->srbase_addr + offset)
>  
> +static omap3_voltagescale_vcbypass_t omap3_volscale_vcbypass_fun;
> +
>  static inline void sr_write_reg(struct omap_sr *sr, unsigned offset,
> u32 value)
>  {
>  	__raw_writel(value, SR_REGADDR(offset));
> @@ -767,6 +769,11 @@ void disable_smartreflex(int srid)
>  	}
>  }
>  
> +void omap3_voltagescale_vcbypass_setup(omap3_voltagescale_vcbypass_t
> fun)
> +{
> +	omap3_volscale_vcbypass_fun = fun;
> +}
> +
>  /* Voltage Scaling using SR VCBYPASS */
>  int sr_voltagescale_vcbypass(u32 target_opp, u32 current_opp,
>  					u8 target_vsel, u8 current_vsel)
> @@ -779,6 +786,10 @@ int sr_voltagescale_vcbypass(u32 target_opp, u32
> current_opp,
>  	u32 t2_smps_steps = 0;
>  	u32 t2_smps_delay = 0;
>  
> +	if (omap3_volscale_vcbypass_fun)
> +		return omap3_volscale_vcbypass_fun(target_opp,
> current_opp,
> +						target_vsel,
> current_vsel);
> +
>  	vdd = get_vdd(target_opp);
>  	target_opp_no = get_opp_no(target_opp);
>  	current_opp_no = get_opp_no(current_opp);
> @@ -940,6 +951,7 @@ static int __init omap3_sr_init(void)
>  		return -ENODEV;
>          }
>  
> +#ifdef CONFIG_TWL4030_CORE
>  	/* Enable SR on T2 */
>  	ret = twl4030_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &RdReg,
>  					R_DCDC_GLOBAL_CFG);
> @@ -947,6 +959,7 @@ static int __init omap3_sr_init(void)
>  	RdReg |= DCDC_GLOBAL_CFG_ENABLE_SRFLX;
>  	ret |= twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, RdReg,
>  					R_DCDC_GLOBAL_CFG);
> +#endif
>  
>  	if (cpu_is_omap34xx()) {
>  		sr1.clk = clk_get(NULL, "sr1_fck");
> diff --git a/arch/arm/mach-omap2/smartreflex.h
> b/arch/arm/mach-omap2/smartreflex.h
> index 2a0e823..c4aca9d 100644
> --- a/arch/arm/mach-omap2/smartreflex.h
> +++ b/arch/arm/mach-omap2/smartreflex.h
> @@ -248,9 +248,13 @@ void disable_smartreflex(int srid);
>  int sr_voltagescale_vcbypass(u32 t_opp, u32 c_opp, u8 t_vsel, u8
> c_vsel);
>  void sr_start_vddautocomap(int srid, u32 target_opp_no);
>  int sr_stop_vddautocomap(int srid);
> +typedef int (*omap3_voltagescale_vcbypass_t)(u32 t_opp, u32 c_opp,
> +						u8 t_vsel, u8 c_vsel); 
> +void omap3_voltagescale_vcbypass_setup(omap3_voltagescale_vcbypass_t
> fun);
>  #else
>  static inline void enable_smartreflex(int srid) {}
>  static inline void disable_smartreflex(int srid) {}
> +#define omap3_voltagescale_vcbypass_setup(fun) do {} while (0);
>  #endif
>  
>  #endif
> diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
> index c8ba1e2..8d2c607 100644
> --- a/arch/arm/plat-omap/Kconfig
> +++ b/arch/arm/plat-omap/Kconfig
> @@ -68,7 +68,7 @@ config OMAP_DEBUG_CLOCKDOMAIN
>  
>  config OMAP_SMARTREFLEX
>  	bool "SmartReflex support"
> -	depends on ARCH_OMAP34XX && TWL4030_CORE && PM
> +	depends on ARCH_OMAP34XX && PM
>  	help
>  	  Say Y if you want to enable SmartReflex.
>  
> -- 
> 1.5.4.3
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wang Sawsd-A24013 June 24, 2009, 4:10 p.m. UTC | #2
> -----Original Message-----
> From: Kevin Hilman [mailto:khilman@deeprootsystems.com] 
> Sent: 2009年6月24日 8:19
> To: Wang Sawsd-A24013
> Cc: linux-omap@vger.kernel.org
> Subject: Re: [PATCH 1/2] Support OMAP3 VC adaptation with 
> different Power IC
> 
> "Wang Sawsd-A24013" <cqwang@motorola.com> writes:
> 
> > From c1aba8ba7af3ddd16346d95795bda71e65baa4d0 Mon Sep 17 
> 00:00:00 2001
> > From: Chunqiu Wang <cqwang@motorola.com>
> > Date: Wed, 24 Jun 2009 06:48:52 +0800
> > Subject: [PATCH] Support OMAP3 VC adaptation with different Power IC
> >
> > Current OMAP SmartReflex driver only supports TI Triton
> > Power IC, add a callback to make it possible to use
> > different PowerIC and use different settings to
> > configure OMAP3 Voltage Controller for DVFS
> >
> > Board file can setup a new function to have different settings
> > on SR to configure their Power IC for voltage scaling
> >
> > Signed-off-by: Chunqiu Wang <cqwang@motorola.com>
> 
> Your patch seems wrapped again:
> 
> checkpatch reports:
> 
> ERROR: patch seems to be corrupt (line wrapped?)
> #38: FILE: arch/arm/mach-omap2/smartreflex.c:57:
> u32 value)
> 
> ERROR: trailing whitespace
> #95: FILE: arch/arm/mach-omap2/smartreflex.h:252:
> +^I^I^I^I^I^Iu8 t_vsel, u8 c_vsel); $
> 
> total: 2 errors, 0 warnings, 71 lines checked
> 
Sorry about that, this time I attached these two patch files.

Thanks,
Chunqiu
Mike Chan June 25, 2009, 1:25 a.m. UTC | #3
Wang Sawsd-A24013 wrote:
> From c1aba8ba7af3ddd16346d95795bda71e65baa4d0 Mon Sep 17 00:00:00 2001
> From: Chunqiu Wang <cqwang@motorola.com>
> Date: Wed, 24 Jun 2009 06:48:52 +0800
> Subject: [PATCH] Support OMAP3 VC adaptation with different Power IC
>
> Current OMAP SmartReflex driver only supports TI Triton
> Power IC, add a callback to make it possible to use
> different PowerIC and use different settings to
> configure OMAP3 Voltage Controller for DVFS
>
> Board file can setup a new function to have different settings
> on SR to configure their Power IC for voltage scaling
>
> Signed-off-by: Chunqiu Wang <cqwang@motorola.com>
> ---
>  arch/arm/mach-omap2/smartreflex.c |   13 +++++++++++++
>  arch/arm/mach-omap2/smartreflex.h |    4 ++++
>  arch/arm/plat-omap/Kconfig        |    2 +-
>  3 files changed, 18 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/smartreflex.c
> b/arch/arm/mach-omap2/smartreflex.c
> index 9d462e3..bacf602 100644
> --- a/arch/arm/mach-omap2/smartreflex.c
> +++ b/arch/arm/mach-omap2/smartreflex.c
> @@ -52,6 +52,8 @@ struct omap_sr {
>  
>  #define SR_REGADDR(offs)	(sr->srbase_addr + offset)
>  
> +static omap3_voltagescale_vcbypass_t omap3_volscale_vcbypass_fun;
>   
Perhaps use
static int (*omap3_volscale_vcbypass_fun) (u32, u32, u8, u8);

This gets rid of the compiler warning on incompatible pointer types when 
you register a function via omap3_voltagescale_vcbypass_setup().

-- Mike
> +
>  static inline void sr_write_reg(struct omap_sr *sr, unsigned offset,
> u32 value)
>  {
>  	__raw_writel(value, SR_REGADDR(offset));
> @@ -767,6 +769,11 @@ void disable_smartreflex(int srid)
>  	}
>  }
>  
> +void omap3_voltagescale_vcbypass_setup(omap3_voltagescale_vcbypass_t
> fun)
> +{
> +	omap3_volscale_vcbypass_fun = fun;
> +}
> +
>  /* Voltage Scaling using SR VCBYPASS */
>  int sr_voltagescale_vcbypass(u32 target_opp, u32 current_opp,
>  					u8 target_vsel, u8 current_vsel)
> @@ -779,6 +786,10 @@ int sr_voltagescale_vcbypass(u32 target_opp, u32
> current_opp,
>  	u32 t2_smps_steps = 0;
>  	u32 t2_smps_delay = 0;
>  
> +	if (omap3_volscale_vcbypass_fun)
> +		return omap3_volscale_vcbypass_fun(target_opp,
> current_opp,
> +						target_vsel,
> current_vsel);
> +
>  	vdd = get_vdd(target_opp);
>  	target_opp_no = get_opp_no(target_opp);
>  	current_opp_no = get_opp_no(current_opp);
> @@ -940,6 +951,7 @@ static int __init omap3_sr_init(void)
>  		return -ENODEV;
>          }
>  
> +#ifdef CONFIG_TWL4030_CORE
>  	/* Enable SR on T2 */
>  	ret = twl4030_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &RdReg,
>  					R_DCDC_GLOBAL_CFG);
> @@ -947,6 +959,7 @@ static int __init omap3_sr_init(void)
>  	RdReg |= DCDC_GLOBAL_CFG_ENABLE_SRFLX;
>  	ret |= twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, RdReg,
>  					R_DCDC_GLOBAL_CFG);
> +#endif
>  
>  	if (cpu_is_omap34xx()) {
>  		sr1.clk = clk_get(NULL, "sr1_fck");
> diff --git a/arch/arm/mach-omap2/smartreflex.h
> b/arch/arm/mach-omap2/smartreflex.h
> index 2a0e823..c4aca9d 100644
> --- a/arch/arm/mach-omap2/smartreflex.h
> +++ b/arch/arm/mach-omap2/smartreflex.h
> @@ -248,9 +248,13 @@ void disable_smartreflex(int srid);
>  int sr_voltagescale_vcbypass(u32 t_opp, u32 c_opp, u8 t_vsel, u8
> c_vsel);
>  void sr_start_vddautocomap(int srid, u32 target_opp_no);
>  int sr_stop_vddautocomap(int srid);
> +typedef int (*omap3_voltagescale_vcbypass_t)(u32 t_opp, u32 c_opp,
> +						u8 t_vsel, u8 c_vsel); 
> +void omap3_voltagescale_vcbypass_setup(omap3_voltagescale_vcbypass_t
> fun);
>  #else
>  static inline void enable_smartreflex(int srid) {}
>  static inline void disable_smartreflex(int srid) {}
> +#define omap3_voltagescale_vcbypass_setup(fun) do {} while (0);
>  #endif
>  
>  #endif
> diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
> index c8ba1e2..8d2c607 100644
> --- a/arch/arm/plat-omap/Kconfig
> +++ b/arch/arm/plat-omap/Kconfig
> @@ -68,7 +68,7 @@ config OMAP_DEBUG_CLOCKDOMAIN
>  
>  config OMAP_SMARTREFLEX
>  	bool "SmartReflex support"
> -	depends on ARCH_OMAP34XX && TWL4030_CORE && PM
> +	depends on ARCH_OMAP34XX && PM
>  	help
>  	  Say Y if you want to enable SmartReflex.
>  
>   

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wang Sawsd-A24013 June 25, 2009, 4 p.m. UTC | #4
> -----Original Message-----
> From: Mike Chan [mailto:mike@android.com] 
> Sent: 2009年6月25日 9:25
> To: Wang Sawsd-A24013
> Cc: linux-omap@vger.kernel.org
> Subject: Re: [PATCH 1/2] Support OMAP3 VC adaptation with 
> different Power IC
> 
> Wang Sawsd-A24013 wrote:
> > From c1aba8ba7af3ddd16346d95795bda71e65baa4d0 Mon Sep 17 
> 00:00:00 2001
> > From: Chunqiu Wang <cqwang@motorola.com>
> > Date: Wed, 24 Jun 2009 06:48:52 +0800
> > Subject: [PATCH] Support OMAP3 VC adaptation with different Power IC
> >
> > Current OMAP SmartReflex driver only supports TI Triton
> > Power IC, add a callback to make it possible to use
> > different PowerIC and use different settings to
> > configure OMAP3 Voltage Controller for DVFS
> >
> > Board file can setup a new function to have different settings
> > on SR to configure their Power IC for voltage scaling
> >
> > Signed-off-by: Chunqiu Wang <cqwang@motorola.com>
> > ---
> >  arch/arm/mach-omap2/smartreflex.c |   13 +++++++++++++
> >  arch/arm/mach-omap2/smartreflex.h |    4 ++++
> >  arch/arm/plat-omap/Kconfig        |    2 +-
> >  3 files changed, 18 insertions(+), 1 deletions(-)
> >
> > diff --git a/arch/arm/mach-omap2/smartreflex.c
> > b/arch/arm/mach-omap2/smartreflex.c
> > index 9d462e3..bacf602 100644
> > --- a/arch/arm/mach-omap2/smartreflex.c
> > +++ b/arch/arm/mach-omap2/smartreflex.c
> > @@ -52,6 +52,8 @@ struct omap_sr {
> >  
> >  #define SR_REGADDR(offs)	(sr->srbase_addr + offset)
> >  
> > +static omap3_voltagescale_vcbypass_t omap3_volscale_vcbypass_fun;
> >   
> Perhaps use
> static int (*omap3_volscale_vcbypass_fun) (u32, u32, u8, u8);
> 
> This gets rid of the compiler warning on incompatible pointer 
> types when 
> you register a function via omap3_voltagescale_vcbypass_setup().
> 
> -- Mike
Thanks Mike, but we do not see the warnning with the original
Code, note this patch is slightly different with the one we sent
To you based on K29, this new patch have four parameters
Sinc some change has been made in the
sr_voltagescale_vcbypass to add two more parameters.

Is your warnning caused by this?

Thanks,
Chunqiu
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kevin Hilman June 25, 2009, 5:38 p.m. UTC | #5
"Wang Sawsd-A24013" <cqwang@motorola.com> writes:

>> -----Original Message-----
>> From: Kevin Hilman [mailto:khilman@deeprootsystems.com] 
>> Sent: 2009年6月24日 8:19
>> To: Wang Sawsd-A24013
>> Cc: linux-omap@vger.kernel.org
>> Subject: Re: [PATCH 1/2] Support OMAP3 VC adaptation with 
>> different Power IC
>> 
>> "Wang Sawsd-A24013" <cqwang@motorola.com> writes:
>> 
>> > From c1aba8ba7af3ddd16346d95795bda71e65baa4d0 Mon Sep 17 
>> 00:00:00 2001
>> > From: Chunqiu Wang <cqwang@motorola.com>
>> > Date: Wed, 24 Jun 2009 06:48:52 +0800
>> > Subject: [PATCH] Support OMAP3 VC adaptation with different Power IC
>> >
>> > Current OMAP SmartReflex driver only supports TI Triton
>> > Power IC, add a callback to make it possible to use
>> > different PowerIC and use different settings to
>> > configure OMAP3 Voltage Controller for DVFS
>> >
>> > Board file can setup a new function to have different settings
>> > on SR to configure their Power IC for voltage scaling
>> >
>> > Signed-off-by: Chunqiu Wang <cqwang@motorola.com>
>> 
>> Your patch seems wrapped again:
>> 
>> checkpatch reports:
>> 
>> ERROR: patch seems to be corrupt (line wrapped?)
>> #38: FILE: arch/arm/mach-omap2/smartreflex.c:57:
>> u32 value)
>> 
>> ERROR: trailing whitespace
>> #95: FILE: arch/arm/mach-omap2/smartreflex.h:252:
>> +^I^I^I^I^I^Iu8 t_vsel, u8 c_vsel); $
>> 
>> total: 2 errors, 0 warnings, 71 lines checked
>> 
> Sorry about that, this time I attached these two patch files.
>

Can you please fix your mailer setup so you can resend patches inline
and get a broader review.

I suggest bypassing any mailer such as outlook and configuring
git-send-email to send them directly to an SMTP server.  If your local
SMTP is really that broken to be wrapping text, I suggest you
send via a gmail account.  This link describes how to set this
up for gmail, but also works for a local SMTP server.

  http://git.or.cz/gitwiki/GitTips#Mail

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mike Chan June 25, 2009, 7:25 p.m. UTC | #6
Wang Sawsd-A24013 wrote:
>> -----Original Message-----
>> From: Mike Chan [mailto:mike@android.com] 
>> Sent: 2009年6月25日 9:25
>> To: Wang Sawsd-A24013
>> Cc: linux-omap@vger.kernel.org
>> Subject: Re: [PATCH 1/2] Support OMAP3 VC adaptation with 
>> different Power IC
>>
>> Wang Sawsd-A24013 wrote:
>>     
>>> From c1aba8ba7af3ddd16346d95795bda71e65baa4d0 Mon Sep 17 
>>>       
>> 00:00:00 2001
>>     
>>> From: Chunqiu Wang <cqwang@motorola.com>
>>> Date: Wed, 24 Jun 2009 06:48:52 +0800
>>> Subject: [PATCH] Support OMAP3 VC adaptation with different Power IC
>>>
>>> Current OMAP SmartReflex driver only supports TI Triton
>>> Power IC, add a callback to make it possible to use
>>> different PowerIC and use different settings to
>>> configure OMAP3 Voltage Controller for DVFS
>>>
>>> Board file can setup a new function to have different settings
>>> on SR to configure their Power IC for voltage scaling
>>>
>>> Signed-off-by: Chunqiu Wang <cqwang@motorola.com>
>>> ---
>>>  arch/arm/mach-omap2/smartreflex.c |   13 +++++++++++++
>>>  arch/arm/mach-omap2/smartreflex.h |    4 ++++
>>>  arch/arm/plat-omap/Kconfig        |    2 +-
>>>  3 files changed, 18 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-omap2/smartreflex.c
>>> b/arch/arm/mach-omap2/smartreflex.c
>>> index 9d462e3..bacf602 100644
>>> --- a/arch/arm/mach-omap2/smartreflex.c
>>> +++ b/arch/arm/mach-omap2/smartreflex.c
>>> @@ -52,6 +52,8 @@ struct omap_sr {
>>>  
>>>  #define SR_REGADDR(offs)	(sr->srbase_addr + offset)
>>>  
>>> +static omap3_voltagescale_vcbypass_t omap3_volscale_vcbypass_fun;
>>>   
>>>       
>> Perhaps use
>> static int (*omap3_volscale_vcbypass_fun) (u32, u32, u8, u8);
>>
>> This gets rid of the compiler warning on incompatible pointer 
>> types when 
>> you register a function via omap3_voltagescale_vcbypass_setup().
>>
>> -- Mike
>>     
> Thanks Mike, but we do not see the warnning with the original
> Code, note this patch is slightly different with the one we sent
> To you based on K29, this new patch have four parameters
> Sinc some change has been made in the
> sr_voltagescale_vcbypass to add two more parameters.
>
> Is your warnning caused by this?
>
>   

This patch stand-alone doesn't give me any warnings. Its only when you
hook into this from your board file. Might be the compiler I'm using.
I used this patch + modified version of the patches you sent me before
to get the two working. (Yes, 4 params).

-- MIke
> Thanks,
> Chunqiu
>   

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wang Sawsd-A24013 June 25, 2009, 8:10 p.m. UTC | #7
> >
> 
> Can you please fix your mailer setup so you can resend patches inline
> and get a broader review.
> 
> I suggest bypassing any mailer such as outlook and configuring
> git-send-email to send them directly to an SMTP server.  If your local
> SMTP is really that broken to be wrapping text, I suggest you
> send via a gmail account.  This link describes how to set this
> up for gmail, but also works for a local SMTP server.
> 
>   http://git.or.cz/gitwiki/GitTips#Mail
> 
> Kevin
> 

Thanks Kevin, sure I will resend them.

Thanks,
Chunqiu
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wang Sawsd-A24013 June 25, 2009, 8:12 p.m. UTC | #8
> >>> diff --git a/arch/arm/mach-omap2/smartreflex.c
> >>> b/arch/arm/mach-omap2/smartreflex.c
> >>> index 9d462e3..bacf602 100644
> >>> --- a/arch/arm/mach-omap2/smartreflex.c
> >>> +++ b/arch/arm/mach-omap2/smartreflex.c
> >>> @@ -52,6 +52,8 @@ struct omap_sr {
> >>>  
> >>>  #define SR_REGADDR(offs)	(sr->srbase_addr + offset)
> >>>  
> >>> +static omap3_voltagescale_vcbypass_t omap3_volscale_vcbypass_fun;
> >>>   
> >>>       
> >> Perhaps use
> >> static int (*omap3_volscale_vcbypass_fun) (u32, u32, u8, u8);
> >>
> >> This gets rid of the compiler warning on incompatible pointer 
> >> types when 
> >> you register a function via omap3_voltagescale_vcbypass_setup().
> >>
> >> -- Mike
> >>     
> > Thanks Mike, but we do not see the warnning with the original
> > Code, note this patch is slightly different with the one we sent
> > To you based on K29, this new patch have four parameters
> > Sinc some change has been made in the
> > sr_voltagescale_vcbypass to add two more parameters.
> >
> > Is your warnning caused by this?
> >
> >   
> 
> This patch stand-alone doesn't give me any warnings. Its only when you
> hook into this from your board file. Might be the compiler I'm using.
> I used this patch + modified version of the patches you sent me before
> to get the two working. (Yes, 4 params).
I just verified the change on both current linux-omap pm branch and
The branch we are using, neither of them reports any warnning.

Just reminder, the patch I sent to you are different in all these files,
Since we should use 2 params in our kernel, the patch I sent to
This list has 4 params. Please check whether the warnning
Is caused by the mismatch in the function declaration and
The function definition in the board file.

It should not cause the warning even you are using different
Compiler.

> 
> -- MIke
> > Thanks,
> > Chunqiu
> >   
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mike Chan June 25, 2009, 9:18 p.m. UTC | #9
On Thu, Jun 25, 2009 at 1:12 PM, Wang Sawsd-A24013<cqwang@motorola.com> wrote:
>> >>> diff --git a/arch/arm/mach-omap2/smartreflex.c
>> >>> b/arch/arm/mach-omap2/smartreflex.c
>> >>> index 9d462e3..bacf602 100644
>> >>> --- a/arch/arm/mach-omap2/smartreflex.c
>> >>> +++ b/arch/arm/mach-omap2/smartreflex.c
>> >>> @@ -52,6 +52,8 @@ struct omap_sr {
>> >>>
>> >>>  #define SR_REGADDR(offs) (sr->srbase_addr + offset)
>> >>>
>> >>> +static omap3_voltagescale_vcbypass_t omap3_volscale_vcbypass_fun;
>> >>>
>> >>>
>> >> Perhaps use
>> >> static int (*omap3_volscale_vcbypass_fun) (u32, u32, u8, u8);
>> >>
>> >> This gets rid of the compiler warning on incompatible pointer
>> >> types when
>> >> you register a function via omap3_voltagescale_vcbypass_setup().
>> >>
>> >> -- Mike
>> >>
>> > Thanks Mike, but we do not see the warnning with the original
>> > Code, note this patch is slightly different with the one we sent
>> > To you based on K29, this new patch have four parameters
>> > Sinc some change has been made in the
>> > sr_voltagescale_vcbypass to add two more parameters.
>> >
>> > Is your warnning caused by this?
>> >
>> >
>>
>> This patch stand-alone doesn't give me any warnings. Its only when you
>> hook into this from your board file. Might be the compiler I'm using.
>> I used this patch + modified version of the patches you sent me before
>> to get the two working. (Yes, 4 params).
> I just verified the change on both current linux-omap pm branch and
> The branch we are using, neither of them reports any warnning.
>
> Just reminder, the patch I sent to you are different in all these files,
> Since we should use 2 params in our kernel, the patch I sent to
> This list has 4 params. Please check whether the warnning
> Is caused by the mismatch in the function declaration and
> The function definition in the board file.
>
> It should not cause the warning even you are using different
> Compiler.
>

Ah you're right, I must have done something wrong on my side. It was
probably the 2 vs 4 params.

-- Mike

>>
>> -- MIke
>> > Thanks,
>> > Chunqiu
>> >
>>
>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

different PowerIC and use different settings to
configure OMAP3 Voltage Controller for DVFS

Board file can setup a new function to have different settings
on SR to configure their Power IC for voltage scaling

Signed-off-by: Chunqiu Wang <cqwang@motorola.com>
---
 arch/arm/mach-omap2/smartreflex.c |   13 +++++++++++++
 arch/arm/mach-omap2/smartreflex.h |    4 ++++
 arch/arm/plat-omap/Kconfig        |    2 +-
 3 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/smartreflex.c
b/arch/arm/mach-omap2/smartreflex.c
index 9d462e3..bacf602 100644
--- a/arch/arm/mach-omap2/smartreflex.c
+++ b/arch/arm/mach-omap2/smartreflex.c
@@ -52,6 +52,8 @@  struct omap_sr {
 
 #define SR_REGADDR(offs)	(sr->srbase_addr + offset)
 
+static omap3_voltagescale_vcbypass_t omap3_volscale_vcbypass_fun;
+
 static inline void sr_write_reg(struct omap_sr *sr, unsigned offset,
u32 value)
 {
 	__raw_writel(value, SR_REGADDR(offset));
@@ -767,6 +769,11 @@  void disable_smartreflex(int srid)
 	}
 }
 
+void omap3_voltagescale_vcbypass_setup(omap3_voltagescale_vcbypass_t
fun)
+{
+	omap3_volscale_vcbypass_fun = fun;
+}
+
 /* Voltage Scaling using SR VCBYPASS */
 int sr_voltagescale_vcbypass(u32 target_opp, u32 current_opp,
 					u8 target_vsel, u8 current_vsel)
@@ -779,6 +786,10 @@  int sr_voltagescale_vcbypass(u32 target_opp, u32
current_opp,
 	u32 t2_smps_steps = 0;
 	u32 t2_smps_delay = 0;
 
+	if (omap3_volscale_vcbypass_fun)
+		return omap3_volscale_vcbypass_fun(target_opp,
current_opp,
+						target_vsel,
current_vsel);
+
 	vdd = get_vdd(target_opp);
 	target_opp_no = get_opp_no(target_opp);
 	current_opp_no = get_opp_no(current_opp);
@@ -940,6 +951,7 @@  static int __init omap3_sr_init(void)
 		return -ENODEV;
         }
 
+#ifdef CONFIG_TWL4030_CORE
 	/* Enable SR on T2 */
 	ret = twl4030_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &RdReg,
 					R_DCDC_GLOBAL_CFG);
@@ -947,6 +959,7 @@  static int __init omap3_sr_init(void)
 	RdReg |= DCDC_GLOBAL_CFG_ENABLE_SRFLX;
 	ret |= twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, RdReg,
 					R_DCDC_GLOBAL_CFG);
+#endif
 
 	if (cpu_is_omap34xx()) {
 		sr1.clk = clk_get(NULL, "sr1_fck");
diff --git a/arch/arm/mach-omap2/smartreflex.h
b/arch/arm/mach-omap2/smartreflex.h
index 2a0e823..c4aca9d 100644
--- a/arch/arm/mach-omap2/smartreflex.h
+++ b/arch/arm/mach-omap2/smartreflex.h
@@ -248,9 +248,13 @@  void disable_smartreflex(int srid);
 int sr_voltagescale_vcbypass(u32 t_opp, u32 c_opp, u8 t_vsel, u8
c_vsel);
 void sr_start_vddautocomap(int srid, u32 target_opp_no);
 int sr_stop_vddautocomap(int srid);
+typedef int (*omap3_voltagescale_vcbypass_t)(u32 t_opp, u32 c_opp,
+						u8 t_vsel, u8 c_vsel); 
+void omap3_voltagescale_vcbypass_setup(omap3_voltagescale_vcbypass_t
fun);
 #else
 static inline void enable_smartreflex(int srid) {}
 static inline void disable_smartreflex(int srid) {}
+#define omap3_voltagescale_vcbypass_setup(fun) do {} while (0);
 #endif
 
 #endif
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
index c8ba1e2..8d2c607 100644
--- a/arch/arm/plat-omap/Kconfig
+++ b/arch/arm/plat-omap/Kconfig
@@ -68,7 +68,7 @@  config OMAP_DEBUG_CLOCKDOMAIN
 
 config OMAP_SMARTREFLEX
 	bool "SmartReflex support"
-	depends on ARCH_OMAP34XX && TWL4030_CORE && PM
+	depends on ARCH_OMAP34XX && PM
 	help
 	  Say Y if you want to enable SmartReflex.