public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: Nishanth Menon <nm@ti.com>
To: Kevin Hilman <khilman@ti.com>
Cc: Vishwanath Sripathy <vishwanath.bs@ti.com>,
	linux-omap <linux-omap@vger.kernel.org>,
	Tony Lindgren <tony@atomide.com>
Subject: Re: [PATCH 03/19] omap3+: voltage: remove initial voltage
Date: Thu, 03 Mar 2011 06:05:20 +0530	[thread overview]
Message-ID: <4D6EE248.3010205@ti.com> (raw)
In-Reply-To: <8762s1xep6.fsf@ti.com>

Kevin Hilman wrote, on 03/03/2011 05:22 AM:
> "Menon, Nishanth"<nm@ti.com>  writes:
>
>> On Wed, Feb 23, 2011 at 14:29, Vishwanath Sripathy<vishwanath.bs@ti.com>  wrote:
>>>> -----Original Message-----
>>>> From: Menon, Nishanth [mailto:nm@ti.com]
>>>> Sent: Wednesday, February 23, 2011 1:48 PM
>>>> To: Vishwanath Sripathy
>>>> Cc: linux-omap; Tony Lindgren; Kevin Hilman
>>>> Subject: Re: [PATCH 03/19] omap3+: voltage: remove initial voltage
>>>>
>>>>   Wed, Feb 23, 2011 at 12:24, Vishwanath Sripathy
>>>> <vishwanath.bs@ti.com>  wrote:
>>>>>> -----Original Message-----
>>>>>> From: Nishanth Menon [mailto:nm@ti.com]
>>>>>> Sent: Sunday, February 20, 2011 10:42 AM
>>>>>> To: Vishwanath Sripathy
>>>>>> Cc: linux-omap; Tony Lindgren; Kevin Hilman
>>>>>> Subject: Re: [PATCH 03/19] omap3+: voltage: remove initial voltage
>>>>>>
>>>>>> Vishwanath Sripathy wrote, on 02/19/2011 06:54 PM:
>>>>>> [..]
>>>>>>>> omap2_set_init_voltage should setup the curr_volt based on
>>>> which
>>>>>> OPP
>>>>>>>> the system is functioning at. Blindly setting a 1.2v setting in
>>> the
>>>>>>>> initial structure may not even match the default voltages stored
>>>> in
>>>>>>>> the voltage table which are supported for the domain.
>>>>>>>>
>>>>>>>> For example, OMAP3430 core domain does not use 1.2v and ends
>>>> up
>>>>>>>> generating a warning on the first transition.
>>>>>>>>
>>>>>> [..]
>>>>>>>> diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
>>>>>>>> omap2/voltage.c
>>>>>>>> index 12be525..280ee12 100644
>>>>>>>> --- a/arch/arm/mach-omap2/voltage.c
>>>>>>>> +++ b/arch/arm/mach-omap2/voltage.c
>>>>>> [..]
>>>>>>>>     /* Generic voltage parameters */
>>>>>>>> -  vdd->curr_volt = 1200000;
>>>>>>> Where do you update this parameter upon initialization? Shouldn't
>>>> you
>>>>>> read
>>>>>>> the VP register and find the actual current voltage and update this
>>>>>> param?
>>>>>>
>>>>>> The sequence is as follows:
>>>>>> a) omapx_vdd_data configure is called as part of sr init sequence.
>>>>>>        And the curr_volt with this patch is not updated at this stage.
>>>>>> b) somewhere down in the boot sequence, pm.c's
>>>>>> omap2_set_init_voltage
>>>>>> starts up. This looks up the current clk frequency from clock layer
>>> of
>>>>>> the parent device for the domain, picks up the nominal voltages
>>>> stored
>>>>>> in the opp layer, then does a omap_voltage_scale_vdd to that
>>>> voltage. In
>>>>>> omap_voltage_scale_vdd, The current voltage is merely picked off
>>>> the vp
>>>>>> (in _pre_volt_scale). the last step it does is to setup
>>> vdd->curr_volt.
>>>>>> This can then be used by dvfs layer etc to make appropriate
>>>> decisions.
>>>>>>
>>>>>> So, No, I dont think I need to update it here, it should happen as
>>>> part
>>>>>> of the pm init sequence.
>>>>>>
>>>>>> Could you explain what problem do you foresee by doing this?
>>>>> What if omap_voltage_scale_vdd fails when called from
>>>>> omap2_set_init_voltage? Or omap2_set_init_voltage returns error
>>>> even
>>>>> before calling omap_voltage_scale_vdd because it could not find the
>>>>> matching voltage for the frequency set by bootloader?
>>>>>
>>>>> Your assumption that curr_volt is always set by
>>>> omap2_set_init_voltage
>>>>> need not be true always.
>>>>
>>>> set_init_voltage's job is to set the initial voltage. if it is
>>>> incapable of doing it, I say fix that instead of hacking in some
>>>> random number as curr_volt.
>>> I never said to use random numbers. All I suggested was that instead of
>>> relying on some others function's behavior, read the VP register to fill
>>> in the right values. If set_init_voltage succeeds, it will anyway update
>>> with right voltage.
>> OK, lets take this argument for a moment.
>> Q: which voltage to set as curr_volt?
>> a) what if the update was done over vcbypass by bootloader? Cannot
>> trust the vp register for the value.
>> b) what if the voltage was updated over i2c1 to the PMIC by
>> bootloader? cant trust vp register again.
>> c) use some number like 1.2v - which we are aligned is wrong.
>>
>> in short, what should we do for a accurate curr_volt? vp register may
>> not be correct, instead, the right steps to do:
>> find my current freq, check the OPP table for the voltage needed,
>> setup the voltage for it, update curr_volt for it. this is trust
>> worthy, rest are not.
>>
>> This is what set_init_voltage does, replicating that logic in
>> voltage.c makes no sense again to me.
>
> Agreed.
>
> Please update the changelog with a summary of how curr_volt is properly
> updated so it's clear that you're not removing something that isn't
> updated elsewhere.
>

Does the following sound any better?:
Blindly setting a 1.2v setting in the initial structure may not even 
match the default voltages stored in the voltage table which are 
supported for the domain. For example, OMAP3430 core domain does not use 
1.2v and ends up generating a warning on the first transition.

Further, since omap2_set_init_voltage is called as part of the pm 
framework's initialization sequence to configure the voltage required 
for the current OPP, the call does(and has to) setup the system 
voltage(curr_volt as a result) using the right mechanisms appropriate 
for the system at that point of time. This also overrides initialization 
we are currently doing in voltage.c  making it redundant. So remove the 
wrong and useless initialization.

-- 
Regards,
Nishanth Menon

  reply	other threads:[~2011-03-03  0:35 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-19 12:01 [PATCH 00/19] OMAP3+: introduce SR class 1.5 Nishanth Menon
2011-02-19 12:01 ` [PATCH 01/19] omap3: hwmod: add smartreflex irqs Nishanth Menon
2011-03-02 23:48   ` Kevin Hilman
2011-03-03  0:43     ` Nishanth Menon
2011-02-19 12:01 ` [PATCH 02/19] omap3630: hwmod: sr: enable for higher ES Nishanth Menon
2011-02-19 13:22   ` Vishwanath Sripathy
2011-02-20  5:26     ` Nishanth Menon
2011-02-20  5:38       ` do we need CHIP_GE_OMAP3630ES1in .oc? (was Re: [PATCH 02/19] omap3630: hwmod: sr: enable for higher ES) Nishanth Menon
2011-02-21  5:50         ` Anand Gadiyar
2011-02-19 12:01 ` [PATCH 03/19] omap3+: voltage: remove initial voltage Nishanth Menon
2011-02-19 13:24   ` Vishwanath Sripathy
2011-02-20  5:12     ` Nishanth Menon
2011-02-23  6:54       ` Vishwanath Sripathy
2011-02-23  8:18         ` Menon, Nishanth
2011-02-23  8:59           ` Vishwanath Sripathy
2011-02-23  9:08             ` Menon, Nishanth
2011-03-02 23:52               ` Kevin Hilman
2011-03-03  0:35                 ` Nishanth Menon [this message]
2011-03-03  0:53                   ` Kevin Hilman
2011-02-19 12:01 ` [PATCH 04/19] omap3+: voltage: remove spurious pr_notice for debugfs Nishanth Menon
2011-02-19 12:01 ` [PATCH 05/19] omap3+: voltage: use IS_ERR_OR_NULL Nishanth Menon
2011-02-19 12:01 ` [PATCH 06/19] omap3+: voltage: use volt_data pointer instead values Nishanth Menon
2011-02-24  5:28   ` Gulati, Shweta
2011-02-24  8:29     ` Gulati, Shweta
2011-02-24 17:22     ` Menon, Nishanth
2011-02-19 12:01 ` [PATCH 07/19] omap3+: voltage: add transdone apis Nishanth Menon
2011-02-19 12:01 ` [PATCH 08/19] omap3+: sr: make notify independent of class Nishanth Menon
2011-03-03  0:05   ` Kevin Hilman
2011-02-19 12:01 ` [PATCH 09/19] omap3+: sr: introduce class init,deinit and priv data Nishanth Menon
2011-03-03  0:08   ` Kevin Hilman
2011-03-03  0:41     ` Nishanth Menon
2011-03-03  0:57       ` Kevin Hilman
2011-03-03  1:22         ` Nishanth Menon
2011-02-19 12:01 ` [PATCH 10/19] omap3+: sr: fix cosmetic indentation Nishanth Menon
2011-03-03  0:09   ` Kevin Hilman
2011-02-19 12:01 ` [PATCH 11/19] omap3+: sr: call handler with interrupt disabled Nishanth Menon
2011-03-03  0:11   ` Kevin Hilman
2011-03-03  0:46     ` Nishanth Menon
2011-02-19 12:01 ` [PATCH 12/19] omap3+: sr: disable interrupt by default Nishanth Menon
2011-03-03  0:15   ` Kevin Hilman
2011-03-03  0:26     ` Nishanth Menon
2011-03-03  0:59       ` Kevin Hilman
2011-03-03  1:23         ` Nishanth Menon
2011-02-19 12:01 ` [PATCH 13/19] omap3+: sr: enable/disable SR only on need Nishanth Menon
2011-02-19 12:01 ` [PATCH 14/19] omap3+: sr: introduce notifiers flags Nishanth Menon
2011-03-03  0:17   ` Kevin Hilman
2011-03-03  0:47     ` Nishanth Menon
2011-02-19 12:01 ` [PATCH 15/19] omap3+: sr: introduce notifier_control Nishanth Menon
2011-02-19 13:40   ` Vishwanath Sripathy
2011-02-20  4:50     ` Nishanth Menon
2011-02-23  6:46       ` Vishwanath Sripathy
2011-02-23  8:14         ` Menon, Nishanth
2011-02-19 12:01 ` [PATCH 16/19] omap3+: sr: disable spamming interrupts Nishanth Menon
2011-03-03  0:21   ` Kevin Hilman
2011-02-19 12:01 ` [PATCH 17/19] omap3+: sr: make enable path use volt_data pointer Nishanth Menon
2011-02-19 12:01 ` [PATCH 18/19] omap3630+: sr: add support for class 1.5 Nishanth Menon
2011-03-01  9:53   ` Gulati, Shweta
2011-03-01 10:17     ` Menon, Nishanth
2011-03-01 12:20       ` Gulati, Shweta
2011-02-19 12:01 ` [PATCH 19/19] omap3430: sr: class3: restrict cpu to run on Nishanth Menon
2011-03-03  0:33 ` [PATCH 00/19] OMAP3+: introduce SR class 1.5 Kevin Hilman
2011-03-03  0:37   ` Nishanth Menon
2011-03-03  1:00     ` Kevin Hilman
2011-03-03  1:30       ` Nishanth Menon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D6EE248.3010205@ti.com \
    --to=nm@ti.com \
    --cc=khilman@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=tony@atomide.com \
    --cc=vishwanath.bs@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox